{
  "magicNumber": 1635018093,
  "metadata": {
    "v15": {
      "pallets": [
        {
          "name": "System",
          "storage": {
            "prefix": "System",
            "items": [
              {
                "name": "Account",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 3
                  }
                },
                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080",
                "docs": [
                  " The full account information for a particular account ID."
                ]
              },
              {
                "name": "ExtrinsicCount",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Total extrinsics count for the current block."
                ]
              },
              {
                "name": "InherentsApplied",
                "modifier": "Default",
                "type": {
                  "plain": 8
                },
                "fallback": "0x00",
                "docs": [
                  " Whether all inherents have been applied."
                ]
              },
              {
                "name": "BlockWeight",
                "modifier": "Default",
                "type": {
                  "plain": 9
                },
                "fallback": "0x000000000000",
                "docs": [
                  " The current weight for the block."
                ]
              },
              {
                "name": "AllExtrinsicsLen",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Total length (in bytes) for all extrinsics put together, for the current block."
                ]
              },
              {
                "name": "BlockHash",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 13
                  }
                },
                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                "docs": [
                  " Map of block numbers to block hashes."
                ]
              },
              {
                "name": "ExtrinsicData",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 14
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Extrinsics data for the current block (maps an extrinsic's index to its data)."
                ]
              },
              {
                "name": "Number",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The current block number being processed. Set by `execute_block`."
                ]
              },
              {
                "name": "ParentHash",
                "modifier": "Default",
                "type": {
                  "plain": 13
                },
                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                "docs": [
                  " Hash of the previous block."
                ]
              },
              {
                "name": "Digest",
                "modifier": "Default",
                "type": {
                  "plain": 15
                },
                "fallback": "0x00",
                "docs": [
                  " Digest of the current block, also part of the block header."
                ]
              },
              {
                "name": "Events",
                "modifier": "Default",
                "type": {
                  "plain": 19
                },
                "fallback": "0x00",
                "docs": [
                  " Events deposited for the current block.",
                  "",
                  " NOTE: The item is unbound and should therefore never be read on chain.",
                  " It could otherwise inflate the PoV size of a block.",
                  "",
                  " Events have a large in-memory size. Box the events to not go out-of-memory",
                  " just in case someone still reads them from within the runtime."
                ]
              },
              {
                "name": "EventCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The number of events in the `Events<T>` list."
                ]
              },
              {
                "name": "EventTopics",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 13,
                    "value": 743
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Mapping between a topic (represented by T::Hash) and a vector of indexes",
                  " of events in the `<Events<T>>` list.",
                  "",
                  " All topic vectors have deterministic storage locations depending on the topic. This",
                  " allows light-clients to leverage the changes trie storage tracking mechanism and",
                  " in case of changes fetch the list of events of interest.",
                  "",
                  " The value has the type `(BlockNumberFor<T>, EventIndex)` because if we used only just",
                  " the `EventIndex` then in case if the topic has the same contents on the next block",
                  " no notification will be triggered thus the event might be lost."
                ]
              },
              {
                "name": "LastRuntimeUpgrade",
                "modifier": "Optional",
                "type": {
                  "plain": 790
                },
                "fallback": "0x00",
                "docs": [
                  " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."
                ]
              },
              {
                "name": "UpgradedToU32RefCount",
                "modifier": "Default",
                "type": {
                  "plain": 8
                },
                "fallback": "0x00",
                "docs": [
                  " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not."
                ]
              },
              {
                "name": "UpgradedToTripleRefCount",
                "modifier": "Default",
                "type": {
                  "plain": 8
                },
                "fallback": "0x00",
                "docs": [
                  " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False",
                  " (default) if not."
                ]
              },
              {
                "name": "ExecutionPhase",
                "modifier": "Optional",
                "type": {
                  "plain": 789
                },
                "fallback": "0x00",
                "docs": [
                  " The execution phase of the block."
                ]
              },
              {
                "name": "AuthorizedUpgrade",
                "modifier": "Optional",
                "type": {
                  "plain": 793
                },
                "fallback": "0x00",
                "docs": [
                  " `Some` if a code upgrade has been authorized."
                ]
              },
              {
                "name": "ExtrinsicWeightReclaimed",
                "modifier": "Default",
                "type": {
                  "plain": 10
                },
                "fallback": "0x0000",
                "docs": [
                  " The weight reclaimed for the extrinsic.",
                  "",
                  " This information is available until the end of the extrinsic execution.",
                  " More precisely this information is removed in `note_applied_extrinsic`.",
                  "",
                  " Logic doing some post dispatch weight reduction must update this storage to avoid duplicate",
                  " reduction."
                ]
              }
            ]
          },
          "calls": {
            "type": 269
          },
          "events": {
            "type": 22
          },
          "constants": [
            {
              "name": "BlockWeights",
              "type": 794,
              "value": "0x0700f2052a01000b00204aa9d101020080020265cd1d00010bc026fb7f740102000002010b0068e5cf8b01020020020100000265cd1d00010bc0de5f59ba0102006002010b00204aa9d10102008002010700b864d945020060000265cd1d00000000",
              "docs": [
                " Block & extrinsics weights: base values and limits."
              ]
            },
            {
              "name": "BlockLength",
              "type": 797,
              "value": "0x000044000000500000005000",
              "docs": [
                " The maximum length of a block (in bytes)."
              ]
            },
            {
              "name": "BlockHashCount",
              "type": 4,
              "value": "0x00100000",
              "docs": [
                " Maximum number of block number to block hash mappings to keep (oldest pruned first)."
              ]
            },
            {
              "name": "DbWeight",
              "type": 799,
              "value": "0x40787d010000000000e1f50500000000",
              "docs": [
                " The weight of runtime database operations the runtime can invoke."
              ]
            },
            {
              "name": "Version",
              "type": 800,
              "value": "0x2473746174656d696e652473746174656d696e65010000006b650f000000000068dd718d5cc53262d40100000004e70521a0d3d2f801000000d7bdd8a272ca0d6502000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000ccd9de6396c899ca01000000bc9d89904f5b923f010000008a8047a53a8277ec0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92020000009ffb505aa738d69c010000002609be83ac4468dc0100000012c8e3d4d7e06de001000000de92b8a0426b9bf602000000ea93e3f16f3d696203000000fbc577b9d747efd601000000a2ddb6a58477bf630100000017a6bc0d0062aeb30100000018ef58a3b67ba770010000008c403e5c4a9fd442010000000f00000001",
              "docs": [
                " Get the chain's in-code version."
              ]
            },
            {
              "name": "SS58Prefix",
              "type": 194,
              "value": "0x0200",
              "docs": [
                " The designated SS58 prefix of this chain.",
                "",
                " This replaces the \"ss58Format\" property declared in the chain spec. Reason is",
                " that the runtime should know about the prefix in order to make use of it as",
                " an identifier of the chain."
              ]
            }
          ],
          "errors": {
            "type": 804
          },
          "index": 0,
          "docs": []
        },
        {
          "name": "ParachainSystem",
          "storage": {
            "prefix": "ParachainSystem",
            "items": [
              {
                "name": "UnincludedSegment",
                "modifier": "Default",
                "type": {
                  "plain": 805
                },
                "fallback": "0x00",
                "docs": [
                  " Latest included block descendants the runtime accepted. In other words, these are",
                  " ancestors of the currently executing block which have not been included in the observed",
                  " relay-chain state.",
                  "",
                  " The segment length is limited by the capacity returned from the [`ConsensusHook`] configured",
                  " in the pallet."
                ]
              },
              {
                "name": "AggregatedUnincludedSegment",
                "modifier": "Optional",
                "type": {
                  "plain": 814
                },
                "fallback": "0x00",
                "docs": [
                  " Storage field that keeps track of bandwidth used by the unincluded segment along with the",
                  " latest HRMP watermark. Used for limiting the acceptance of new blocks with",
                  " respect to relay chain constraints."
                ]
              },
              {
                "name": "PendingValidationCode",
                "modifier": "Default",
                "type": {
                  "plain": 14
                },
                "fallback": "0x00",
                "docs": [
                  " In case of a scheduled upgrade, this storage field contains the validation code to be",
                  " applied.",
                  "",
                  " As soon as the relay chain gives us the go-ahead signal, we will overwrite the",
                  " [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process",
                  " with the new validation code. This concludes the upgrade process."
                ]
              },
              {
                "name": "NewValidationCode",
                "modifier": "Optional",
                "type": {
                  "plain": 14
                },
                "fallback": "0x00",
                "docs": [
                  " Validation code that is set by the parachain and is to be communicated to collator and",
                  " consequently the relay-chain.",
                  "",
                  " This will be cleared in `on_initialize` of each new block if no other pallet already set",
                  " the value."
                ]
              },
              {
                "name": "ValidationData",
                "modifier": "Optional",
                "type": {
                  "plain": 275
                },
                "fallback": "0x00",
                "docs": [
                  " The [`PersistedValidationData`] set for this block.",
                  " This value is expected to be set only once per block and it's never stored",
                  " in the trie."
                ]
              },
              {
                "name": "DidSetValidationCode",
                "modifier": "Default",
                "type": {
                  "plain": 8
                },
                "fallback": "0x00",
                "docs": [
                  " Were the validation data set to notify the relay chain?"
                ]
              },
              {
                "name": "LastRelayChainBlockNumber",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The relay chain block number associated with the last parachain block.",
                  "",
                  " This is updated in `on_finalize`."
                ]
              },
              {
                "name": "UpgradeRestrictionSignal",
                "modifier": "Default",
                "type": {
                  "plain": 815
                },
                "fallback": "0x00",
                "docs": [
                  " An option which indicates if the relay-chain restricts signalling a validation code upgrade.",
                  " In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced",
                  " candidate will be invalid.",
                  "",
                  " This storage item is a mirror of the corresponding value for the current parachain from the",
                  " relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is",
                  " set after the inherent."
                ]
              },
              {
                "name": "UpgradeGoAhead",
                "modifier": "Default",
                "type": {
                  "plain": 812
                },
                "fallback": "0x00",
                "docs": [
                  " Optional upgrade go-ahead signal from the relay-chain.",
                  "",
                  " This storage item is a mirror of the corresponding value for the current parachain from the",
                  " relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is",
                  " set after the inherent."
                ]
              },
              {
                "name": "RelayStateProof",
                "modifier": "Optional",
                "type": {
                  "plain": 277
                },
                "fallback": "0x00",
                "docs": [
                  " The state proof for the last relay parent block.",
                  "",
                  " This field is meant to be updated each block with the validation data inherent. Therefore,",
                  " before processing of the inherent, e.g. in `on_initialize` this data may be stale.",
                  "",
                  " This data is also absent from the genesis."
                ]
              },
              {
                "name": "RelevantMessagingState",
                "modifier": "Optional",
                "type": {
                  "plain": 817
                },
                "fallback": "0x00",
                "docs": [
                  " The snapshot of some state related to messaging relevant to the current parachain as per",
                  " the relay parent.",
                  "",
                  " This field is meant to be updated each block with the validation data inherent. Therefore,",
                  " before processing of the inherent, e.g. in `on_initialize` this data may be stale.",
                  "",
                  " This data is also absent from the genesis."
                ]
              },
              {
                "name": "HostConfiguration",
                "modifier": "Optional",
                "type": {
                  "plain": 822
                },
                "fallback": "0x00",
                "docs": [
                  " The parachain host configuration that was obtained from the relay parent.",
                  "",
                  " This field is meant to be updated each block with the validation data inherent. Therefore,",
                  " before processing of the inherent, e.g. in `on_initialize` this data may be stale.",
                  "",
                  " This data is also absent from the genesis."
                ]
              },
              {
                "name": "LastDmqMqcHead",
                "modifier": "Default",
                "type": {
                  "plain": 824
                },
                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                "docs": [
                  " The last downward message queue chain head we have observed.",
                  "",
                  " This value is loaded before and saved after processing inbound downward messages carried",
                  " by the system inherent."
                ]
              },
              {
                "name": "LastHrmpMqcHeads",
                "modifier": "Default",
                "type": {
                  "plain": 825
                },
                "fallback": "0x00",
                "docs": [
                  " The message queue chain heads we have observed per each channel incoming channel.",
                  "",
                  " This value is loaded before and saved after processing inbound downward messages carried",
                  " by the system inherent."
                ]
              },
              {
                "name": "ProcessedDownwardMessages",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " Number of downward messages processed in a block.",
                  "",
                  " This will be cleared in `on_initialize` of each new block."
                ]
              },
              {
                "name": "LastProcessedDownwardMessage",
                "modifier": "Optional",
                "type": {
                  "plain": 828
                },
                "fallback": "0x00",
                "docs": [
                  " The last processed downward message.",
                  "",
                  " We need to keep track of this to filter the messages that have been already processed."
                ]
              },
              {
                "name": "HrmpWatermark",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " HRMP watermark that was set in a block."
                ]
              },
              {
                "name": "LastProcessedHrmpMessage",
                "modifier": "Optional",
                "type": {
                  "plain": 828
                },
                "fallback": "0x00",
                "docs": [
                  " The last processed HRMP message.",
                  "",
                  " We need to keep track of this to filter the messages that have been already processed."
                ]
              },
              {
                "name": "HrmpOutboundMessages",
                "modifier": "Default",
                "type": {
                  "plain": 829
                },
                "fallback": "0x00",
                "docs": [
                  " HRMP messages that were sent in a block.",
                  "",
                  " This will be cleared in `on_initialize` of each new block."
                ]
              },
              {
                "name": "UpwardMessages",
                "modifier": "Default",
                "type": {
                  "plain": 272
                },
                "fallback": "0x00",
                "docs": [
                  " Upward messages that were sent in a block.",
                  "",
                  " This will be cleared in `on_initialize` of each new block."
                ]
              },
              {
                "name": "PendingUpwardMessages",
                "modifier": "Default",
                "type": {
                  "plain": 272
                },
                "fallback": "0x00",
                "docs": [
                  " Upward messages that are still pending and not yet send to the relay chain."
                ]
              },
              {
                "name": "UpwardDeliveryFeeFactor",
                "modifier": "Default",
                "type": {
                  "plain": 184
                },
                "fallback": "0x000064a7b3b6e00d0000000000000000",
                "docs": [
                  " The factor to multiply the base delivery fee by for UMP."
                ]
              },
              {
                "name": "AnnouncedHrmpMessagesPerCandidate",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The number of HRMP messages we observed in `on_initialize` and thus used that number for",
                  " announcing the weight of `on_initialize` and `on_finalize`."
                ]
              },
              {
                "name": "ReservedXcmpWeightOverride",
                "modifier": "Optional",
                "type": {
                  "plain": 10
                },
                "fallback": "0x00",
                "docs": [
                  " The weight we reserve at the beginning of the block for processing XCMP messages. This",
                  " overrides the amount set in the Config trait."
                ]
              },
              {
                "name": "ReservedDmpWeightOverride",
                "modifier": "Optional",
                "type": {
                  "plain": 10
                },
                "fallback": "0x00",
                "docs": [
                  " The weight we reserve at the beginning of the block for processing DMP messages. This",
                  " overrides the amount set in the Config trait."
                ]
              },
              {
                "name": "CustomValidationHeadData",
                "modifier": "Optional",
                "type": {
                  "plain": 14
                },
                "fallback": "0x00",
                "docs": [
                  " A custom head data that should be returned as result of `validate_block`.",
                  "",
                  " See `Pallet::set_custom_validation_head_data` for more information."
                ]
              }
            ]
          },
          "calls": {
            "type": 273
          },
          "events": {
            "type": 33
          },
          "constants": [
            {
              "name": "SelfParaId",
              "type": 187,
              "value": "0xe8030000",
              "docs": [
                " Returns the parachain ID we are running with."
              ]
            }
          ],
          "errors": {
            "type": 831
          },
          "index": 1,
          "docs": []
        },
        {
          "name": "Timestamp",
          "storage": {
            "prefix": "Timestamp",
            "items": [
              {
                "name": "Now",
                "modifier": "Default",
                "type": {
                  "plain": 12
                },
                "fallback": "0x0000000000000000",
                "docs": [
                  " The current time for the current block."
                ]
              },
              {
                "name": "DidUpdate",
                "modifier": "Default",
                "type": {
                  "plain": 8
                },
                "fallback": "0x00",
                "docs": [
                  " Whether the timestamp has been updated in this block.",
                  "",
                  " This value is updated to `true` upon successful submission of a timestamp by a node.",
                  " It is then checked at the end of each block execution in the `on_finalize` hook."
                ]
              }
            ]
          },
          "calls": {
            "type": 294
          },
          "events": null,
          "constants": [
            {
              "name": "MinimumPeriod",
              "type": 12,
              "value": "0x0000000000000000",
              "docs": [
                " The minimum period between blocks.",
                "",
                " Be aware 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. For example, in the Aura pallet it will be double this",
                " period on default settings."
              ]
            }
          ],
          "errors": null,
          "index": 3,
          "docs": []
        },
        {
          "name": "ParachainInfo",
          "storage": {
            "prefix": "ParachainInfo",
            "items": [
              {
                "name": "ParachainId",
                "modifier": "Default",
                "type": {
                  "plain": 187
                },
                "fallback": "0x64000000",
                "docs": []
              }
            ]
          },
          "calls": {
            "type": 295
          },
          "events": null,
          "constants": [],
          "errors": null,
          "index": 4,
          "docs": []
        },
        {
          "name": "MultiBlockMigrations",
          "storage": {
            "prefix": "MultiBlockMigrations",
            "items": [
              {
                "name": "Cursor",
                "modifier": "Optional",
                "type": {
                  "plain": 298
                },
                "fallback": "0x00",
                "docs": [
                  " The currently active migration to run and its cursor.",
                  "",
                  " `None` indicates that no migration is running."
                ]
              },
              {
                "name": "Historic",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 205,
                    "value": 41
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Set of all successfully executed migrations.",
                  "",
                  " This is used as blacklist, to not re-execute migrations that have not been removed from the",
                  " codebase yet. Governance can regularly clear this out via `clear_historic`."
                ]
              }
            ]
          },
          "calls": {
            "type": 296
          },
          "events": {
            "type": 35
          },
          "constants": [
            {
              "name": "CursorMaxLen",
              "type": 4,
              "value": "0x00000100",
              "docs": [
                " The maximal length of an encoded cursor.",
                "",
                " A good default needs to selected such that no migration will ever have a cursor with MEL",
                " above this limit. This is statically checked in `integrity_test`."
              ]
            },
            {
              "name": "IdentifierMaxLen",
              "type": 4,
              "value": "0x00010000",
              "docs": [
                " The maximal length of an encoded identifier.",
                "",
                " A good default needs to selected such that no migration will ever have an identifier",
                " with MEL above this limit. This is statically checked in `integrity_test`."
              ]
            }
          ],
          "errors": {
            "type": 832
          },
          "index": 5,
          "docs": []
        },
        {
          "name": "Preimage",
          "storage": {
            "prefix": "Preimage",
            "items": [
              {
                "name": "StatusFor",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 13,
                    "value": 833
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The request status of a given hash."
                ]
              },
              {
                "name": "RequestStatusFor",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 13,
                    "value": 835
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The request status of a given hash."
                ]
              },
              {
                "name": "PreimageFor",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 839,
                    "value": 840
                  }
                },
                "fallback": "0x00",
                "docs": []
              }
            ]
          },
          "calls": {
            "type": 304
          },
          "events": {
            "type": 37
          },
          "constants": [],
          "errors": {
            "type": 841
          },
          "index": 6,
          "docs": []
        },
        {
          "name": "Scheduler",
          "storage": {
            "prefix": "Scheduler",
            "items": [
              {
                "name": "IncompleteSince",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Block number at which the agenda began incomplete execution."
                ]
              },
              {
                "name": "Agenda",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 842
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Items to be executed, indexed by the block number that they should be executed on."
                ]
              },
              {
                "name": "Retries",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 671
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Retry configurations for items to be executed, indexed by task address."
                ]
              },
              {
                "name": "Lookup",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 1,
                    "value": 39
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Lookup from a name to the block number and index of the task.",
                  "",
                  " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4",
                  " identities."
                ]
              }
            ]
          },
          "calls": {
            "type": 305
          },
          "events": {
            "type": 38
          },
          "constants": [
            {
              "name": "MaximumWeight",
              "type": 10,
              "value": "0x0b00806e87740102000002",
              "docs": [
                " The maximum weight that may be scheduled per block for any dispatchables."
              ]
            },
            {
              "name": "MaxScheduledPerBlock",
              "type": 4,
              "value": "0x32000000",
              "docs": [
                " The maximum number of scheduled calls in the queue for a single block.",
                "",
                " NOTE:",
                " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a",
                " higher limit under `runtime-benchmarks` feature."
              ]
            }
          ],
          "errors": {
            "type": 846
          },
          "index": 7,
          "docs": []
        },
        {
          "name": "Parameters",
          "storage": {
            "prefix": "Parameters",
            "items": [
              {
                "name": "Parameters",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 43,
                    "value": 67
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Stored parameters."
                ]
              }
            ]
          },
          "calls": {
            "type": 307
          },
          "events": {
            "type": 42
          },
          "constants": [],
          "errors": null,
          "index": 8,
          "docs": []
        },
        {
          "name": "Balances",
          "storage": {
            "prefix": "Balances",
            "items": [
              {
                "name": "TotalIssuance",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The total units issued in the system."
                ]
              },
              {
                "name": "InactiveIssuance",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The total units of outstanding deactivated balance in the system."
                ]
              },
              {
                "name": "Account",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 5
                  }
                },
                "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080",
                "docs": [
                  " The Balances pallet example of storing the balance of an account.",
                  "",
                  " # Example",
                  "",
                  " ```nocompile",
                  "  impl pallet_balances::Config for Runtime {",
                  "    type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>",
                  "  }",
                  " ```",
                  "",
                  " You can also store the balance of an account in the `System` pallet.",
                  "",
                  " # Example",
                  "",
                  " ```nocompile",
                  "  impl pallet_balances::Config for Runtime {",
                  "   type AccountStore = System",
                  "  }",
                  " ```",
                  "",
                  " But this comes with tradeoffs, storing account balances in the system pallet stores",
                  " `frame_system` data alongside the account data contrary to storing account balances in the",
                  " `Balances` pallet, which uses a `StorageMap` to store balances data only.",
                  " NOTE: This is only used in the case that this pallet is used to store balances."
                ]
              },
              {
                "name": "Locks",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 847
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Any liquidity locks on some account balances.",
                  " NOTE: Should only be accessed when setting, changing and freeing a lock.",
                  "",
                  " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"
                ]
              },
              {
                "name": "Reserves",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 848
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Named reserves on some account balances.",
                  "",
                  " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"
                ]
              },
              {
                "name": "Holds",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 851
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Holds on account balances."
                ]
              },
              {
                "name": "Freezes",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 859
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Freeze locks on account balances."
                ]
              }
            ]
          },
          "calls": {
            "type": 318
          },
          "events": {
            "type": 78
          },
          "constants": [
            {
              "name": "ExistentialDeposit",
              "type": 6,
              "value": "0xd5dc3200000000000000000000000000",
              "docs": [
                " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!",
                "",
                " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for",
                " this pallet. However, you do so at your own risk: this will open up a major DoS vector.",
                " In case you have multiple sources of provider references, you may also get unexpected",
                " behaviour if you set this to zero.",
                "",
                " Bottom line: Do yourself a favour and make it at least one!"
              ]
            },
            {
              "name": "MaxLocks",
              "type": 4,
              "value": "0x32000000",
              "docs": [
                " The maximum number of locks that should exist on an account.",
                " Not strictly enforced, but used for weight estimation.",
                "",
                " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"
              ]
            },
            {
              "name": "MaxReserves",
              "type": 4,
              "value": "0x32000000",
              "docs": [
                " The maximum number of named reserves that can exist on an account.",
                "",
                " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"
              ]
            },
            {
              "name": "MaxFreezes",
              "type": 4,
              "value": "0x01000000",
              "docs": [
                " The maximum number of individual freeze locks that can exist on an account at any time."
              ]
            }
          ],
          "errors": {
            "type": 863
          },
          "index": 10,
          "docs": []
        },
        {
          "name": "TransactionPayment",
          "storage": {
            "prefix": "TransactionPayment",
            "items": [
              {
                "name": "NextFeeMultiplier",
                "modifier": "Default",
                "type": {
                  "plain": 184
                },
                "fallback": "0x000064a7b3b6e00d0000000000000000",
                "docs": []
              },
              {
                "name": "StorageVersion",
                "modifier": "Default",
                "type": {
                  "plain": 864
                },
                "fallback": "0x00",
                "docs": []
              }
            ]
          },
          "calls": null,
          "events": {
            "type": 81
          },
          "constants": [
            {
              "name": "OperationalFeeMultiplier",
              "type": 2,
              "value": "0x05",
              "docs": [
                " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their",
                " `priority`",
                "",
                " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later",
                " added to a tip component in regular `priority` calculations.",
                " It means that a `Normal` transaction can front-run a similarly-sized `Operational`",
                " extrinsic (with no tip), by including a tip value greater than the virtual tip.",
                "",
                " ```rust,ignore",
                " // For `Normal`",
                " let priority = priority_calc(tip);",
                "",
                " // For `Operational`",
                " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;",
                " let priority = priority_calc(tip + virtual_tip);",
                " ```",
                "",
                " Note that since we use `final_fee` the multiplier applies also to the regular `tip`",
                " sent with the transaction. So, not only does the transaction get a priority bump based",
                " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`",
                " transactions."
              ]
            }
          ],
          "errors": null,
          "index": 11,
          "docs": []
        },
        {
          "name": "AssetTxPayment",
          "storage": null,
          "calls": null,
          "events": {
            "type": 82
          },
          "constants": [],
          "errors": null,
          "index": 13,
          "docs": []
        },
        {
          "name": "Vesting",
          "storage": {
            "prefix": "Vesting",
            "items": [
              {
                "name": "Vesting",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 639
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Information regarding the vesting of a given account."
                ]
              },
              {
                "name": "StorageVersion",
                "modifier": "Default",
                "type": {
                  "plain": 865
                },
                "fallback": "0x00",
                "docs": [
                  " Storage version of the pallet.",
                  "",
                  " New networks start with latest version, as determined by the genesis build."
                ]
              }
            ]
          },
          "calls": {
            "type": 322
          },
          "events": {
            "type": 101
          },
          "constants": [
            {
              "name": "MinVestedTransfer",
              "type": 6,
              "value": "0xd5dc3200000000000000000000000000",
              "docs": [
                " The minimum amount transferred to call `vested_transfer`."
              ]
            },
            {
              "name": "MaxVestingSchedules",
              "type": 4,
              "value": "0x1c000000",
              "docs": []
            }
          ],
          "errors": {
            "type": 866
          },
          "index": 14,
          "docs": []
        },
        {
          "name": "Claims",
          "storage": {
            "prefix": "Claims",
            "items": [
              {
                "name": "Claims",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 103,
                    "value": 6
                  }
                },
                "fallback": "0x00",
                "docs": []
              },
              {
                "name": "Total",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": []
              },
              {
                "name": "Vesting",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 103,
                    "value": 328
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Vesting schedule for a claim.",
                  " First balance is the total amount that should be held for vesting.",
                  " Second balance is how much should be unlocked per block.",
                  " The block number is when the vesting should start."
                ]
              },
              {
                "name": "Signing",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 103,
                    "value": 330
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The statement kind that must be signed, if any."
                ]
              },
              {
                "name": "Preclaims",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 0,
                    "value": 103
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to."
                ]
              }
            ]
          },
          "calls": {
            "type": 324
          },
          "events": {
            "type": 102
          },
          "constants": [
            {
              "name": "Prefix",
              "type": 14,
              "value": "0x7c506179204b534d7320746f20746865204b7573616d61206163636f756e743a",
              "docs": []
            }
          ],
          "errors": {
            "type": 867
          },
          "index": 15,
          "docs": []
        },
        {
          "name": "Authorship",
          "storage": {
            "prefix": "Authorship",
            "items": [
              {
                "name": "Author",
                "modifier": "Optional",
                "type": {
                  "plain": 0
                },
                "fallback": "0x00",
                "docs": [
                  " Author of current block."
                ]
              }
            ]
          },
          "calls": null,
          "events": null,
          "constants": [],
          "errors": null,
          "index": 20,
          "docs": []
        },
        {
          "name": "CollatorSelection",
          "storage": {
            "prefix": "CollatorSelection",
            "items": [
              {
                "name": "Invulnerables",
                "modifier": "Default",
                "type": {
                  "plain": 868
                },
                "fallback": "0x00",
                "docs": [
                  " The invulnerable, permissioned collators. This list must be sorted."
                ]
              },
              {
                "name": "CandidateList",
                "modifier": "Default",
                "type": {
                  "plain": 869
                },
                "fallback": "0x00",
                "docs": [
                  " The (community, limited) collation candidates. `Candidates` and `Invulnerables` should be",
                  " mutually exclusive.",
                  "",
                  " This list is sorted in ascending order by deposit and when the deposits are equal, the least",
                  " recently updated is considered greater."
                ]
              },
              {
                "name": "LastAuthoredBlock",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 4
                  }
                },
                "fallback": "0x00000000",
                "docs": [
                  " Last block authored by collator."
                ]
              },
              {
                "name": "DesiredCandidates",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " Desired number of candidates.",
                  "",
                  " This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct."
                ]
              },
              {
                "name": "CandidacyBond",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " Fixed amount to deposit to become a collator.",
                  "",
                  " When a collator calls `leave_intent` they immediately receive the deposit back."
                ]
              }
            ]
          },
          "calls": {
            "type": 331
          },
          "events": {
            "type": 104
          },
          "constants": [
            {
              "name": "PotId",
              "type": 872,
              "value": "0x506f745374616b65",
              "docs": [
                " Account Identifier from which the internal Pot is generated."
              ]
            },
            {
              "name": "MaxCandidates",
              "type": 4,
              "value": "0x64000000",
              "docs": [
                " Maximum number of candidates that we should have.",
                "",
                " This does not take into account the invulnerables."
              ]
            },
            {
              "name": "MinEligibleCollators",
              "type": 4,
              "value": "0x04000000",
              "docs": [
                " Minimum number eligible collators. Should always be greater than zero. This includes",
                " Invulnerable collators. This ensures that there will always be one collator who can",
                " produce a block."
              ]
            },
            {
              "name": "MaxInvulnerables",
              "type": 4,
              "value": "0x14000000",
              "docs": [
                " Maximum number of invulnerables."
              ]
            },
            {
              "name": "KickThreshold",
              "type": 4,
              "value": "0x100e0000",
              "docs": []
            },
            {
              "name": "pot_account",
              "type": 0,
              "value": "0x6d6f646c506f745374616b650000000000000000000000000000000000000000",
              "docs": [
                " Gets this pallet's derived pot account."
              ]
            }
          ],
          "errors": {
            "type": 873
          },
          "index": 21,
          "docs": []
        },
        {
          "name": "Session",
          "storage": {
            "prefix": "Session",
            "items": [
              {
                "name": "Validators",
                "modifier": "Default",
                "type": {
                  "plain": 105
                },
                "fallback": "0x00",
                "docs": [
                  " The current set of validators."
                ]
              },
              {
                "name": "CurrentIndex",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " Current index of the session."
                ]
              },
              {
                "name": "QueuedChanged",
                "modifier": "Default",
                "type": {
                  "plain": 8
                },
                "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": 874
                },
                "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": 876
                },
                "fallback": "0x00",
                "docs": [
                  " Indices of disabled validators.",
                  "",
                  " The vec is always kept sorted so that we can find whether a given validator is",
                  " disabled using binary search. It gets cleared when `on_session_ending` returns",
                  " a new set of identities."
                ]
              },
              {
                "name": "NextKeys",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 333
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The next session keys for a validator."
                ]
              },
              {
                "name": "KeyOwner",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 879,
                    "value": 0
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The owner of a key. The key is the `KeyTypeId` + the encoded key."
                ]
              }
            ]
          },
          "calls": {
            "type": 332
          },
          "events": {
            "type": 106
          },
          "constants": [
            {
              "name": "KeyDeposit",
              "type": 6,
              "value": "0x00000000000000000000000000000000",
              "docs": [
                " The amount to be held when setting keys."
              ]
            }
          ],
          "errors": {
            "type": 881
          },
          "index": 22,
          "docs": []
        },
        {
          "name": "Aura",
          "storage": {
            "prefix": "Aura",
            "items": [
              {
                "name": "Authorities",
                "modifier": "Default",
                "type": {
                  "plain": 882
                },
                "fallback": "0x00",
                "docs": [
                  " The current authority set."
                ]
              },
              {
                "name": "CurrentSlot",
                "modifier": "Default",
                "type": {
                  "plain": 884
                },
                "fallback": "0x0000000000000000",
                "docs": [
                  " The current slot of this block.",
                  "",
                  " This will be set in `on_initialize`."
                ]
              }
            ]
          },
          "calls": null,
          "events": null,
          "constants": [
            {
              "name": "SlotDuration",
              "type": 12,
              "value": "0xe02e000000000000",
              "docs": [
                " The slot duration Aura should run with, expressed in milliseconds.",
                " The effective value of this type should not change while the chain is running.",
                "",
                " For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const."
              ]
            }
          ],
          "errors": null,
          "index": 23,
          "docs": []
        },
        {
          "name": "AuraExt",
          "storage": {
            "prefix": "AuraExt",
            "items": [
              {
                "name": "Authorities",
                "modifier": "Default",
                "type": {
                  "plain": 882
                },
                "fallback": "0x00",
                "docs": [
                  " Serves as cache for the authorities.",
                  "",
                  " The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session,",
                  " but we require the old authorities to verify the seal when validating a PoV. This will",
                  " always be updated to the latest AuRa authorities in `on_finalize`."
                ]
              },
              {
                "name": "RelaySlotInfo",
                "modifier": "Optional",
                "type": {
                  "plain": 885
                },
                "fallback": "0x00",
                "docs": [
                  " Current relay chain slot paired with a number of authored blocks.",
                  "",
                  " This is updated in [`FixedVelocityConsensusHook::on_state_proof`] with the current relay",
                  " chain slot as provided by the relay chain state proof."
                ]
              }
            ]
          },
          "calls": null,
          "events": null,
          "constants": [],
          "errors": null,
          "index": 24,
          "docs": []
        },
        {
          "name": "XcmpQueue",
          "storage": {
            "prefix": "XcmpQueue",
            "items": [
              {
                "name": "InboundXcmpSuspended",
                "modifier": "Default",
                "type": {
                  "plain": 886
                },
                "fallback": "0x00",
                "docs": [
                  " The suspended inbound XCMP channels. All others are not suspended.",
                  "",
                  " This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block",
                  " to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached",
                  " within the block and therefore only included once in the proof size.",
                  "",
                  " NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof",
                  " will be smaller."
                ]
              },
              {
                "name": "OutboundXcmpStatus",
                "modifier": "Default",
                "type": {
                  "plain": 889
                },
                "fallback": "0x00",
                "docs": [
                  " The non-empty XCMP channels in order of becoming non-empty, and the index of the first",
                  " and last outbound message. If the two indices are equal, then it indicates an empty",
                  " queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater",
                  " than 65535 items. Queue indices for normal messages begin at one; zero is reserved in",
                  " case of the need to send a high-priority signal message this block.",
                  " The bool is true if there is a signal message waiting to be sent."
                ]
              },
              {
                "name": "OutboundXcmpMessages",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Twox64Concat"
                    ],
                    "key": 893,
                    "value": 894
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The messages outbound in a given XCMP channel."
                ]
              },
              {
                "name": "SignalMessages",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 187,
                    "value": 894
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Any signal messages waiting to be sent."
                ]
              },
              {
                "name": "QueueConfig",
                "modifier": "Default",
                "type": {
                  "plain": 895
                },
                "fallback": "0x200000003000000008000000",
                "docs": [
                  " The configuration which controls the dynamics of the outbound queue."
                ]
              },
              {
                "name": "QueueSuspended",
                "modifier": "Default",
                "type": {
                  "plain": 8
                },
                "fallback": "0x00",
                "docs": [
                  " Whether or not the XCMP queue is suspended from executing incoming XCMs or not."
                ]
              },
              {
                "name": "DeliveryFeeFactor",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 187,
                    "value": 184
                  }
                },
                "fallback": "0x000064a7b3b6e00d0000000000000000",
                "docs": [
                  " The factor to multiply the base delivery fee by."
                ]
              }
            ]
          },
          "calls": {
            "type": 335
          },
          "events": {
            "type": 107
          },
          "constants": [
            {
              "name": "MaxInboundSuspended",
              "type": 4,
              "value": "0xe8030000",
              "docs": [
                " The maximum number of inbound XCMP channels that can be suspended simultaneously.",
                "",
                " Any further channel suspensions will fail and messages may get dropped without further",
                " notice. Choosing a high value (1000) is okay; the trade-off that is described in",
                " [`InboundXcmpSuspended`] still applies at that scale."
              ]
            },
            {
              "name": "MaxActiveOutboundChannels",
              "type": 4,
              "value": "0x80000000",
              "docs": [
                " Maximal number of outbound XCMP channels that can have messages queued at the same time.",
                "",
                " If this is reached, then no further messages can be sent to channels that do not yet",
                " have a message queued. This should be set to the expected maximum of outbound channels",
                " which is determined by [`Self::ChannelInfo`]. It is important to set this large enough,",
                " since otherwise the congestion control protocol will not work as intended and messages",
                " may be dropped. This value increases the PoV and should therefore not be picked too",
                " high. Governance needs to pay attention to not open more channels than this value."
              ]
            },
            {
              "name": "MaxPageSize",
              "type": 4,
              "value": "0x009c0100",
              "docs": [
                " The maximal page size for HRMP message pages.",
                "",
                " A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case",
                " benchmarking. The limit for the size of a message is slightly below this, since some",
                " overhead is incurred for encoding the format."
              ]
            }
          ],
          "errors": {
            "type": 896
          },
          "index": 30,
          "docs": []
        },
        {
          "name": "PolkadotXcm",
          "storage": {
            "prefix": "PolkadotXcm",
            "items": [
              {
                "name": "QueryCounter",
                "modifier": "Default",
                "type": {
                  "plain": 12
                },
                "fallback": "0x0000000000000000",
                "docs": [
                  " The latest available query index."
                ]
              },
              {
                "name": "Queries",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 12,
                    "value": 897
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The ongoing queries."
                ]
              },
              {
                "name": "AssetTraps",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 13,
                    "value": 4
                  }
                },
                "fallback": "0x00000000",
                "docs": [
                  " The existing asset traps.",
                  "",
                  " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of",
                  " times this pair has been trapped (usually just 1 if it exists at all)."
                ]
              },
              {
                "name": "SafeXcmVersion",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Default version to encode XCM when latest version of destination is unknown. If `None`,",
                  " then the destinations whose XCM version is unknown are considered unreachable."
                ]
              },
              {
                "name": "SupportedVersion",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 902,
                    "value": 4
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The Latest versions that we know various locations support."
                ]
              },
              {
                "name": "VersionNotifiers",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 902,
                    "value": 12
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " All locations that we have requested version notifications from."
                ]
              },
              {
                "name": "VersionNotifyTargets",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 902,
                    "value": 903
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The target locations that are subscribed to our version changes, as well as the most recent",
                  " of our versions we informed them of."
                ]
              },
              {
                "name": "VersionDiscoveryQueue",
                "modifier": "Default",
                "type": {
                  "plain": 904
                },
                "fallback": "0x00",
                "docs": [
                  " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and",
                  " the `u32` counter is the number of times that a send to the destination has been attempted,",
                  " which is used as a prioritization."
                ]
              },
              {
                "name": "CurrentMigration",
                "modifier": "Optional",
                "type": {
                  "plain": 907
                },
                "fallback": "0x00",
                "docs": [
                  " The current migration's stage, if any."
                ]
              },
              {
                "name": "RemoteLockedFungibles",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 908,
                    "value": 909
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Fungible assets which we know are locked on a remote chain."
                ]
              },
              {
                "name": "LockedFungibles",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 913
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Fungible assets which we know are locked on this chain."
                ]
              },
              {
                "name": "XcmExecutionSuspended",
                "modifier": "Default",
                "type": {
                  "plain": 8
                },
                "fallback": "0x00",
                "docs": [
                  " Global suspension state of the XCM executor."
                ]
              },
              {
                "name": "ShouldRecordXcm",
                "modifier": "Default",
                "type": {
                  "plain": 8
                },
                "fallback": "0x00",
                "docs": [
                  " Whether or not incoming XCMs (both executed locally and received) should be recorded.",
                  " Only one XCM program will be recorded at a time.",
                  " This is meant to be used in runtime APIs, and it's advised it stays false",
                  " for all other use cases, so as to not degrade regular performance.",
                  "",
                  " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]",
                  " implementation in the XCM executor configuration."
                ]
              },
              {
                "name": "RecordedXcm",
                "modifier": "Optional",
                "type": {
                  "plain": 112
                },
                "fallback": "0x00",
                "docs": [
                  " If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally",
                  " will be stored here.",
                  " Runtime APIs can fetch the XCM that was executed by accessing this value.",
                  "",
                  " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]",
                  " implementation in the XCM executor configuration."
                ]
              },
              {
                "name": "AuthorizedAliases",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 180,
                    "value": 916
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Map of authorized aliasers of local origins. Each local location can authorize a list of",
                  " other locations to alias into it. Each aliaser is only valid until its inner `expiry`",
                  " block number."
                ]
              }
            ]
          },
          "calls": {
            "type": 336
          },
          "events": {
            "type": 108
          },
          "constants": [
            {
              "name": "UniversalLocation",
              "type": 84,
              "value": "0x02090300a10f",
              "docs": [
                " This chain's Universal Location."
              ]
            },
            {
              "name": "AdvertisedXcmVersion",
              "type": 4,
              "value": "0x05000000",
              "docs": [
                " The latest supported version that we advertise. Generally just set it to",
                " `pallet_xcm::CurrentXcmVersion`."
              ]
            },
            {
              "name": "MaxLockers",
              "type": 4,
              "value": "0x08000000",
              "docs": [
                " The maximum number of local XCM locks that a single account may have."
              ]
            },
            {
              "name": "MaxRemoteLockConsumers",
              "type": 4,
              "value": "0x00000000",
              "docs": [
                " The maximum number of consumers a single remote lock may have."
              ]
            }
          ],
          "errors": {
            "type": 922
          },
          "index": 31,
          "docs": []
        },
        {
          "name": "CumulusXcm",
          "storage": null,
          "calls": {
            "type": 380
          },
          "events": {
            "type": 182
          },
          "constants": [],
          "errors": null,
          "index": 32,
          "docs": []
        },
        {
          "name": "ToPolkadotXcmRouter",
          "storage": {
            "prefix": "ToPolkadotXcmRouter",
            "items": [
              {
                "name": "Bridge",
                "modifier": "Default",
                "type": {
                  "plain": 924
                },
                "fallback": "0x000064a7b3b6e00d000000000000000000",
                "docs": [
                  " Bridge that we are using.",
                  "",
                  " **bridges-v1** assumptions: all outbound messages through this router are using single lane",
                  " and to single remote consensus. If there is some other remote consensus that uses the same",
                  " bridge hub, the separate pallet instance shall be used, In `v2` we'll have all required",
                  " primitives (lane-id aka bridge-id, derived from XCM locations) to support multiple  bridges",
                  " by the same pallet instance."
                ]
              }
            ]
          },
          "calls": {
            "type": 381
          },
          "events": {
            "type": 183
          },
          "constants": [],
          "errors": null,
          "index": 34,
          "docs": []
        },
        {
          "name": "MessageQueue",
          "storage": {
            "prefix": "MessageQueue",
            "items": [
              {
                "name": "BookStateFor",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 186,
                    "value": 925
                  }
                },
                "fallback": "0x0000000000000000000000000000000000000000000000000000000000",
                "docs": [
                  " The index of the first and last (non-empty) pages."
                ]
              },
              {
                "name": "ServiceHead",
                "modifier": "Optional",
                "type": {
                  "plain": 186
                },
                "fallback": "0x00",
                "docs": [
                  " The origin at which we should begin servicing."
                ]
              },
              {
                "name": "Pages",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 928,
                    "value": 929
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The map of page indices to pages."
                ]
              }
            ]
          },
          "calls": {
            "type": 382
          },
          "events": {
            "type": 185
          },
          "constants": [
            {
              "name": "HeapSize",
              "type": 4,
              "value": "0x00000100",
              "docs": [
                " The size of the page; this implies the maximum message size which can be sent.",
                "",
                " A good value depends on the expected message sizes, their weights, the weight that is",
                " available for processing them and the maximal needed message size. The maximal message",
                " size is slightly lower than this as defined by [`MaxMessageLenOf`]."
              ]
            },
            {
              "name": "MaxStale",
              "type": 4,
              "value": "0x08000000",
              "docs": [
                " The maximum number of stale pages (i.e. of overweight messages) allowed before culling",
                " can happen. Once there are more stale pages than this, then historical pages may be",
                " dropped, even if they contain unprocessed overweight messages."
              ]
            },
            {
              "name": "ServiceWeight",
              "type": 77,
              "value": "0x01070010a5d4e802004001",
              "docs": [
                " The amount of weight (if any) which should be provided to the message queue for",
                " servicing enqueued items `on_initialize`.",
                "",
                " This may be legitimately `None` in the case that you will call",
                " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have",
                " it run in `on_idle`."
              ]
            },
            {
              "name": "IdleMaxServiceWeight",
              "type": 77,
              "value": "0x01070010a5d4e802004001",
              "docs": [
                " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which",
                " should be provided to the message queue for servicing enqueued items `on_idle`.",
                " Useful for parachains to process messages at the same block they are received.",
                "",
                " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`."
              ]
            }
          ],
          "errors": {
            "type": 931
          },
          "index": 35,
          "docs": []
        },
        {
          "name": "Utility",
          "storage": null,
          "calls": {
            "type": 383
          },
          "events": {
            "type": 189
          },
          "constants": [
            {
              "name": "batched_calls_limit",
              "type": 4,
              "value": "0xaa2a0000",
              "docs": [
                " The limit on the number of batched calls."
              ]
            }
          ],
          "errors": {
            "type": 932
          },
          "index": 40,
          "docs": []
        },
        {
          "name": "Multisig",
          "storage": {
            "prefix": "Multisig",
            "items": [
              {
                "name": "Multisigs",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 933,
                    "value": 934
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The set of open multisig operations."
                ]
              }
            ]
          },
          "calls": {
            "type": 390
          },
          "events": {
            "type": 190
          },
          "constants": [
            {
              "name": "DepositBase",
              "type": 6,
              "value": "0xdcd91c8f010000000000000000000000",
              "docs": [
                " The base amount of currency needed to reserve for creating a multisig execution or to",
                " store a dispatch call for later.",
                "",
                " This is held for an additional storage item whose value size is",
                " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is",
                " `32 + sizeof(AccountId)` bytes."
              ]
            },
            {
              "name": "DepositFactor",
              "type": 6,
              "value": "0xa0c2a200000000000000000000000000",
              "docs": [
                " The amount of currency needed per unit threshold when creating a multisig execution.",
                "",
                " This is held for adding 32 bytes more into a pre-existing storage value."
              ]
            },
            {
              "name": "MaxSignatories",
              "type": 4,
              "value": "0x64000000",
              "docs": [
                " The maximum amount of signatories allowed in the multisig."
              ]
            }
          ],
          "errors": {
            "type": 936
          },
          "index": 41,
          "docs": []
        },
        {
          "name": "Proxy",
          "storage": {
            "prefix": "Proxy",
            "items": [
              {
                "name": "Proxies",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 937
                  }
                },
                "fallback": "0x0000000000000000000000000000000000",
                "docs": [
                  " The set of account proxies. Maps the account which has delegated to the accounts",
                  " which are being delegated to, together with the amount held on deposit."
                ]
              },
              {
                "name": "Announcements",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 941
                  }
                },
                "fallback": "0x0000000000000000000000000000000000",
                "docs": [
                  " The announcements made by the proxy (key)."
                ]
              }
            ]
          },
          "calls": {
            "type": 392
          },
          "events": {
            "type": 192
          },
          "constants": [
            {
              "name": "ProxyDepositBase",
              "type": 6,
              "value": "0xecb5288e010000000000000000000000",
              "docs": [
                " The base amount of currency needed to reserve for creating a proxy.",
                "",
                " This is held for an additional storage item whose value size is",
                " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes."
              ]
            },
            {
              "name": "ProxyDepositFactor",
              "type": 6,
              "value": "0xb5d8a700000000000000000000000000",
              "docs": [
                " The amount of currency needed per proxy added.",
                "",
                " This is held for adding 32 bytes plus an instance of `ProxyType` more into a",
                " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take",
                " into account `32 + proxy_type.encode().len()` bytes of data."
              ]
            },
            {
              "name": "MaxProxies",
              "type": 4,
              "value": "0x20000000",
              "docs": [
                " The maximum amount of proxies allowed for a single account."
              ]
            },
            {
              "name": "MaxPending",
              "type": 4,
              "value": "0x20000000",
              "docs": [
                " The maximum amount of time-delayed announcements that are allowed to be pending."
              ]
            },
            {
              "name": "AnnouncementDepositBase",
              "type": 6,
              "value": "0x9466518e010000000000000000000000",
              "docs": [
                " The base amount of currency needed to reserve for creating an announcement.",
                "",
                " This is held when a new storage item holding a `Balance` is created (typically 16",
                " bytes)."
              ]
            },
            {
              "name": "AnnouncementDepositFactor",
              "type": 6,
              "value": "0x6ab14f01000000000000000000000000",
              "docs": [
                " The amount of currency needed per announcement made.",
                "",
                " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)",
                " into a pre-existing storage value."
              ]
            }
          ],
          "errors": {
            "type": 945
          },
          "index": 42,
          "docs": []
        },
        {
          "name": "RemoteProxyRelayChain",
          "storage": {
            "prefix": "RemoteProxyRelayChain",
            "items": [
              {
                "name": "BlockToRoot",
                "modifier": "Default",
                "type": {
                  "plain": 946
                },
                "fallback": "0x00",
                "docs": [
                  " Stores the last [`Config::MaxStorageRootsToKeep`] block to storage root mappings of the",
                  " target chain."
                ]
              }
            ]
          },
          "calls": {
            "type": 394
          },
          "events": null,
          "constants": [],
          "errors": {
            "type": 947
          },
          "index": 43,
          "docs": []
        },
        {
          "name": "Indices",
          "storage": {
            "prefix": "Indices",
            "items": [
              {
                "name": "Accounts",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 948
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The lookup from index to account."
                ]
              }
            ]
          },
          "calls": {
            "type": 396
          },
          "events": {
            "type": 196
          },
          "constants": [
            {
              "name": "Deposit",
              "type": 6,
              "value": "0x9466518e010000000000000000000000",
              "docs": [
                " The deposit needed for reserving an index."
              ]
            }
          ],
          "errors": {
            "type": 949
          },
          "index": 44,
          "docs": []
        },
        {
          "name": "Assets",
          "storage": {
            "prefix": "Assets",
            "items": [
              {
                "name": "Asset",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 950
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Details of an asset."
                ]
              },
              {
                "name": "Account",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 952,
                    "value": 953
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The holdings of a specific account for a specific asset."
                ]
              },
              {
                "name": "Approvals",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 956,
                    "value": 957
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Approved balance transfers. First balance is the amount approved for transfer. Second",
                  " is the amount of `T::Currency` reserved for storing this.",
                  " First key is the asset ID, second key is the owner and third key is the delegate."
                ]
              },
              {
                "name": "Metadata",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 958
                  }
                },
                "fallback": "0x0000000000000000000000000000000000000000",
                "docs": [
                  " Metadata of an asset."
                ]
              },
              {
                "name": "NextAssetId",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage",
                  " item has no effect.",
                  "",
                  " This can be useful for setting up constraints for IDs of the new assets. For example, by",
                  " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an",
                  " auto-increment model can be applied to all new asset IDs.",
                  "",
                  " The initial next asset ID can be set using the [`GenesisConfig`] or the",
                  " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration."
                ]
              }
            ]
          },
          "calls": {
            "type": 397
          },
          "events": {
            "type": 197
          },
          "constants": [
            {
              "name": "RemoveItemsLimit",
              "type": 4,
              "value": "0xe8030000",
              "docs": [
                " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.",
                "",
                " Must be configured to result in a weight that makes each call fit in a block."
              ]
            },
            {
              "name": "AssetDeposit",
              "type": 6,
              "value": "0x3aa62391010000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved for an asset."
              ]
            },
            {
              "name": "AssetAccountDeposit",
              "type": 6,
              "value": "0xf4a3ae8d010000000000000000000000",
              "docs": [
                " The amount of funds that must be reserved for a non-provider asset account to be",
                " maintained."
              ]
            },
            {
              "name": "MetadataDepositBase",
              "type": 6,
              "value": "0x3820b78e010000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved when adding metadata to your asset."
              ]
            },
            {
              "name": "MetadataDepositPerByte",
              "type": 6,
              "value": "0x15160500000000000000000000000000",
              "docs": [
                " The additional funds that must be reserved for the number of bytes you store in your",
                " metadata."
              ]
            },
            {
              "name": "ApprovalDeposit",
              "type": 6,
              "value": "0xd5dc3200000000000000000000000000",
              "docs": [
                " The amount of funds that must be reserved when creating a new approval."
              ]
            },
            {
              "name": "StringLimit",
              "type": 4,
              "value": "0x32000000",
              "docs": [
                " The maximum length of a name or symbol stored on-chain."
              ]
            }
          ],
          "errors": {
            "type": 960
          },
          "index": 50,
          "docs": []
        },
        {
          "name": "Uniques",
          "storage": {
            "prefix": "Uniques",
            "items": [
              {
                "name": "Class",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 961
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Details of a collection."
                ]
              },
              {
                "name": "OwnershipAcceptance",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 4
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The collection, if any, of which an account is willing to take ownership."
                ]
              },
              {
                "name": "Account",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 962,
                    "value": 41
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The items held by any given account; set out this way so that items owned by a single",
                  " account can be enumerated."
                ]
              },
              {
                "name": "ClassAccount",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 448,
                    "value": 41
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The collections owned by any given account; set out this way so that collections owned by",
                  " a single account can be enumerated."
                ]
              },
              {
                "name": "Asset",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 963
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The items in existence and their ownership details."
                ]
              },
              {
                "name": "ClassMetadataOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 964
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Metadata of a collection."
                ]
              },
              {
                "name": "InstanceMetadataOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 965
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Metadata of an item."
                ]
              },
              {
                "name": "Attribute",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 966,
                    "value": 967
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Attributes of a collection."
                ]
              },
              {
                "name": "ItemPriceOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 968
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Price of an asset instance."
                ]
              },
              {
                "name": "CollectionMaxSupply",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 4
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Keeps track of the number of items a collection might have."
                ]
              }
            ]
          },
          "calls": {
            "type": 398
          },
          "events": {
            "type": 198
          },
          "constants": [
            {
              "name": "CollectionDeposit",
              "type": 6,
              "value": "0x00e87648170000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved for collection."
              ]
            },
            {
              "name": "ItemDeposit",
              "type": 6,
              "value": "0x00ca9a3b000000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved for an item."
              ]
            },
            {
              "name": "MetadataDepositBase",
              "type": 6,
              "value": "0x3963ed8f010000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved when adding metadata to your item."
              ]
            },
            {
              "name": "AttributeDepositBase",
              "type": 6,
              "value": "0xa4425d8d010000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved when adding an attribute to an item."
              ]
            },
            {
              "name": "DepositPerByte",
              "type": 6,
              "value": "0x15160500000000000000000000000000",
              "docs": [
                " The additional funds that must be reserved for the number of bytes store in metadata,",
                " either \"normal\" metadata or attribute metadata."
              ]
            },
            {
              "name": "StringLimit",
              "type": 4,
              "value": "0x80000000",
              "docs": [
                " The maximum length of data stored on-chain."
              ]
            },
            {
              "name": "KeyLimit",
              "type": 4,
              "value": "0x20000000",
              "docs": [
                " The maximum length of an attribute key."
              ]
            },
            {
              "name": "ValueLimit",
              "type": 4,
              "value": "0x40000000",
              "docs": [
                " The maximum length of an attribute value."
              ]
            }
          ],
          "errors": {
            "type": 969
          },
          "index": 51,
          "docs": []
        },
        {
          "name": "Nfts",
          "storage": {
            "prefix": "Nfts",
            "items": [
              {
                "name": "Collection",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 970
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Details of a collection."
                ]
              },
              {
                "name": "OwnershipAcceptance",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 4
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The collection, if any, of which an account is willing to take ownership."
                ]
              },
              {
                "name": "Account",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 962,
                    "value": 41
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The items held by any given account; set out this way so that items owned by a single",
                  " account can be enumerated."
                ]
              },
              {
                "name": "CollectionAccount",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 448,
                    "value": 41
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The collections owned by any given account; set out this way so that collections owned by",
                  " a single account can be enumerated."
                ]
              },
              {
                "name": "CollectionRoleOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 952,
                    "value": 971
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The items in existence and their ownership details.",
                  " Stores collection roles as per account."
                ]
              },
              {
                "name": "Item",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 973
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The items in existence and their ownership details."
                ]
              },
              {
                "name": "CollectionMetadataOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 979
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Metadata of a collection."
                ]
              },
              {
                "name": "ItemMetadataOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 980
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Metadata of an item."
                ]
              },
              {
                "name": "Attribute",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat",
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 982,
                    "value": 983
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Attributes of a collection."
                ]
              },
              {
                "name": "ItemPriceOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 968
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " A price of an item."
                ]
              },
              {
                "name": "ItemAttributesApprovalsOf",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 985
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Item attribute approvals."
                ]
              },
              {
                "name": "NextCollectionId",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Stores the `CollectionId` that is going to be used for the next collection.",
                  " This gets incremented whenever a new collection is created."
                ]
              },
              {
                "name": "PendingSwapOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 987
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Handles all the pending swaps."
                ]
              },
              {
                "name": "CollectionConfigOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 403
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Config of a collection."
                ]
              },
              {
                "name": "ItemConfigOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 413
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Config of an item."
                ]
              }
            ]
          },
          "calls": {
            "type": 402
          },
          "events": {
            "type": 204
          },
          "constants": [
            {
              "name": "CollectionDeposit",
              "type": 6,
              "value": "0x4e79f28f010000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved for collection."
              ]
            },
            {
              "name": "ItemDeposit",
              "type": 6,
              "value": "0x33fc030a000000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved for an item."
              ]
            },
            {
              "name": "MetadataDepositBase",
              "type": 6,
              "value": "0x8523fe27000000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved when adding metadata to your item."
              ]
            },
            {
              "name": "AttributeDepositBase",
              "type": 6,
              "value": "0xaa86bc27000000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved when adding an attribute to an item."
              ]
            },
            {
              "name": "DepositPerByte",
              "type": 6,
              "value": "0x15160500000000000000000000000000",
              "docs": [
                " The additional funds that must be reserved for the number of bytes store in metadata,",
                " either \"normal\" metadata or attribute metadata."
              ]
            },
            {
              "name": "StringLimit",
              "type": 4,
              "value": "0x00010000",
              "docs": [
                " The maximum length of data stored on-chain."
              ]
            },
            {
              "name": "KeyLimit",
              "type": 4,
              "value": "0x40000000",
              "docs": [
                " The maximum length of an attribute key."
              ]
            },
            {
              "name": "ValueLimit",
              "type": 4,
              "value": "0x00010000",
              "docs": [
                " The maximum length of an attribute value."
              ]
            },
            {
              "name": "ApprovalsLimit",
              "type": 4,
              "value": "0x14000000",
              "docs": [
                " The maximum approvals an item could have."
              ]
            },
            {
              "name": "ItemAttributesApprovalsLimit",
              "type": 4,
              "value": "0x1e000000",
              "docs": [
                " The maximum attributes approvals an item could have."
              ]
            },
            {
              "name": "MaxTips",
              "type": 4,
              "value": "0x0a000000",
              "docs": [
                " The max number of tips a user could send."
              ]
            },
            {
              "name": "MaxDeadlineDuration",
              "type": 4,
              "value": "0x001a4f00",
              "docs": [
                " The max duration in blocks for deadlines."
              ]
            },
            {
              "name": "MaxAttributesPerCall",
              "type": 4,
              "value": "0x0a000000",
              "docs": [
                " The max number of attributes a user could set per call."
              ]
            },
            {
              "name": "Features",
              "type": 988,
              "value": "0x0000000000000000",
              "docs": [
                " Disables some of pallet's features."
              ]
            }
          ],
          "errors": {
            "type": 990
          },
          "index": 52,
          "docs": []
        },
        {
          "name": "ForeignAssets",
          "storage": {
            "prefix": "ForeignAssets",
            "items": [
              {
                "name": "Asset",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 83,
                    "value": 950
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Details of an asset."
                ]
              },
              {
                "name": "Account",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 991,
                    "value": 953
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The holdings of a specific account for a specific asset."
                ]
              },
              {
                "name": "Approvals",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 992,
                    "value": 957
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Approved balance transfers. First balance is the amount approved for transfer. Second",
                  " is the amount of `T::Currency` reserved for storing this.",
                  " First key is the asset ID, second key is the owner and third key is the delegate."
                ]
              },
              {
                "name": "Metadata",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 83,
                    "value": 993
                  }
                },
                "fallback": "0x0000000000000000000000000000000000000000",
                "docs": [
                  " Metadata of an asset."
                ]
              },
              {
                "name": "NextAssetId",
                "modifier": "Optional",
                "type": {
                  "plain": 83
                },
                "fallback": "0x00",
                "docs": [
                  " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage",
                  " item has no effect.",
                  "",
                  " This can be useful for setting up constraints for IDs of the new assets. For example, by",
                  " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an",
                  " auto-increment model can be applied to all new asset IDs.",
                  "",
                  " The initial next asset ID can be set using the [`GenesisConfig`] or the",
                  " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration."
                ]
              }
            ]
          },
          "calls": {
            "type": 422
          },
          "events": {
            "type": 211
          },
          "constants": [
            {
              "name": "RemoveItemsLimit",
              "type": 4,
              "value": "0xe8030000",
              "docs": [
                " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.",
                "",
                " Must be configured to result in a weight that makes each call fit in a block."
              ]
            },
            {
              "name": "AssetDeposit",
              "type": 6,
              "value": "0x3aa62391010000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved for an asset."
              ]
            },
            {
              "name": "AssetAccountDeposit",
              "type": 6,
              "value": "0xf4a3ae8d010000000000000000000000",
              "docs": [
                " The amount of funds that must be reserved for a non-provider asset account to be",
                " maintained."
              ]
            },
            {
              "name": "MetadataDepositBase",
              "type": 6,
              "value": "0x3820b78e010000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved when adding metadata to your asset."
              ]
            },
            {
              "name": "MetadataDepositPerByte",
              "type": 6,
              "value": "0x15160500000000000000000000000000",
              "docs": [
                " The additional funds that must be reserved for the number of bytes you store in your",
                " metadata."
              ]
            },
            {
              "name": "ApprovalDeposit",
              "type": 6,
              "value": "0xd5dc3200000000000000000000000000",
              "docs": [
                " The amount of funds that must be reserved when creating a new approval."
              ]
            },
            {
              "name": "StringLimit",
              "type": 4,
              "value": "0x32000000",
              "docs": [
                " The maximum length of a name or symbol stored on-chain."
              ]
            }
          ],
          "errors": {
            "type": 995
          },
          "index": 53,
          "docs": []
        },
        {
          "name": "NftFractionalization",
          "storage": {
            "prefix": "NftFractionalization",
            "items": [
              {
                "name": "NftToAsset",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 39,
                    "value": 996
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Keeps track of the corresponding NFT ID, asset ID and amount minted."
                ]
              }
            ]
          },
          "calls": {
            "type": 423
          },
          "events": {
            "type": 212
          },
          "constants": [
            {
              "name": "Deposit",
              "type": 6,
              "value": "0x3aa62391010000000000000000000000",
              "docs": [
                " The deposit paid by the user locking an NFT. The deposit is returned to the original NFT",
                " owner when the asset is unified and the NFT is unlocked."
              ]
            },
            {
              "name": "PalletId",
              "type": 872,
              "value": "0x6672616374696f6e",
              "docs": [
                " The pallet's id, used for deriving its sovereign account ID."
              ]
            },
            {
              "name": "NewAssetSymbol",
              "type": 959,
              "value": "0x1046524143",
              "docs": [
                " The newly created asset's symbol."
              ]
            },
            {
              "name": "NewAssetName",
              "type": 959,
              "value": "0x1046726163",
              "docs": [
                " The newly created asset's name."
              ]
            },
            {
              "name": "StringLimit",
              "type": 4,
              "value": "0x32000000",
              "docs": [
                " The maximum length of a name or symbol stored on-chain."
              ]
            }
          ],
          "errors": {
            "type": 997
          },
          "index": 54,
          "docs": []
        },
        {
          "name": "PoolAssets",
          "storage": {
            "prefix": "PoolAssets",
            "items": [
              {
                "name": "Asset",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 950
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Details of an asset."
                ]
              },
              {
                "name": "Account",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 952,
                    "value": 953
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The holdings of a specific account for a specific asset."
                ]
              },
              {
                "name": "Approvals",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat",
                      "Blake2_128Concat",
                      "Blake2_128Concat"
                    ],
                    "key": 956,
                    "value": 957
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Approved balance transfers. First balance is the amount approved for transfer. Second",
                  " is the amount of `T::Currency` reserved for storing this.",
                  " First key is the asset ID, second key is the owner and third key is the delegate."
                ]
              },
              {
                "name": "Metadata",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 998
                  }
                },
                "fallback": "0x0000000000000000000000000000000000000000",
                "docs": [
                  " Metadata of an asset."
                ]
              },
              {
                "name": "NextAssetId",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage",
                  " item has no effect.",
                  "",
                  " This can be useful for setting up constraints for IDs of the new assets. For example, by",
                  " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an",
                  " auto-increment model can be applied to all new asset IDs.",
                  "",
                  " The initial next asset ID can be set using the [`GenesisConfig`] or the",
                  " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration."
                ]
              }
            ]
          },
          "calls": {
            "type": 424
          },
          "events": {
            "type": 213
          },
          "constants": [
            {
              "name": "RemoveItemsLimit",
              "type": 4,
              "value": "0xe8030000",
              "docs": [
                " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.",
                "",
                " Must be configured to result in a weight that makes each call fit in a block."
              ]
            },
            {
              "name": "AssetDeposit",
              "type": 6,
              "value": "0x00000000000000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved for an asset."
              ]
            },
            {
              "name": "AssetAccountDeposit",
              "type": 6,
              "value": "0xf4a3ae8d010000000000000000000000",
              "docs": [
                " The amount of funds that must be reserved for a non-provider asset account to be",
                " maintained."
              ]
            },
            {
              "name": "MetadataDepositBase",
              "type": 6,
              "value": "0x00000000000000000000000000000000",
              "docs": [
                " The basic amount of funds that must be reserved when adding metadata to your asset."
              ]
            },
            {
              "name": "MetadataDepositPerByte",
              "type": 6,
              "value": "0x00000000000000000000000000000000",
              "docs": [
                " The additional funds that must be reserved for the number of bytes you store in your",
                " metadata."
              ]
            },
            {
              "name": "ApprovalDeposit",
              "type": 6,
              "value": "0xd5dc3200000000000000000000000000",
              "docs": [
                " The amount of funds that must be reserved when creating a new approval."
              ]
            },
            {
              "name": "StringLimit",
              "type": 4,
              "value": "0x32000000",
              "docs": [
                " The maximum length of a name or symbol stored on-chain."
              ]
            }
          ],
          "errors": {
            "type": 1000
          },
          "index": 55,
          "docs": []
        },
        {
          "name": "AssetConversion",
          "storage": {
            "prefix": "AssetConversion",
            "items": [
              {
                "name": "Pools",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 215,
                    "value": 1001
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Map from `PoolAssetId` to `PoolInfo`. This establishes whether a pool has been officially",
                  " created rather than people sending tokens directly to a pool's public account."
                ]
              },
              {
                "name": "NextPoolAssetId",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Stores the `PoolAssetId` that is going to be used for the next lp token.",
                  " This gets incremented whenever a new lp pool is created."
                ]
              }
            ]
          },
          "calls": {
            "type": 425
          },
          "events": {
            "type": 214
          },
          "constants": [
            {
              "name": "LPFee",
              "type": 4,
              "value": "0x03000000",
              "docs": [
                " A % the liquidity providers will take of every swap. Represents 10ths of a percent."
              ]
            },
            {
              "name": "PoolSetupFee",
              "type": 6,
              "value": "0x3241951e030000000000000000000000",
              "docs": [
                " A one-time fee to setup the pool."
              ]
            },
            {
              "name": "PoolSetupFeeAsset",
              "type": 83,
              "value": "0x0100",
              "docs": [
                " Asset class from [`Config::Assets`] used to pay the [`Config::PoolSetupFee`]."
              ]
            },
            {
              "name": "LiquidityWithdrawalFee",
              "type": 71,
              "value": "0x00000000",
              "docs": [
                " A fee to withdraw the liquidity."
              ]
            },
            {
              "name": "MintMinLiquidity",
              "type": 6,
              "value": "0x64000000000000000000000000000000",
              "docs": [
                " The minimum LP token amount that could be minted. Ameliorates rounding errors."
              ]
            },
            {
              "name": "MaxSwapPathLength",
              "type": 4,
              "value": "0x03000000",
              "docs": [
                " The max number of hops in a swap."
              ]
            },
            {
              "name": "PalletId",
              "type": 872,
              "value": "0x70792f6173636f6e",
              "docs": [
                " The pallet's id, used for deriving its sovereign account ID."
              ]
            }
          ],
          "errors": {
            "type": 1002
          },
          "index": 56,
          "docs": []
        },
        {
          "name": "Recovery",
          "storage": {
            "prefix": "Recovery",
            "items": [
              {
                "name": "Recoverable",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1003
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The set of recoverable accounts and their recovery configuration."
                ]
              },
              {
                "name": "ActiveRecoveries",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 753,
                    "value": 1004
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Active recovery attempts.",
                  "",
                  " First account is the account to be recovered, and the second account",
                  " is the user trying to recover the account."
                ]
              },
              {
                "name": "Proxy",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 0
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The list of allowed proxy accounts.",
                  "",
                  " Map from the user who can access it to the recovered account."
                ]
              }
            ]
          },
          "calls": {
            "type": 427
          },
          "events": {
            "type": 218
          },
          "constants": [
            {
              "name": "ConfigDepositBase",
              "type": 6,
              "value": "0x04821bce260000000000000000000000",
              "docs": [
                " The base amount of currency needed to reserve for creating a recovery configuration.",
                "",
                " This is held for an additional storage item whose value size is",
                " `2 + sizeof(BlockNumber, Balance)` bytes."
              ]
            },
            {
              "name": "FriendDepositFactor",
              "type": 6,
              "value": "0x9a2669e1030000000000000000000000",
              "docs": [
                " The amount of currency needed per additional user when creating a recovery",
                " configuration.",
                "",
                " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage",
                " value."
              ]
            },
            {
              "name": "MaxFriends",
              "type": 4,
              "value": "0x09000000",
              "docs": [
                " The maximum amount of friends allowed in a recovery configuration.",
                "",
                " NOTE: The threshold programmed in this Pallet uses u16, so it does",
                " not really make sense to have a limit here greater than u16::MAX.",
                " But also, that is a lot more than you should probably set this value",
                " to anyway..."
              ]
            },
            {
              "name": "RecoveryDeposit",
              "type": 6,
              "value": "0x04821bce260000000000000000000000",
              "docs": [
                " The base amount of currency needed to reserve for starting a recovery.",
                "",
                " This is primarily held for deterring malicious recovery attempts, and should",
                " have a value large enough that a bad actor would choose not to place this",
                " deposit. It also acts to fund additional storage item whose value size is",
                " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable",
                " threshold."
              ]
            }
          ],
          "errors": {
            "type": 1005
          },
          "index": 57,
          "docs": []
        },
        {
          "name": "Society",
          "storage": {
            "prefix": "Society",
            "items": [
              {
                "name": "Parameters",
                "modifier": "Optional",
                "type": {
                  "plain": 222
                },
                "fallback": "0x00",
                "docs": [
                  " The max number of members for the society at one time."
                ]
              },
              {
                "name": "Pot",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " Amount of our account balance that is specifically for the next round's bid(s)."
                ]
              },
              {
                "name": "Founder",
                "modifier": "Optional",
                "type": {
                  "plain": 0
                },
                "fallback": "0x00",
                "docs": [
                  " The first member."
                ]
              },
              {
                "name": "Head",
                "modifier": "Optional",
                "type": {
                  "plain": 0
                },
                "fallback": "0x00",
                "docs": [
                  " The most primary from the most recently approved rank 0 members in the society."
                ]
              },
              {
                "name": "Rules",
                "modifier": "Optional",
                "type": {
                  "plain": 13
                },
                "fallback": "0x00",
                "docs": [
                  " A hash of the rules of this society concerning membership. Can only be set once and",
                  " only by the founder."
                ]
              },
              {
                "name": "Members",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1006
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The current members and their rank. Doesn't include `SuspendedMembers`."
                ]
              },
              {
                "name": "Payouts",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1009
                  }
                },
                "fallback": "0x0000000000000000000000000000000000",
                "docs": [
                  " Information regarding rank-0 payouts, past and future."
                ]
              },
              {
                "name": "MemberCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.)"
                ]
              },
              {
                "name": "MemberByIndex",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 0
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The current items in `Members` keyed by their unique index. Keys are densely populated",
                  " `0..MemberCount` (does not include `MemberCount`)."
                ]
              },
              {
                "name": "SuspendedMembers",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1006
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The set of suspended members, with their old membership record."
                ]
              },
              {
                "name": "RoundCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The number of rounds which have passed."
                ]
              },
              {
                "name": "Bids",
                "modifier": "Default",
                "type": {
                  "plain": 1011
                },
                "fallback": "0x00",
                "docs": [
                  " The current bids, stored ordered by the value of the bid."
                ]
              },
              {
                "name": "Candidates",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 1015
                  }
                },
                "fallback": "0x00",
                "docs": []
              },
              {
                "name": "Skeptic",
                "modifier": "Optional",
                "type": {
                  "plain": 0
                },
                "fallback": "0x00",
                "docs": [
                  " The current skeptic."
                ]
              },
              {
                "name": "Votes",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 753,
                    "value": 1017
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Double map from Candidate -> Voter -> (Maybe) Vote."
                ]
              },
              {
                "name": "VoteClearCursor",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1018
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor."
                ]
              },
              {
                "name": "NextHead",
                "modifier": "Optional",
                "type": {
                  "plain": 1019
                },
                "fallback": "0x00",
                "docs": [
                  " At the end of the claim period, this contains the most recently approved members (along with",
                  " their bid and round ID) who is from the most recent round with the lowest bid. They will",
                  " become the new `Head`."
                ]
              },
              {
                "name": "ChallengeRoundCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The number of challenge rounds there have been. Used to identify stale DefenderVotes."
                ]
              },
              {
                "name": "Defending",
                "modifier": "Optional",
                "type": {
                  "plain": 1020
                },
                "fallback": "0x00",
                "docs": [
                  " The defending member currently being challenged, along with a running tally of votes."
                ]
              },
              {
                "name": "DefenderVotes",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 952,
                    "value": 1017
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Votes for the defender, keyed by challenge round."
                ]
              },
              {
                "name": "NextIntakeAt",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Next intake rotation scheduled with [Config::BlockNumberProvider]."
                ]
              },
              {
                "name": "NextChallengeAt",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Next challenge rotation scheduled with [Config::BlockNumberProvider]."
                ]
              }
            ]
          },
          "calls": {
            "type": 428
          },
          "events": {
            "type": 221
          },
          "constants": [
            {
              "name": "PalletId",
              "type": 872,
              "value": "0x70792f736f636965",
              "docs": [
                " The societies's pallet id"
              ]
            },
            {
              "name": "GraceStrikes",
              "type": 4,
              "value": "0x0a000000",
              "docs": [
                " The maximum number of strikes before a member gets funds slashed."
              ]
            },
            {
              "name": "PeriodSpend",
              "type": 6,
              "value": "0x040abf82280f00000000000000000000",
              "docs": [
                " The amount of incentive paid within each period. Doesn't include VoterTip."
              ]
            },
            {
              "name": "VotingPeriod",
              "type": 4,
              "value": "0x40190100",
              "docs": [
                " The number of [Config::BlockNumberProvider] blocks on which new candidates should be",
                " voted on. Together with",
                " `ClaimPeriod`, this sums to the number of blocks between candidate intake periods."
              ]
            },
            {
              "name": "ClaimPeriod",
              "type": 4,
              "value": "0x80700000",
              "docs": [
                " The number of [Config::BlockNumberProvider] blocks on which new candidates can claim",
                " their membership and be the named head."
              ]
            },
            {
              "name": "MaxLockDuration",
              "type": 4,
              "value": "0x004eed00",
              "docs": [
                " The maximum duration of the payout lock."
              ]
            },
            {
              "name": "ChallengePeriod",
              "type": 4,
              "value": "0xc0890100",
              "docs": [
                " The number of [Config::BlockNumberProvider] blocks between membership challenges."
              ]
            },
            {
              "name": "MaxPayouts",
              "type": 4,
              "value": "0x08000000",
              "docs": [
                " The maximum number of payouts a member may have waiting unclaimed."
              ]
            },
            {
              "name": "MaxBids",
              "type": 4,
              "value": "0x00020000",
              "docs": [
                " The maximum number of bids at once."
              ]
            }
          ],
          "errors": {
            "type": 1021
          },
          "index": 58,
          "docs": []
        },
        {
          "name": "Revive",
          "storage": {
            "prefix": "Revive",
            "items": [
              {
                "name": "PristineCode",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 13,
                    "value": 1022
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " A mapping from a contract's code hash to its code."
                ]
              },
              {
                "name": "CodeInfoOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 13,
                    "value": 1023
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " A mapping from a contract's code hash to its code info."
                ]
              },
              {
                "name": "AccountInfoOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 224,
                    "value": 1024
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The data associated to a contract or externally owned account."
                ]
              },
              {
                "name": "ImmutableDataOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 224,
                    "value": 1027
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The immutable data associated with a given account."
                ]
              },
              {
                "name": "DeletionQueue",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 199
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Evicted contracts that await child trie deletion.",
                  "",
                  " Child trie deletion is a heavy operation depending on the amount of storage items",
                  " stored in said trie. Therefore this operation is performed lazily in `on_idle`."
                ]
              },
              {
                "name": "DeletionQueueCounter",
                "modifier": "Default",
                "type": {
                  "plain": 1028
                },
                "fallback": "0x0000000000000000",
                "docs": [
                  " A pair of monotonic counters used to track the latest contract marked for deletion",
                  " and the latest deleted contract in queue."
                ]
              },
              {
                "name": "OriginalAccount",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Identity"
                    ],
                    "key": 224,
                    "value": 0
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Map a Ethereum address to its original `AccountId32`.",
                  "",
                  " When deriving a `H160` from an `AccountId32` we use a hash function. In order to",
                  " reconstruct the original account we need to store the reverse mapping here.",
                  " Register your `AccountId32` using [`Pallet::map_account`] in order to",
                  " use it with this pallet."
                ]
              }
            ]
          },
          "calls": {
            "type": 429
          },
          "events": {
            "type": 223
          },
          "constants": [
            {
              "name": "DepositPerByte",
              "type": 6,
              "value": "0x15160500000000000000000000000000",
              "docs": [
                " The amount of balance a caller has to pay for each byte of storage.",
                "",
                " # Note",
                "",
                " It is safe to change this value on a live chain as all refunds are pro rata."
              ]
            },
            {
              "name": "DepositPerItem",
              "type": 6,
              "value": "0xa4425d8d010000000000000000000000",
              "docs": [
                " The amount of balance a caller has to pay for each storage item.",
                "",
                " # Note",
                "",
                " It is safe to change this value on a live chain as all refunds are pro rata."
              ]
            },
            {
              "name": "CodeHashLockupDepositPercent",
              "type": 233,
              "value": "0x00a3e111",
              "docs": [
                " The percentage of the storage deposit that should be held for using a code hash.",
                " Instantiating a contract, protects the code from being removed. In order to prevent",
                " abuse these actions are protected with a percentage of the code deposit."
              ]
            },
            {
              "name": "UnsafeUnstableInterface",
              "type": 8,
              "value": "0x00",
              "docs": [
                " Make contract callable functions marked as `#[unstable]` available.",
                "",
                " Contracts that use `#[unstable]` functions won't be able to be uploaded unless",
                " this is set to `true`. This is only meant for testnets and dev nodes in order to",
                " experiment with new features.",
                "",
                " # Warning",
                "",
                " Do **not** set to `true` on productions chains."
              ]
            },
            {
              "name": "ChainId",
              "type": 12,
              "value": "0x421b0f1900000000",
              "docs": [
                " The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) chain ID.",
                "",
                " This is a unique identifier assigned to each blockchain network,",
                " preventing replay attacks."
              ]
            },
            {
              "name": "NativeToEthRatio",
              "type": 4,
              "value": "0x40420f00",
              "docs": [
                " The ratio between the decimal representation of the native token and the ETH token."
              ]
            }
          ],
          "errors": {
            "type": 1029
          },
          "index": 60,
          "docs": []
        },
        {
          "name": "StateTrieMigration",
          "storage": {
            "prefix": "StateTrieMigration",
            "items": [
              {
                "name": "MigrationProcess",
                "modifier": "Default",
                "type": {
                  "plain": 435
                },
                "fallback": "0x0000000000000000000000000000",
                "docs": [
                  " Migration progress.",
                  "",
                  " This stores the snapshot of the last migrated keys. It can be set into motion and move",
                  " forward by any of the means provided by this pallet."
                ]
              },
              {
                "name": "AutoLimits",
                "modifier": "Default",
                "type": {
                  "plain": 433
                },
                "fallback": "0x00",
                "docs": [
                  " The limits that are imposed on automatic migrations.",
                  "",
                  " If set to None, then no automatic migration happens."
                ]
              },
              {
                "name": "SignedMigrationMaxLimits",
                "modifier": "Optional",
                "type": {
                  "plain": 434
                },
                "fallback": "0x00",
                "docs": [
                  " The maximum limits that the signed migration could use.",
                  "",
                  " If not set, no signed submission is allowed."
                ]
              }
            ]
          },
          "calls": {
            "type": 432
          },
          "events": {
            "type": 226
          },
          "constants": [
            {
              "name": "MaxKeyLen",
              "type": 4,
              "value": "0x00020000",
              "docs": [
                " Maximal number of bytes that a key can have.",
                "",
                " FRAME itself does not limit the key length.",
                " The concrete value must therefore depend on your storage usage.",
                " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of",
                " keys which are then hashed and concatenated, resulting in arbitrarily long keys.",
                "",
                " Use the *state migration RPC* to retrieve the length of the longest key in your",
                " storage: <https://github.com/paritytech/substrate/issues/11642>",
                "",
                " The migration will halt with a `Halted` event if this value is too small.",
                " Since there is no real penalty from over-estimating, it is advised to use a large",
                " value. The default is 512 byte.",
                "",
                " Some key lengths for reference:",
                " - [`frame_support::storage::StorageValue`]: 32 byte",
                " - [`frame_support::storage::StorageMap`]: 64 byte",
                " - [`frame_support::storage::StorageDoubleMap`]: 96 byte",
                "",
                " For more info see",
                " <https://www.shawntabrizi.com/blog/substrate/querying-substrate-storage-via-rpc/>"
              ]
            }
          ],
          "errors": {
            "type": 228
          },
          "index": 70,
          "docs": []
        },
        {
          "name": "NominationPools",
          "storage": {
            "prefix": "NominationPools",
            "items": [
              {
                "name": "TotalValueLocked",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The sum of funds across all pools.",
                  "",
                  " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]",
                  " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's",
                  " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s."
                ]
              },
              {
                "name": "MinJoinBond",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " Minimum amount to bond to join a pool."
                ]
              },
              {
                "name": "MinCreateBond",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " Minimum bond required to create a pool.",
                  "",
                  " This is the amount that the depositor must put as their initial stake in the pool, as an",
                  " indication of \"skin in the game\".",
                  "",
                  " This is the value that will always exist in the staking ledger of the pool bonded account",
                  " while all other accounts leave."
                ]
              },
              {
                "name": "MaxPools",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of",
                  " pools can exist."
                ]
              },
              {
                "name": "MaxPoolMembers",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Maximum number of members that can exist in the system. If `None`, then the count",
                  " members are not bound on a system wide basis."
                ]
              },
              {
                "name": "MaxPoolMembersPerPool",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Maximum number of members that may belong to pool. If `None`, then the count of",
                  " members is not bound on a per pool basis."
                ]
              },
              {
                "name": "GlobalMaxCommission",
                "modifier": "Optional",
                "type": {
                  "plain": 233
                },
                "fallback": "0x00",
                "docs": [
                  " The maximum commission that can be charged by a pool. Used on commission payouts to bound",
                  " pool commissions that are > `GlobalMaxCommission`, necessary if a future",
                  " `GlobalMaxCommission` is lower than some current pool commissions."
                ]
              },
              {
                "name": "PoolMembers",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 616
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Active members.",
                  "",
                  " TWOX-NOTE: SAFE since `AccountId` is a secure hash."
                ]
              },
              {
                "name": "CounterForPoolMembers",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "BondedPools",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 622
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Storage for bonded pools."
                ]
              },
              {
                "name": "CounterForBondedPools",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "RewardPools",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1030
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Reward pools. This is where there rewards for each pool accumulate. When a members payout is",
                  " claimed, the balance comes out of the reward pool. Keyed by the bonded pools account."
                ]
              },
              {
                "name": "CounterForRewardPools",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "SubPoolsStorage",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1031
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Groups of unbonding pools. Each group of unbonding pools belongs to a",
                  " bonded pool, hence the name sub-pools. Keyed by the bonded pools account."
                ]
              },
              {
                "name": "CounterForSubPoolsStorage",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "Metadata",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 205
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Metadata for the pool."
                ]
              },
              {
                "name": "CounterForMetadata",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "LastPoolId",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " Ever increasing number of all pools created so far."
                ]
              },
              {
                "name": "ReversePoolIdLookup",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 4
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " A reverse lookup from the pool's account id to its id.",
                  "",
                  " This is only used for slashing and on automatic withdraw update. In all other instances, the",
                  " pool id is used, and the accounts are deterministically derived from it."
                ]
              },
              {
                "name": "CounterForReversePoolIdLookup",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "ClaimPermissions",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 237
                  }
                },
                "fallback": "0x02",
                "docs": [
                  " Map from a pool member account to their opted claim permission."
                ]
              }
            ]
          },
          "calls": {
            "type": 438
          },
          "events": {
            "type": 229
          },
          "constants": [
            {
              "name": "PalletId",
              "type": 872,
              "value": "0x70792f6e6f706c73",
              "docs": [
                " The nomination pool's pallet id."
              ]
            },
            {
              "name": "MaxPointsToBalance",
              "type": 2,
              "value": "0x0a",
              "docs": [
                " The maximum pool points-to-balance ratio that an `open` pool can have.",
                "",
                " This is important in the event slashing takes place and the pool's points-to-balance",
                " ratio becomes disproportional.",
                "",
                " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations",
                " are a function of number of points, and by setting this value to e.g. 10, you ensure",
                " that the total number of points in the system are at most 10 times the total_issuance of",
                " the chain, in the absolute worse case.",
                "",
                " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.",
                " Such a scenario would also be the equivalent of the pool being 90% slashed."
              ]
            },
            {
              "name": "MaxUnbonding",
              "type": 4,
              "value": "0x20000000",
              "docs": [
                " The maximum number of simultaneous unbonding chunks that can exist per member."
              ]
            }
          ],
          "errors": {
            "type": 1037
          },
          "index": 80,
          "docs": []
        },
        {
          "name": "VoterList",
          "storage": {
            "prefix": "VoterList",
            "items": [
              {
                "name": "ListNodes",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1039
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " A single node, within some bag.",
                  "",
                  " Nodes store links forward and back within their respective bags."
                ]
              },
              {
                "name": "CounterForListNodes",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "ListBags",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 12,
                    "value": 1040
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " A bag stored in storage.",
                  "",
                  " Stores a `Bag` struct, which stores head and tail pointers to itself."
                ]
              },
              {
                "name": "NextNodeAutoRebagged",
                "modifier": "Optional",
                "type": {
                  "plain": 0
                },
                "fallback": "0x00",
                "docs": [
                  " Pointer that remembers the next node that will be auto-rebagged.",
                  " When `None`, the next scan will start from the list head again."
                ]
              },
              {
                "name": "Lock",
                "modifier": "Optional",
                "type": {
                  "plain": 41
                },
                "fallback": "0x00",
                "docs": [
                  " Lock all updates to this pallet.",
                  "",
                  " If any nodes needs updating, removal or addition due to a temporary lock, the",
                  " [`Call::rebag`] can be used."
                ]
              }
            ]
          },
          "calls": {
            "type": 444
          },
          "events": {
            "type": 239
          },
          "constants": [
            {
              "name": "BagThresholds",
              "type": 1041,
              "value": "0x210355a0fc0100000000daa64602000000006e739b02000000007997fc0200000000d0de6b03000000003358eb03000000000d5f7d04000000009aa6240500000000b146e4050000000067cabf0600000000d640bb07000000005350db0800000000714c250a00000000364f9f0b000000000056500d000000009862400f000000001ba17811000000006593031400000000cd42ed16000000002079431a00000000e401161e000000001ef5762200000000f90c7b2700000000e0073a2d00000000e818cf33000000008c68593b000000002ea8fc43000000000abbe14d00000000c3773759000000001986336600000000e85c13750000000018651d8600000000e846a29900000000be67feaf00000000849f9bc900000000ad2df3e60000000028f78f0801000000d817112f01000000bed32c5b01000000c2f5b38d010000000aac95c7010000002bf4e3090200000022acd855020000001060dbac020000002ef08710030000007c2eb682030000002b988205040000001754589b040000009da5fc4605000000ff099c0b060000006c3ed9ec06000000c475deee07000000960f711609000000aa2d08690a000000f892e6ec0b0000008c4638a90d000000978634a60f0000006dac44ed1100000078b93089140000001660528617000000e479cff21a0000004000ddde1e000000ffc30b5d23000000824fa082280000002793f7672e000000a638fa283500000048bfa0e53c00000047d28ac245000000c5a5ace94f000000f68e158b5b0000009083d3dd6800000066b5f72078000000cf1bc19c89000000fc6ff2a39d0000001eef5995b4000000c02092ddce000000b2ed03f9ec000000078933760f010000d30e63f8360100001252973a64010000e1230d1398010000a0722f77d301000078012180170200006533ef6f65020000428586b7be02000028e784fd24030000b13f0a269a030000d016ac5b2004000022c8b619ba04000079c7ec376a050000e092fbf7330600003d05e6141b070000f701add423080000d8108a1c53090000c8ab1b88ae0a0000b2eff0833c0c0000e858f26b040e00000f7d37ae0e100000d5a7eef264120000583f134a121500001753cb5f231800005c3664b8a61b0000a61a0af5ac1f000033f27f22492400004b3a4c1391290000288805c79d2f000037d3a7e08b360000ffa1222e7c3e0000f0c4a14394470000e5ad6f2dff510000076ebb3bee5d0000abf006ec996b00008c6c8ef4427b00003ad69a76338d0000ba57695dc0a100005dda24f04ab90000b66f609e42d400007655960f27f30000258d6c7f8a1601005169eb71143f0100b9be72cc846d01003c4b1762b7a20100cc2f3404a8df0100f7276e2a77250200480b33486f7502001d5cf5e80ad102000f6410b0fb390300a904775d32b203002de121fde73b040030afb76ca8d90400fb753e695e8e05003c44e45d615d06002cb93b35854a0700a8f8cb772c5a08007a48b90d5d9109003d3dc705d8f50a000d1e42d2348e0c001cb0be7c00620e0024796364e17910001b8ded2fc0df1200d3e942b5f69e1500e8ca99b485c41800d0c88c65525f1c00c2f577f96c8020000abce260613b250074bd4dd293a62a00ec4b61c8aadb300048b0376d08f83700c01384b1551d4000dc2bfda12172490070b645ed972254006cfc51fa516160006c93086d46686e009caae886db797e00c036837621e29000a0649b653af8a50028a34ceef61fbe00385aa297aecbd900483335165d7ef900d0cae4520ece1d010090a7aea4664701e09d92a5060d770130778edcc2a2ad01d00bb8d53b2aec0140b18c096fcb3302805193026ed98502a0f6d663a3d8e30260bbcb8701864f03a045f8b63cdfca0340816de8372c5804405e20a9d009fa04808d72453d76b30580f35bc037df8706804eeca838327b0700b198a10eef9108800b2f9b2a3dd10980a2489405043f0b00724c5a1307e20c00d8f897c605c20e009890be3de0e71000434f6546c15d1300d61cff7d4e2f16009b32b873df691900008775d0bc1c1d00da56ebaf68592100dacb4281f13326003c889ef750c32b000ab7e6cbd8213200346dad52af6d39005047e9335ec9410024ee18e8755c4b0038d4b40049545600087d76b2c2e46200981c03995c497100881e553f38c68100b0cb90a161a99400284fe59e404caa00c0e54a304015c30060cd7437b379dfffffffffffffffff",
              "docs": [
                " The list of thresholds separating the various bags.",
                "",
                " Ids are separated into unsorted bags according to their score. This specifies the",
                " thresholds separating the bags. An id's bag is the largest bag for which the id's score",
                " is less than or equal to its upper threshold.",
                "",
                " When ids are iterated, higher bags are iterated completely before lower bags. This means",
                " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower",
                " score, but peer ids within a particular bag are sorted in insertion order.",
                "",
                " # Expressing the constant",
                "",
                " This constant must be sorted in strictly increasing order. Duplicate items are not",
                " permitted.",
                "",
                " There is an implied upper limit of `Score::MAX`; that value does not need to be",
                " specified within the bag. For any two threshold lists, if one ends with",
                " `Score::MAX`, the other one does not, and they are otherwise equal, the two",
                " lists will behave identically.",
                "",
                " # Calculation",
                "",
                " It is recommended to generate the set of thresholds in a geometric series, such that",
                " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *",
                " constant_ratio).max(threshold[k] + 1)` for all `k`.",
                "",
                " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.",
                "",
                " # Examples",
                "",
                " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and",
                "   iteration is strictly in insertion order.",
                " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to",
                "   the procedure given above, then the constant ratio is equal to 2.",
                " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to",
                "   the procedure given above, then the constant ratio is approximately equal to 1.248.",
                " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall",
                "   into bag 0, an id with score 2 will fall into bag 1, etc.",
                "",
                " # Migration",
                "",
                " In the event that this list ever changes, a copy of the old bags list must be retained.",
                " With that `List::migrate` can be called, which will perform the appropriate migration."
              ]
            },
            {
              "name": "MaxAutoRebagPerBlock",
              "type": 4,
              "value": "0x05000000",
              "docs": [
                " Maximum number of accounts that may be re-bagged automatically in `on_idle`.",
                "",
                " A value of `0` (obtained by configuring `type MaxAutoRebagPerBlock = ();`) disables",
                " the feature."
              ]
            }
          ],
          "errors": {
            "type": 1042
          },
          "index": 82,
          "docs": []
        },
        {
          "name": "DelegatedStaking",
          "storage": {
            "prefix": "DelegatedStaking",
            "items": [
              {
                "name": "Delegators",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1044
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Map of Delegators to their `Delegation`.",
                  "",
                  " Implementation note: We are not using a double map with `delegator` and `agent` account",
                  " as keys since we want to restrict delegators to delegate only to one account at a time."
                ]
              },
              {
                "name": "CounterForDelegators",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "Agents",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1045
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Map of `Agent` to their `Ledger`."
                ]
              },
              {
                "name": "CounterForAgents",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              }
            ]
          },
          "calls": null,
          "events": {
            "type": 240
          },
          "constants": [
            {
              "name": "PalletId",
              "type": 872,
              "value": "0x70792f646c73746b",
              "docs": [
                " Injected identifier for the pallet."
              ]
            },
            {
              "name": "SlashRewardFraction",
              "type": 233,
              "value": "0x80969800",
              "docs": [
                " Fraction of the slash that is rewarded to the caller of pending slash to the agent."
              ]
            }
          ],
          "errors": {
            "type": 1046
          },
          "index": 83,
          "docs": []
        },
        {
          "name": "StakingRcClient",
          "storage": {
            "prefix": "StakingRcClient",
            "items": [
              {
                "name": "IncompleteSessionReport",
                "modifier": "Optional",
                "type": {
                  "plain": 446
                },
                "fallback": "0x00",
                "docs": [
                  " An incomplete incoming session report that we have not acted upon yet."
                ]
              },
              {
                "name": "LastSessionReportEndingIndex",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " The last session report's `end_index` that we have acted upon.",
                  "",
                  " This allows this pallet to ensure a sequentially increasing sequence of session reports",
                  " passed to staking.",
                  "",
                  " Note that with the XCM being the backbone of communication, we have a guarantee on the",
                  " ordering of messages. As long as the RC sends session reports in order, we _eventually_",
                  " receive them in the same correct order as well."
                ]
              },
              {
                "name": "OutgoingValidatorSet",
                "modifier": "Optional",
                "type": {
                  "plain": 1047
                },
                "fallback": "0x00",
                "docs": [
                  " A validator set that is outgoing, and should be sent.",
                  "",
                  " This will be attempted to be sent, possibly on every `on_initialize` call, until it is sent,",
                  " or the second value reaches zero, at which point we drop it."
                ]
              }
            ]
          },
          "calls": {
            "type": 445
          },
          "events": {
            "type": 241
          },
          "constants": [],
          "errors": null,
          "index": 84,
          "docs": []
        },
        {
          "name": "MultiBlockElection",
          "storage": {
            "prefix": "MultiBlockElection",
            "items": [
              {
                "name": "Round",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " Internal counter for the number of rounds.",
                  "",
                  " This is useful for de-duplication of transactions submitted to the pool, and general",
                  " diagnostics of the pallet.",
                  "",
                  " This is merely incremented once per every time that an upstream `elect` is called."
                ]
              },
              {
                "name": "CurrentPhase",
                "modifier": "Default",
                "type": {
                  "plain": 246
                },
                "fallback": "0x00",
                "docs": [
                  " Current phase."
                ]
              },
              {
                "name": "DesiredTargets",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 4
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Desired number of targets to elect for this round."
                ]
              },
              {
                "name": "PagedVoterSnapshot",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 39,
                    "value": 1049
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Paginated voter snapshot. At most [`T::Pages`] keys will exist."
                ]
              },
              {
                "name": "PagedVoterSnapshotHash",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 39,
                    "value": 13
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Same as [`PagedVoterSnapshot`], but it will store the hash of the snapshot.",
                  "",
                  " The hash is generated using [`frame_system::Config::Hashing`]."
                ]
              },
              {
                "name": "PagedTargetSnapshot",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 39,
                    "value": 1053
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Paginated target snapshot.",
                  "",
                  " For the time being, since we assume one pages of targets, at most ONE key will exist."
                ]
              },
              {
                "name": "PagedTargetSnapshotHash",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 39,
                    "value": 13
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Same as [`PagedTargetSnapshot`], but it will store the hash of the snapshot.",
                  "",
                  " The hash is generated using [`frame_system::Config::Hashing`]."
                ]
              }
            ]
          },
          "calls": {
            "type": 452
          },
          "events": {
            "type": 245
          },
          "constants": [
            {
              "name": "UnsignedPhase",
              "type": 4,
              "value": "0x32000000",
              "docs": [
                " Duration of the unsigned phase."
              ]
            },
            {
              "name": "SignedPhase",
              "type": 4,
              "value": "0x32000000",
              "docs": [
                " Duration of the signed phase."
              ]
            },
            {
              "name": "SignedValidationPhase",
              "type": 4,
              "value": "0x00010000",
              "docs": [
                " Duration of the singed validation phase.",
                "",
                " The duration of this should not be less than `T::Pages`, and there is no point in it",
                " being more than `SignedPhase::MaxSubmission::get() * T::Pages`. TODO: integrity test for",
                " it."
              ]
            },
            {
              "name": "VoterSnapshotPerBlock",
              "type": 4,
              "value": "0x0e030000",
              "docs": [
                " The number of snapshot voters to fetch per block."
              ]
            },
            {
              "name": "TargetSnapshotPerBlock",
              "type": 4,
              "value": "0xc4090000",
              "docs": [
                " The number of snapshot targets to fetch per block."
              ]
            },
            {
              "name": "Pages",
              "type": 4,
              "value": "0x10000000",
              "docs": [
                " The number of pages.",
                "",
                " The snapshot is created with this many keys in the storage map.",
                "",
                " The solutions may contain at MOST this many pages, but less pages are acceptable as",
                " well."
              ]
            }
          ],
          "errors": {
            "type": 1054
          },
          "index": 85,
          "docs": []
        },
        {
          "name": "MultiBlockElectionVerifier",
          "storage": {
            "prefix": "MultiBlockElectionVerifier",
            "items": [
              {
                "name": "QueuedSolutionX",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 39,
                    "value": 454
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The `X` variant of the current queued solution. Might be the valid one or not.",
                  "",
                  " The two variants of this storage item is to avoid the need of copying. Recall that once a",
                  " `VerifyingSolution` is being processed, it needs to write its partial supports *somewhere*.",
                  " Writing theses supports on top of a *good* queued supports is wrong, since we might bail.",
                  " Writing them to a bugger and copying at the ned is slightly better, but expensive. This flag",
                  " system is best of both worlds."
                ]
              },
              {
                "name": "QueuedSolutionY",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 39,
                    "value": 454
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The `Y` variant of the current queued solution. Might be the valid one or not."
                ]
              },
              {
                "name": "QueuedValidVariant",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1055
                  }
                },
                "fallback": "0x01",
                "docs": [
                  " Pointer to the variant of [`QueuedSolutionX`] or [`QueuedSolutionY`] that is currently",
                  " valid."
                ]
              },
              {
                "name": "QueuedSolutionBackings",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 39,
                    "value": 1056
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The `(amount, count)` of backings, divided per page.",
                  "",
                  " This is stored because in the last block of verification we need them to compute the score,",
                  " and check `MaxBackersPerWinnerFinal`.",
                  "",
                  " This can only ever live for the invalid variant of the solution. Once it is valid, we don't",
                  " need this information anymore; the score is already computed once in",
                  " [`QueuedSolutionScore`], and the backing counts are checked."
                ]
              },
              {
                "name": "QueuedSolutionScore",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 250
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The score of the valid variant of [`QueuedSolution`].",
                  "",
                  " This only ever lives for the `valid` variant."
                ]
              },
              {
                "name": "MinimumScore",
                "modifier": "Optional",
                "type": {
                  "plain": 250
                },
                "fallback": "0x00",
                "docs": [
                  " The minimum score that each solution must attain in order to be considered feasible."
                ]
              },
              {
                "name": "StatusStorage",
                "modifier": "Default",
                "type": {
                  "plain": 1060
                },
                "fallback": "0x01",
                "docs": [
                  " Storage item for [`Status`]."
                ]
              }
            ]
          },
          "calls": {
            "type": 462
          },
          "events": {
            "type": 247
          },
          "constants": [
            {
              "name": "SolutionImprovementThreshold",
              "type": 233,
              "value": "0x00000000",
              "docs": [
                " The minimum amount of improvement to the solution score that defines a solution as",
                " \"better\"."
              ]
            },
            {
              "name": "MaxBackersPerWinnerFinal",
              "type": 4,
              "value": "0xd4300000",
              "docs": [
                " Maximum number of backers, per winner, among all pages of an election.",
                "",
                " This can only be checked at the very final step of verification.",
                "",
                " NOTE: at the moment, we don't check this, and it is in place for future compatibility."
              ]
            },
            {
              "name": "MaxBackersPerWinner",
              "type": 4,
              "value": "0x0e030000",
              "docs": [
                " Maximum number of backers, per winner, per page."
              ]
            },
            {
              "name": "MaxWinnersPerPage",
              "type": 4,
              "value": "0xe8030000",
              "docs": [
                " Maximum number of supports (aka. winners/validators/targets) that can be represented in",
                " a page of results."
              ]
            }
          ],
          "errors": null,
          "index": 86,
          "docs": []
        },
        {
          "name": "MultiBlockElectionUnsigned",
          "storage": null,
          "calls": {
            "type": 463
          },
          "events": null,
          "constants": [],
          "errors": null,
          "index": 87,
          "docs": []
        },
        {
          "name": "MultiBlockElectionSigned",
          "storage": {
            "prefix": "MultiBlockElectionSigned",
            "items": [
              {
                "name": "Invulnerables",
                "modifier": "Default",
                "type": {
                  "plain": 1061
                },
                "fallback": "0x00",
                "docs": [
                  " Accounts whitelisted by governance to always submit their solutions.",
                  "",
                  " They are different in that:",
                  "",
                  " * They always pay a fixed deposit for submission, specified by",
                  "   [`Config::InvulnerableDeposit`]. They pay no page deposit.",
                  " * If _ejected_ by better solution from [`SortedScores`], they will get their full deposit",
                  "   back.",
                  " * They always get their tx-fee back even if they are _discarded_."
                ]
              },
              {
                "name": "SortedScores",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1062
                  }
                },
                "fallback": "0x00",
                "docs": []
              },
              {
                "name": "SubmissionStorage",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 1065,
                    "value": 466
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Triple map from (round, account, page) to a solution page."
                ]
              },
              {
                "name": "SubmissionMetadataStorage",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 952,
                    "value": 1066
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Map from account to the metadata of their submission.",
                  "",
                  " invariant: for any Key1 of type `AccountId` in [`Submissions`], this storage map also has a",
                  " value."
                ]
              }
            ]
          },
          "calls": {
            "type": 541
          },
          "events": {
            "type": 252
          },
          "constants": [],
          "errors": {
            "type": 1069
          },
          "index": 88,
          "docs": []
        },
        {
          "name": "Staking",
          "storage": {
            "prefix": "Staking",
            "items": [
              {
                "name": "ValidatorCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The ideal number of active validators."
                ]
              },
              {
                "name": "Invulnerables",
                "modifier": "Default",
                "type": {
                  "plain": 868
                },
                "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": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 0
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Map from all locked \"stash\" accounts to the controller account.",
                  "",
                  " TWOX-NOTE: SAFE since `AccountId` is a secure hash."
                ]
              },
              {
                "name": "MinNominatorBond",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The minimum active bond to become and maintain the role of a nominator."
                ]
              },
              {
                "name": "MinValidatorBond",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The minimum active bond to become and maintain the role of a validator."
                ]
              },
              {
                "name": "MinimumActiveStake",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The minimum active nominator stake of the last successful election."
                ]
              },
              {
                "name": "MinCommission",
                "modifier": "Default",
                "type": {
                  "plain": 233
                },
                "fallback": "0x00000000",
                "docs": [
                  " The minimum amount of commission that validators can set.",
                  "",
                  " If set to `0`, no limit exists."
                ]
              },
              {
                "name": "Ledger",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 0,
                    "value": 1070
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.",
                  "",
                  " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed",
                  " by [`StakingLedger`] to ensure data and lock consistency."
                ]
              },
              {
                "name": "Payee",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 254
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Where the reward payment should be made. Keyed by stash.",
                  "",
                  " TWOX-NOTE: SAFE since `AccountId` is a secure hash."
                ]
              },
              {
                "name": "Validators",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 255
                  }
                },
                "fallback": "0x0000",
                "docs": [
                  " The map from (wannabe) validator stash key to the preferences of that validator.",
                  "",
                  " TWOX-NOTE: SAFE since `AccountId` is a secure hash."
                ]
              },
              {
                "name": "CounterForValidators",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "MaxValidatorsCount",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " The maximum validator count before we stop allowing new validators to join.",
                  "",
                  " When this value is not set, no limits are enforced."
                ]
              },
              {
                "name": "Nominators",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1071
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The map from nominator stash key to their nomination preferences, namely the validators that",
                  " they wish to support.",
                  "",
                  " Note that the keys of this storage map might become non-decodable in case the",
                  " account's [`NominationsQuota::MaxNominations`] configuration is decreased.",
                  " In this rare case, these nominators",
                  " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`",
                  " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable",
                  " nominators will effectively not-exist, until they re-submit their preferences such that it",
                  " is within the bounds of the newly set `Config::MaxNominations`.",
                  "",
                  " This implies that `::iter_keys().count()` and `::iter().count()` might return different",
                  " values for this map. Moreover, the main `::count()` is aligned with the former, namely the",
                  " number of keys that exist.",
                  "",
                  " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via",
                  " [`Call::chill_other`] dispatchable by anyone.",
                  "",
                  " TWOX-NOTE: SAFE since `AccountId` is a secure hash."
                ]
              },
              {
                "name": "CounterForNominators",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "VirtualStakers",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 41
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Stakers whose funds are managed by other pallets.",
                  "",
                  " This pallet does not apply any locks on them, therefore they are only virtually bonded. They",
                  " are expected to be keyless accounts and hence should not be allowed to mutate their ledger",
                  " directly via this pallet. Instead, these accounts are managed by other pallets and accessed",
                  " via low level apis. We keep track of them to do minimal integrity checks."
                ]
              },
              {
                "name": "CounterForVirtualStakers",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  "Counter for the related counted storage map"
                ]
              },
              {
                "name": "MaxNominatorsCount",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " The maximum nominator count before we stop allowing new validators to join.",
                  "",
                  " When this value is not set, no limits are enforced."
                ]
              },
              {
                "name": "CurrentEra",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " The current planned era index.",
                  "",
                  " This is the latest planned era, depending on how the Session pallet queues the validator",
                  " set, it might be active or not."
                ]
              },
              {
                "name": "ActiveEra",
                "modifier": "Optional",
                "type": {
                  "plain": 1072
                },
                "fallback": "0x00",
                "docs": [
                  " The active era information, it holds index and start.",
                  "",
                  " The active era is the era being currently rewarded. Validator set of this era must be",
                  " equal to what is RC's session pallet."
                ]
              },
              {
                "name": "BondedEras",
                "modifier": "Default",
                "type": {
                  "plain": 1073
                },
                "fallback": "0x00",
                "docs": [
                  " A mapping from still-bonded eras to the first session index of that era.",
                  "",
                  " Must contains information for eras for the range:",
                  " `[active_era - bounding_duration; active_era]`"
                ]
              },
              {
                "name": "ErasStakersOverview",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 952,
                    "value": 1074
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Summary of validator exposure at a given era.",
                  "",
                  " This contains the total stake in support of the validator and their own stake. In addition,",
                  " it can also be used to get the number of nominators backing this validator and the number of",
                  " exposure pages they are divided into. The page count is useful to determine the number of",
                  " pages of rewards that needs to be claimed.",
                  "",
                  " This is keyed first by the era index to allow bulk deletion and then the stash account.",
                  " Should only be accessed through `Eras`.",
                  "",
                  " Is it removed after [`Config::HistoryDepth`] eras.",
                  " If stakers hasn't been set or has been removed then empty overview is returned."
                ]
              },
              {
                "name": "ErasStakersPaged",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 1065,
                    "value": 1075
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Paginated exposure of a validator at given era.",
                  "",
                  " This is keyed first by the era index to allow bulk deletion, then stash account and finally",
                  " the page. Should only be accessed through `Eras`.",
                  "",
                  " This is cleared after [`Config::HistoryDepth`] eras."
                ]
              },
              {
                "name": "ClaimedRewards",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 952,
                    "value": 1079
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " History of claimed paged rewards by era and validator.",
                  "",
                  " This is keyed by era and validator stash which maps to the set of page indexes which have",
                  " been claimed.",
                  "",
                  " It is removed after [`Config::HistoryDepth`] eras."
                ]
              },
              {
                "name": "ErasValidatorPrefs",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 952,
                    "value": 255
                  }
                },
                "fallback": "0x0000",
                "docs": [
                  " Exposure of validator at era with the preferences of validators.",
                  "",
                  " This is keyed first by the era index to allow bulk deletion and then the stash account.",
                  "",
                  " Is it removed after [`Config::HistoryDepth`] eras."
                ]
              },
              {
                "name": "ErasValidatorReward",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 6
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The total validator era payout for the last [`Config::HistoryDepth`] eras.",
                  "",
                  " Eras that haven't finished yet or has been removed doesn't have reward."
                ]
              },
              {
                "name": "ErasRewardPoints",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1080
                  }
                },
                "fallback": "0x0000000000",
                "docs": [
                  " Rewards for the last [`Config::HistoryDepth`] eras.",
                  " If reward hasn't been set or has been removed then 0 reward is returned."
                ]
              },
              {
                "name": "ErasTotalStake",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 6
                  }
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The total amount staked for the last [`Config::HistoryDepth`] eras.",
                  " If total hasn't been set or has been removed then 0 stake is returned."
                ]
              },
              {
                "name": "ForceEra",
                "modifier": "Default",
                "type": {
                  "plain": 257
                },
                "fallback": "0x00",
                "docs": [
                  " Mode of era forcing."
                ]
              },
              {
                "name": "MaxStakedRewards",
                "modifier": "Optional",
                "type": {
                  "plain": 545
                },
                "fallback": "0x00",
                "docs": [
                  " Maximum staked rewards, i.e. the percentage of the era inflation that",
                  " is used for stake rewards.",
                  " See [Era payout](./index.html#era-payout)."
                ]
              },
              {
                "name": "SlashRewardFraction",
                "modifier": "Default",
                "type": {
                  "plain": 233
                },
                "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": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The amount of currency given to reporters of a slash event which was",
                  " canceled by extraordinary circumstances (e.g. governance)."
                ]
              },
              {
                "name": "OffenceQueue",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 952,
                    "value": 1083
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Stores reported offences in a queue until they are processed in subsequent blocks.",
                  "",
                  " Each offence is recorded under the corresponding era index and the offending validator's",
                  " account. If an offence spans multiple pages, only one page is processed at a time. Offences",
                  " are handled sequentially, with their associated slashes computed and stored in",
                  " `UnappliedSlashes`. These slashes are then applied in a future era as determined by",
                  " `SlashDeferDuration`.",
                  "",
                  " Any offences tied to an era older than `BondingDuration` are automatically dropped.",
                  " Processing always prioritizes the oldest era first."
                ]
              },
              {
                "name": "OffenceQueueEras",
                "modifier": "Optional",
                "type": {
                  "plain": 1084
                },
                "fallback": "0x00",
                "docs": [
                  " Tracks the eras that contain offences in `OffenceQueue`, sorted from **earliest to latest**.",
                  "",
                  " - This ensures efficient retrieval of the oldest offence without iterating through",
                  " `OffenceQueue`.",
                  " - When a new offence is added to `OffenceQueue`, its era is **inserted in sorted order**",
                  " if not already present.",
                  " - When all offences for an era are processed, it is **removed** from this list.",
                  " - The maximum length of this vector is bounded by `BondingDuration`.",
                  "",
                  " This eliminates the need for expensive iteration and sorting when fetching the next offence",
                  " to process."
                ]
              },
              {
                "name": "ProcessingOffence",
                "modifier": "Optional",
                "type": {
                  "plain": 1085
                },
                "fallback": "0x00",
                "docs": [
                  " Tracks the currently processed offence record from the `OffenceQueue`.",
                  "",
                  " - When processing offences, an offence record is **popped** from the oldest era in",
                  "   `OffenceQueue` and stored here.",
                  " - The function `process_offence` reads from this storage, processing one page of exposure at",
                  "   a time.",
                  " - After processing a page, the `exposure_page` count is **decremented** until it reaches",
                  "   zero.",
                  " - Once fully processed, the offence record is removed from this storage.",
                  "",
                  " This ensures that offences are processed incrementally, preventing excessive computation",
                  " in a single block while maintaining correct slashing behavior."
                ]
              },
              {
                "name": "UnappliedSlashes",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 1086,
                    "value": 1087
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " All unapplied slashes that are queued for later."
                ]
              },
              {
                "name": "CancelledSlashes",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1089
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Cancelled slashes by era and validator with maximum slash fraction to be cancelled.",
                  "",
                  " When slashes are cancelled by governance, this stores the era and the validators",
                  " whose slashes should be cancelled, along with the maximum slash fraction that should",
                  " be cancelled for each validator."
                ]
              },
              {
                "name": "ValidatorSlashInEra",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 952,
                    "value": 744
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " All slashing events on validators, mapped by era to the highest slash proportion",
                  " and slash value of the era."
                ]
              },
              {
                "name": "ChillThreshold",
                "modifier": "Optional",
                "type": {
                  "plain": 545
                },
                "fallback": "0x00",
                "docs": [
                  " The threshold for when users can start calling `chill_other` for other validators /",
                  " nominators. The threshold is compared to the actual number of validators / nominators",
                  " (`CountFor*`) in the system compared to the configured max (`Max*Count`)."
                ]
              },
              {
                "name": "VoterSnapshotStatus",
                "modifier": "Default",
                "type": {
                  "plain": 1090
                },
                "fallback": "0x02",
                "docs": [
                  " Voter snapshot progress status.",
                  "",
                  " If the status is `Ongoing`, it keeps a cursor of the last voter retrieved to proceed when",
                  " creating the next snapshot page."
                ]
              },
              {
                "name": "NextElectionPage",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Keeps track of an ongoing multi-page election solution request.",
                  "",
                  " If `Some(_)``, it is the next page that we intend to elect. If `None`, we are not in the",
                  " election process.",
                  "",
                  " This is only set in multi-block elections. Should always be `None` otherwise."
                ]
              },
              {
                "name": "ElectableStashes",
                "modifier": "Default",
                "type": {
                  "plain": 1091
                },
                "fallback": "0x00",
                "docs": [
                  " A bounded list of the \"electable\" stashes that resulted from a successful election."
                ]
              },
              {
                "name": "EraPruningState",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1092
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Tracks the current step of era pruning process for each era being lazily pruned."
                ]
              }
            ]
          },
          "calls": {
            "type": 543
          },
          "events": {
            "type": 253
          },
          "constants": [
            {
              "name": "HistoryDepth",
              "type": 4,
              "value": "0x54000000",
              "docs": [
                " Number of eras to keep in history.",
                "",
                " Following information is kept for eras in `[current_era -",
                " HistoryDepth, current_era]`: `ErasValidatorPrefs`, `ErasValidatorReward`,",
                " `ErasRewardPoints`, `ErasTotalStake`, `ClaimedRewards`,",
                " `ErasStakersPaged`, `ErasStakersOverview`.",
                "",
                " Must be more than the number of eras delayed by session.",
                " I.e. active era must always be in history. I.e. `active_era >",
                " current_era - history_depth` must be guaranteed.",
                "",
                " If migrating an existing pallet from storage value to config value,",
                " this should be set to same value or greater as in storage."
              ]
            },
            {
              "name": "SessionsPerEra",
              "type": 4,
              "value": "0x06000000",
              "docs": [
                " Number of sessions per era, as per the preferences of the **relay chain**."
              ]
            },
            {
              "name": "PlanningEraOffset",
              "type": 4,
              "value": "0x02000000",
              "docs": [
                " Number of sessions before the end of an era when the election for the next era will",
                " start.",
                "",
                " - This determines how many sessions **before** the last session of the era the staking",
                "   election process should begin.",
                " - The value is bounded between **1** (election starts at the beginning of the last",
                "   session) and `SessionsPerEra` (election starts at the beginning of the first session",
                "   of the era).",
                "",
                " ### Example:",
                " - If `SessionsPerEra = 6` and `PlanningEraOffset = 1`, the election starts at the",
                "   beginning of session `6 - 1 = 5`.",
                " - If `PlanningEraOffset = 6`, the election starts at the beginning of session `6 - 6 =",
                "   0`, meaning it starts at the very beginning of the era."
              ]
            },
            {
              "name": "BondingDuration",
              "type": 4,
              "value": "0x1c000000",
              "docs": [
                " Number of eras that staked funds must remain bonded for."
              ]
            },
            {
              "name": "SlashDeferDuration",
              "type": 4,
              "value": "0x1b000000",
              "docs": [
                " Number of eras that slashes are deferred by, after computation.",
                "",
                " This should be less than the bonding duration. Set to 0 if slashes",
                " should be applied immediately, without opportunity for intervention."
              ]
            },
            {
              "name": "MaxExposurePageSize",
              "type": 4,
              "value": "0x00020000",
              "docs": [
                " The maximum size of each `T::ExposurePage`.",
                "",
                " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`",
                " nominators.",
                "",
                " For older non-paged exposure, a reward payout was restricted to the top",
                " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the",
                " nominator payout.",
                "",
                " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to",
                " reduce without handling it in a migration."
              ]
            },
            {
              "name": "MaxValidatorSet",
              "type": 4,
              "value": "0xe8030000",
              "docs": [
                " The absolute maximum of winner validators this pallet should return.",
                "",
                " As this pallet supports multi-block election, the set of winner validators *per",
                " election* is bounded by this type."
              ]
            },
            {
              "name": "MaxUnlockingChunks",
              "type": 4,
              "value": "0x20000000",
              "docs": [
                " The maximum number of `unlocking` chunks a [`StakingLedger`] can",
                " have. Effectively determines how many unique eras a staker may be",
                " unbonding in.",
                "",
                " Note: `MaxUnlockingChunks` is used as the upper bound for the",
                " `BoundedVec` item `StakingLedger.unlocking`. Setting this value",
                " lower than the existing value can lead to inconsistencies in the",
                " `StakingLedger` and will need to be handled properly in a runtime",
                " migration. The test `reducing_max_unlocking_chunks_abrupt` shows",
                " this effect."
              ]
            },
            {
              "name": "MaxInvulnerables",
              "type": 4,
              "value": "0x14000000",
              "docs": [
                " Maximum number of invulnerable validators."
              ]
            },
            {
              "name": "MaxEraDuration",
              "type": 12,
              "value": "0x8062ee0100000000",
              "docs": [
                " Maximum allowed era duration in milliseconds.",
                "",
                " This provides a defensive upper bound to cap the effective era duration, preventing",
                " excessively long eras from causing runaway inflation (e.g., due to bugs). If the actual",
                " era duration exceeds this value, it will be clamped to this maximum.",
                "",
                " Example: For an ideal era duration of 24 hours (86,400,000 ms),",
                " this can be set to 604,800,000 ms (7 days)."
              ]
            },
            {
              "name": "MaxPruningItems",
              "type": 4,
              "value": "0x64000000",
              "docs": [
                " Maximum number of storage items that can be pruned in a single call.",
                "",
                " This controls how many storage items can be deleted in each call to `prune_era_step`.",
                " This should be set to a conservative value (e.g., 100-500 items) to ensure pruning",
                " doesn't consume too much block space. The actual weight is determined by benchmarks."
              ]
            }
          ],
          "errors": {
            "type": 1093
          },
          "index": 89,
          "docs": []
        },
        {
          "name": "Treasury",
          "storage": {
            "prefix": "Treasury",
            "items": [
              {
                "name": "ProposalCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.",
                  " Refer to <https://github.com/paritytech/polkadot-sdk/pull/5961> for migration to `spend`.",
                  "",
                  " Number of proposals that have been made."
                ]
              },
              {
                "name": "Proposals",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 702
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.",
                  " Refer to <https://github.com/paritytech/polkadot-sdk/pull/5961> for migration to `spend`.",
                  "",
                  " Proposals that have been made."
                ]
              },
              {
                "name": "Deactivated",
                "modifier": "Default",
                "type": {
                  "plain": 6
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The amount which has been reported as inactive to Currency."
                ]
              },
              {
                "name": "Approvals",
                "modifier": "Default",
                "type": {
                  "plain": 1094
                },
                "fallback": "0x00",
                "docs": [
                  " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.",
                  " Refer to <https://github.com/paritytech/polkadot-sdk/pull/5961> for migration to `spend`.",
                  "",
                  " Proposal indices that have been approved but not yet awarded."
                ]
              },
              {
                "name": "SpendCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The count of spends that have been made."
                ]
              },
              {
                "name": "Spends",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1095
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Spends that have been approved and being processed."
                ]
              },
              {
                "name": "LastSpendPeriod",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " The blocknumber for the last triggered spend period."
                ]
              }
            ]
          },
          "calls": {
            "type": 558
          },
          "events": {
            "type": 260
          },
          "constants": [
            {
              "name": "SpendPeriod",
              "type": 4,
              "value": "0x80510100",
              "docs": [
                " Period between successive spends."
              ]
            },
            {
              "name": "Burn",
              "type": 71,
              "value": "0x00000000",
              "docs": [
                " Percentage of spare funds (if any) that are burnt per spend period."
              ]
            },
            {
              "name": "PalletId",
              "type": 872,
              "value": "0x70792f7472737279",
              "docs": [
                " The treasury's pallet id, used for deriving its sovereign account ID."
              ]
            },
            {
              "name": "MaxApprovals",
              "type": 4,
              "value": "0x64000000",
              "docs": [
                " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.",
                " Refer to <https://github.com/paritytech/polkadot-sdk/pull/5961> for migration to `spend`.",
                "",
                " The maximum number of approvals that can wait in the spending queue.",
                "",
                " NOTE: This parameter is also used within the Bounties Pallet extension if enabled."
              ]
            },
            {
              "name": "PayoutPeriod",
              "type": 4,
              "value": "0x80c61300",
              "docs": [
                " The period during which an approved treasury spend has to be claimed."
              ]
            },
            {
              "name": "pot_account",
              "type": 0,
              "value": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000",
              "docs": [
                " Gets this pallet's derived pot account."
              ]
            }
          ],
          "errors": {
            "type": 1097
          },
          "index": 90,
          "docs": []
        },
        {
          "name": "ConvictionVoting",
          "storage": {
            "prefix": "ConvictionVoting",
            "items": [
              {
                "name": "VotingFor",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 1098,
                    "value": 1099
                  }
                },
                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "docs": [
                  " All voting for a particular voter in a particular voting class. We store the balance for the",
                  " number of votes that we have recorded."
                ]
              },
              {
                "name": "ClassLocksFor",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 1102
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The voting classes which have a non-zero lock requirement and the lock amounts which they",
                  " require. The actual amount locked on behalf of this pallet should always be the maximum of",
                  " this list."
                ]
              }
            ]
          },
          "calls": {
            "type": 559
          },
          "events": {
            "type": 263
          },
          "constants": [
            {
              "name": "MaxVotes",
              "type": 4,
              "value": "0x00020000",
              "docs": [
                " The maximum number of concurrent votes an account may have.",
                "",
                " Also used to compute weight, an overly large value can lead to extrinsics with large",
                " weight estimation: see `delegate` for instance."
              ]
            },
            {
              "name": "VoteLockingPeriod",
              "type": 4,
              "value": "0xc0890100",
              "docs": [
                " The minimum period of vote locking.",
                "",
                " It should be no shorter than enactment period to ensure that in the case of an approval,",
                " those successful voters are locked into the consequences that their votes entail."
              ]
            }
          ],
          "errors": {
            "type": 1103
          },
          "index": 91,
          "docs": []
        },
        {
          "name": "Referenda",
          "storage": {
            "prefix": "Referenda",
            "items": [
              {
                "name": "ReferendumCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " The next free referendum index, aka the number of referenda started so far."
                ]
              },
              {
                "name": "ReferendumInfoFor",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 1104
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Information concerning any given referendum."
                ]
              },
              {
                "name": "TrackQueue",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 194,
                    "value": 1106
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The sorted list of referenda ready to be decided but not yet being decided, ordered by",
                  " conviction-weighted approvals.",
                  "",
                  " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`."
                ]
              },
              {
                "name": "DecidingCount",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 194,
                    "value": 4
                  }
                },
                "fallback": "0x00000000",
                "docs": [
                  " The number of referenda being decided currently."
                ]
              },
              {
                "name": "MetadataOf",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 4,
                    "value": 13
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The metadata is a general information concerning the referendum.",
                  " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON",
                  " dump or IPFS hash of a JSON file.",
                  "",
                  " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)",
                  " large preimages."
                ]
              }
            ]
          },
          "calls": {
            "type": 562
          },
          "events": {
            "type": 266
          },
          "constants": [
            {
              "name": "SubmissionDeposit",
              "type": 6,
              "value": "0x554dd2c2070000000000000000000000",
              "docs": [
                " The minimum amount to be used as a deposit for a public referendum proposal."
              ]
            },
            {
              "name": "MaxQueued",
              "type": 4,
              "value": "0x64000000",
              "docs": [
                " Maximum size of the referendum queue for a single track."
              ]
            },
            {
              "name": "UndecidingTimeout",
              "type": 4,
              "value": "0x80130300",
              "docs": [
                " The number of blocks after submission that a referendum must begin being decided by.",
                " Once this passes, then anyone may cancel the referendum."
              ]
            },
            {
              "name": "AlarmInterval",
              "type": 4,
              "value": "0x01000000",
              "docs": [
                " Quantization level for the referendum wakeup scheduler. A higher number will result in",
                " fewer storage reads/writes needed for smaller voters, but also result in delays to the",
                " automatic referendum status changes. Explicit servicing instructions are unaffected."
              ]
            },
            {
              "name": "Tracks",
              "type": 1107,
              "value": "0x40000064726f6f740000000000000000000000000000000000000000000100000020d33f25a6d70b000000000000000000b00400008013030040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000050c8ec362a2f010000000000000000002c01000080130300640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f01000000003962790200000000020064776973685f666f725f6368616e6765000000000000000000000a000000a090d96d545e02000000000000000000b00400008013030040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00647374616b696e675f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000008147e05511e00000000000000000000b00400008013030080700000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000050c8ec362a2f01000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000090e99f12d3eb05000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c8000000554dd2c20700000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f746970706572000000000000000000000000000000640000005205379c4d000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000003435261a0803000000000000000000006009000080130300201c00004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e646572000000000000000000000032000000686a4c3410060000000000000000000060090000801303004038000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e646572000000000000000000000000000032000000d0d49868200c00000000000000000000600900008013030080700000403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff",
              "docs": [
                " A list of tracks.",
                "",
                " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate."
              ]
            }
          ],
          "errors": {
            "type": 1113
          },
          "index": 92,
          "docs": []
        },
        {
          "name": "Origins",
          "storage": null,
          "calls": null,
          "events": null,
          "constants": [],
          "errors": null,
          "index": 93,
          "docs": []
        },
        {
          "name": "Whitelist",
          "storage": {
            "prefix": "Whitelist",
            "items": [
              {
                "name": "WhitelistedCall",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 13,
                    "value": 41
                  }
                },
                "fallback": "0x00",
                "docs": []
              }
            ]
          },
          "calls": {
            "type": 565
          },
          "events": {
            "type": 779
          },
          "constants": [],
          "errors": {
            "type": 1114
          },
          "index": 94,
          "docs": []
        },
        {
          "name": "Bounties",
          "storage": {
            "prefix": "Bounties",
            "items": [
              {
                "name": "BountyCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " Number of bounty proposals that have been made."
                ]
              },
              {
                "name": "Bounties",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1115
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Bounties that have been made."
                ]
              },
              {
                "name": "BountyDescriptions",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 1116
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The description of each bounty."
                ]
              },
              {
                "name": "BountyApprovals",
                "modifier": "Default",
                "type": {
                  "plain": 1094
                },
                "fallback": "0x00",
                "docs": [
                  " Bounty indices that have been approved but not yet funded."
                ]
              }
            ]
          },
          "calls": {
            "type": 566
          },
          "events": {
            "type": 783
          },
          "constants": [
            {
              "name": "BountyDepositBase",
              "type": 6,
              "value": "0x702e7f03000000000000000000000000",
              "docs": [
                " The amount held on deposit for placing a bounty proposal."
              ]
            },
            {
              "name": "BountyDepositPayoutDelay",
              "type": 4,
              "value": "0x00000000",
              "docs": [
                " The delay period for which a bounty beneficiary need to wait before claim the payout."
              ]
            },
            {
              "name": "BountyUpdatePeriod",
              "type": 4,
              "value": "0x00041703",
              "docs": [
                " The time limit for a curator to act before a bounty expires.",
                "",
                " The period that starts when a curator is approved, during which they must execute or",
                " update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the",
                " curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely,",
                " removing the need for `extend_bounty_expiry`."
              ]
            },
            {
              "name": "CuratorDepositMultiplier",
              "type": 71,
              "value": "0x20a10700",
              "docs": [
                " The curator deposit is calculated as a percentage of the curator fee.",
                "",
                " This deposit has optional upper and lower bounds with `CuratorDepositMax` and",
                " `CuratorDepositMin`."
              ]
            },
            {
              "name": "CuratorDepositMax",
              "type": 401,
              "value": "0x0104821bce260000000000000000000000",
              "docs": [
                " Maximum amount of funds that should be placed in a deposit for making a proposal."
              ]
            },
            {
              "name": "CuratorDepositMin",
              "type": 401,
              "value": "0x0152a1aec6000000000000000000000000",
              "docs": [
                " Minimum amount of funds that should be placed in a deposit for making a proposal."
              ]
            },
            {
              "name": "BountyValueMinimum",
              "type": 6,
              "value": "0x689aa4850f0000000000000000000000",
              "docs": [
                " Minimum value for a bounty."
              ]
            },
            {
              "name": "DataDepositPerByte",
              "type": 6,
              "value": "0x15160500000000000000000000000000",
              "docs": [
                " The amount held on deposit per byte within the tip report reason or bounty description."
              ]
            },
            {
              "name": "MaximumReasonLength",
              "type": 4,
              "value": "0x00400000",
              "docs": [
                " Maximum acceptable reason length.",
                "",
                " Benchmarks depend on this value, be sure to update weights file when changing this value"
              ]
            }
          ],
          "errors": {
            "type": 1117
          },
          "index": 95,
          "docs": []
        },
        {
          "name": "ChildBounties",
          "storage": {
            "prefix": "ChildBounties",
            "items": [
              {
                "name": "ChildBountyCount",
                "modifier": "Default",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00000000",
                "docs": [
                  " DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts",
                  " for each parent bounty. Number of total child bounties. Will be removed in May 2025."
                ]
              },
              {
                "name": "ParentChildBounties",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 4
                  }
                },
                "fallback": "0x00000000",
                "docs": [
                  " Number of active child bounties per parent bounty.",
                  " Map of parent bounty index to number of child bounties."
                ]
              },
              {
                "name": "ParentTotalChildBounties",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 4
                  }
                },
                "fallback": "0x00000000",
                "docs": [
                  " Number of total child bounties per parent bounty, including completed bounties."
                ]
              },
              {
                "name": "ChildBounties",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 39,
                    "value": 1118
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Child bounties that have been added."
                ]
              },
              {
                "name": "ChildBountyDescriptionsV1",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 39,
                    "value": 1116
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The description of each child-bounty. Indexed by `(parent_id, child_id)`.",
                  "",
                  " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version."
                ]
              },
              {
                "name": "V0ToV1ChildBountyIds",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 39
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The mapping of the child bounty ids from storage version `V0` to the new `V1` version.",
                  "",
                  " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids",
                  " based on the child bounty count per parent bounty [`ParentTotalChildBounties`].",
                  " The item intended solely for client convenience and not used in the pallet's core logic."
                ]
              },
              {
                "name": "ChildrenCuratorFees",
                "modifier": "Default",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 4,
                    "value": 6
                  }
                },
                "fallback": "0x00000000000000000000000000000000",
                "docs": [
                  " The cumulative child-bounty curator fee for each parent bounty."
                ]
              }
            ]
          },
          "calls": {
            "type": 567
          },
          "events": {
            "type": 784
          },
          "constants": [
            {
              "name": "MaxActiveChildBountyCount",
              "type": 4,
              "value": "0x64000000",
              "docs": [
                " Maximum number of child bounties that can be added to a parent bounty."
              ]
            },
            {
              "name": "ChildBountyValueMinimum",
              "type": 6,
              "value": "0xa4425d8d010000000000000000000000",
              "docs": [
                " Minimum value for a child-bounty."
              ]
            }
          ],
          "errors": {
            "type": 1120
          },
          "index": 96,
          "docs": []
        },
        {
          "name": "AssetRate",
          "storage": {
            "prefix": "AssetRate",
            "items": [
              {
                "name": "ConversionRateToNative",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Blake2_128Concat"
                    ],
                    "key": 261,
                    "value": 184
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Maps an asset to its fixed point representation in the native balance.",
                  "",
                  " E.g. `native_amount = asset_amount * ConversionRateToNative::<T>::get(asset_kind)`"
                ]
              }
            ]
          },
          "calls": {
            "type": 568
          },
          "events": {
            "type": 785
          },
          "constants": [],
          "errors": {
            "type": 1121
          },
          "index": 97,
          "docs": []
        },
        {
          "name": "AhOps",
          "storage": {
            "prefix": "AhOps",
            "items": [
              {
                "name": "RcLeaseReserve",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 1122,
                    "value": 6
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Amount of balance that was reserved for winning a lease auction.",
                  "",
                  " `unreserve_lease_deposit` can be permissionlessly called once the block number passed to",
                  " unreserve the deposit. It is implicitly called by `withdraw_crowdloan_contribution`.",
                  "  ",
                  " The account here can either be a crowdloan account or a solo bidder. If it is a crowdloan",
                  " account, then the summed up contributions for it in the contributions map will equate the",
                  " reserved balance here.",
                  "",
                  " The keys are as follows:",
                  " - Block number after which the deposit can be unreserved.",
                  " - The para_id of the lease slot.",
                  " - The account that will have the balance unreserved.",
                  " - The balance to be unreserved."
                ]
              },
              {
                "name": "RcCrowdloanContribution",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 1122,
                    "value": 459
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " Amount of balance that a contributor made towards a crowdloan.",
                  "",
                  " `withdraw_crowdloan_contribution` can be permissionlessly called once the block number",
                  " passed to unlock the balance for a specific account.",
                  "",
                  " The keys are as follows:",
                  " - Block number after which the balance can be unlocked.",
                  " - The para_id of the crowdloan.",
                  " - The account that made the contribution.",
                  "",
                  " The value is (fund_pot, balance). The contribution pot is the second key in the",
                  " `RcCrowdloanContribution` storage."
                ]
              },
              {
                "name": "RcCrowdloanReserve",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat",
                      "Twox64Concat",
                      "Twox64Concat"
                    ],
                    "key": 1122,
                    "value": 6
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " The reserve that was taken to create a crowdloan.",
                  "",
                  " This is normally 500 DOT and can be refunded as last step after all",
                  " `RcCrowdloanContribution`s of this loan have been withdrawn.",
                  "",
                  " Keys:",
                  " - Block number after which this can be unreserved",
                  " - The para_id of the crowdloan",
                  " - The account that will have the balance unreserved"
                ]
              }
            ]
          },
          "calls": {
            "type": 569
          },
          "events": {
            "type": 786
          },
          "constants": [],
          "errors": {
            "type": 1123
          },
          "index": 254,
          "docs": []
        },
        {
          "name": "AhMigrator",
          "storage": {
            "prefix": "AhMigrator",
            "items": [
              {
                "name": "RcAccounts",
                "modifier": "Optional",
                "type": {
                  "map": {
                    "hashers": [
                      "Twox64Concat"
                    ],
                    "key": 0,
                    "value": 572
                  }
                },
                "fallback": "0x00",
                "docs": [
                  " RC accounts that failed to migrate when were received on the Asset Hub.",
                  "",
                  " This is unlikely to happen, since we dry run the migration, but we keep it for completeness."
                ]
              },
              {
                "name": "AhMigrationStage",
                "modifier": "Default",
                "type": {
                  "plain": 774
                },
                "fallback": "0x00",
                "docs": [
                  " The Asset Hub migration state."
                ]
              },
              {
                "name": "AhBalancesBefore",
                "modifier": "Default",
                "type": {
                  "plain": 1124
                },
                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
                "docs": [
                  " Helper storage item to store the total balance / total issuance of native token at the start",
                  " of the migration. Since teleports are disabled during migration, the total issuance will not",
                  " change for other reason than the migration itself."
                ]
              },
              {
                "name": "DmpQueuePriorityConfig",
                "modifier": "Default",
                "type": {
                  "plain": 775
                },
                "fallback": "0x00",
                "docs": [
                  " The priority of the DMP queue during migration.",
                  "",
                  " Controls how the DMP (Downward Message Passing) queue is processed relative to other queues",
                  " during the migration process. This helps ensure timely processing of migration messages.",
                  " The default priority pattern is defined in the pallet configuration, but can be overridden",
                  " by a storage value of this type."
                ]
              },
              {
                "name": "Manager",
                "modifier": "Optional",
                "type": {
                  "plain": 0
                },
                "fallback": "0x00",
                "docs": [
                  " An optional account id of a manager.",
                  "",
                  " This account id has similar privileges to [`Config::AdminOrigin`] except that it",
                  " can not set the manager account id via `set_manager` call."
                ]
              },
              {
                "name": "MigrationStartBlock",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " The block number at which the migration began and the pallet's extrinsics were locked.",
                  "",
                  " This value is set when entering the `WaitingForAh` stage, i.e., when",
                  " `RcMigrationStage::is_ongoing()` becomes `true`."
                ]
              },
              {
                "name": "MigrationEndBlock",
                "modifier": "Optional",
                "type": {
                  "plain": 4
                },
                "fallback": "0x00",
                "docs": [
                  " Block number when migration finished and extrinsics were unlocked.",
                  "",
                  " This is set when entering the `MigrationDone` stage hence when",
                  " `RcMigrationStage::is_finished()` becomes `true`."
                ]
              }
            ]
          },
          "calls": {
            "type": 570
          },
          "events": {
            "type": 787
          },
          "constants": [],
          "errors": {
            "type": 1125
          },
          "index": 255,
          "docs": []
        }
      ],
      "extrinsic": {
        "version": 4,
        "addressType": 319,
        "callType": 268,
        "signatureType": 419,
        "extraType": 1126,
        "signedExtensions": [
          {
            "identifier": "CheckNonZeroSender",
            "type": 1127,
            "additionalSigned": 41
          },
          {
            "identifier": "CheckSpecVersion",
            "type": 1128,
            "additionalSigned": 4
          },
          {
            "identifier": "CheckTxVersion",
            "type": 1129,
            "additionalSigned": 4
          },
          {
            "identifier": "CheckGenesis",
            "type": 1130,
            "additionalSigned": 13
          },
          {
            "identifier": "CheckMortality",
            "type": 1131,
            "additionalSigned": 13
          },
          {
            "identifier": "CheckNonce",
            "type": 1133,
            "additionalSigned": 41
          },
          {
            "identifier": "CheckWeight",
            "type": 1134,
            "additionalSigned": 41
          },
          {
            "identifier": "ChargeAssetTxPayment",
            "type": 1135,
            "additionalSigned": 41
          },
          {
            "identifier": "CheckMetadataHash",
            "type": 1136,
            "additionalSigned": 34
          }
        ]
      },
      "type": 220,
      "apis": [
        {
          "name": "AuraApi",
          "methods": [
            {
              "name": "slot_duration",
              "inputs": [],
              "output": 1138,
              "docs": [
                " Returns the slot duration for Aura.",
                "",
                " Currently, only the value provided by this type at genesis will be used."
              ]
            },
            {
              "name": "authorities",
              "inputs": [],
              "output": 883,
              "docs": [
                " Return the current set of authorities."
              ]
            }
          ],
          "docs": [
            " API necessary for block authorship with aura."
          ]
        },
        {
          "name": "RelayParentOffsetApi",
          "methods": [
            {
              "name": "relay_parent_offset",
              "inputs": [],
              "output": 4,
              "docs": [
                " Fetch the slot offset that is expected from the relay chain."
              ]
            }
          ],
          "docs": [
            " API to tell the node side how the relay parent should be chosen.",
            "",
            " A larger offset indicates that the relay parent should not be the tip of the relay chain,",
            " but `N` blocks behind the tip. This offset is then enforced by the runtime."
          ]
        },
        {
          "name": "AuraUnincludedSegmentApi",
          "methods": [
            {
              "name": "can_build_upon",
              "inputs": [
                {
                  "name": "included_hash",
                  "type": 13
                },
                {
                  "name": "slot",
                  "type": 884
                }
              ],
              "output": 8,
              "docs": [
                " Whether it is legal to extend the chain, assuming the given block is the most",
                " recently included one as-of the relay parent that will be built against, and",
                " the given relay chain slot.",
                "",
                " This should be consistent with the logic the runtime uses when validating blocks to",
                " avoid issues.",
                "",
                " When the unincluded segment is empty, i.e. `included_hash == at`, where at is the block",
                " whose state we are querying against, this must always return `true` as long as the slot",
                " is more recent than the included block itself."
              ]
            }
          ],
          "docs": [
            " This runtime API is used to inform potential block authors whether they will",
            " have the right to author at a slot, assuming they have claimed the slot.",
            "",
            " In particular, this API allows Aura-based parachains to regulate their \"unincluded segment\",",
            " which is the section of the head of the chain which has not yet been made available in the",
            " relay chain.",
            "",
            " When the unincluded segment is short, Aura chains will allow authors to create multiple",
            " blocks per slot in order to build a backlog. When it is saturated, this API will limit",
            " the amount of blocks that can be created.",
            "",
            " Changes:",
            " - Version 2: Update to `can_build_upon` to take a relay chain `Slot` instead of a parachain `Slot`."
          ]
        },
        {
          "name": "Core",
          "methods": [
            {
              "name": "version",
              "inputs": [],
              "output": 800,
              "docs": [
                " Returns the version of the runtime."
              ]
            },
            {
              "name": "execute_block",
              "inputs": [
                {
                  "name": "block",
                  "type": 1139
                }
              ],
              "output": 41,
              "docs": [
                " Execute the given block."
              ]
            },
            {
              "name": "initialize_block",
              "inputs": [
                {
                  "name": "header",
                  "type": 280
                }
              ],
              "output": 1142,
              "docs": [
                " Initialize a block with the given header and return the runtime executive mode."
              ]
            }
          ],
          "docs": [
            " The `Core` runtime api that every Substrate runtime needs to implement."
          ]
        },
        {
          "name": "Metadata",
          "methods": [
            {
              "name": "metadata",
              "inputs": [],
              "output": 1143,
              "docs": [
                " Returns the metadata of a runtime."
              ]
            },
            {
              "name": "metadata_at_version",
              "inputs": [
                {
                  "name": "version",
                  "type": 4
                }
              ],
              "output": 1144,
              "docs": [
                " Returns the metadata at a given version.",
                "",
                " If the given `version` isn't supported, this will return `None`.",
                " Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime."
              ]
            },
            {
              "name": "metadata_versions",
              "inputs": [],
              "output": 200,
              "docs": [
                " Returns the supported metadata versions.",
                "",
                " This can be used to call `metadata_at_version`."
              ]
            }
          ],
          "docs": [
            " The `Metadata` api trait that returns metadata for the runtime."
          ]
        },
        {
          "name": "BlockBuilder",
          "methods": [
            {
              "name": "apply_extrinsic",
              "inputs": [
                {
                  "name": "extrinsic",
                  "type": 1140
                }
              ],
              "output": 1145,
              "docs": [
                " Apply the given extrinsic.",
                "",
                " Returns an inclusion outcome which specifies if this extrinsic is included in",
                " this block or not."
              ]
            },
            {
              "name": "finalize_block",
              "inputs": [],
              "output": 280,
              "docs": [
                " Finish the current block."
              ]
            },
            {
              "name": "inherent_extrinsics",
              "inputs": [
                {
                  "name": "inherent",
                  "type": 1149
                }
              ],
              "output": 1141,
              "docs": [
                " Generate inherent extrinsics. The inherent data will vary from chain to chain."
              ]
            },
            {
              "name": "check_inherents",
              "inputs": [
                {
                  "name": "block",
                  "type": 1139
                },
                {
                  "name": "data",
                  "type": 1149
                }
              ],
              "output": 1153,
              "docs": [
                " Check that the inherents are valid. The inherent data will vary from chain to chain."
              ]
            }
          ],
          "docs": [
            " The `BlockBuilder` api trait that provides the required functionality for building a block."
          ]
        },
        {
          "name": "TaggedTransactionQueue",
          "methods": [
            {
              "name": "validate_transaction",
              "inputs": [
                {
                  "name": "source",
                  "type": 1154
                },
                {
                  "name": "tx",
                  "type": 1140
                },
                {
                  "name": "block_hash",
                  "type": 13
                }
              ],
              "output": 1155,
              "docs": [
                " Validate the transaction.",
                "",
                " This method is invoked by the transaction pool to learn details about given transaction.",
                " The implementation should make sure to verify the correctness of the transaction",
                " against current state. The given `block_hash` corresponds to the hash of the block",
                " that is used as current state.",
                "",
                " Note that this call may be performed by the pool multiple times and transactions",
                " might be verified in any possible order."
              ]
            }
          ],
          "docs": [
            " The `TaggedTransactionQueue` api trait for interfering with the transaction queue."
          ]
        },
        {
          "name": "OffchainWorkerApi",
          "methods": [
            {
              "name": "offchain_worker",
              "inputs": [
                {
                  "name": "header",
                  "type": 280
                }
              ],
              "output": 41,
              "docs": [
                " Starts the off-chain task for given block header."
              ]
            }
          ],
          "docs": [
            " The offchain worker api."
          ]
        },
        {
          "name": "SessionKeys",
          "methods": [
            {
              "name": "generate_session_keys",
              "inputs": [
                {
                  "name": "seed",
                  "type": 36
                }
              ],
              "output": 14,
              "docs": [
                " Generate a set of session keys with optionally using the given seed.",
                " The keys should be stored within the keystore exposed via runtime",
                " externalities.",
                "",
                " The seed needs to be a valid `utf8` string.",
                "",
                " Returns the concatenated SCALE encoded public keys."
              ]
            },
            {
              "name": "decode_session_keys",
              "inputs": [
                {
                  "name": "encoded",
                  "type": 14
                }
              ],
              "output": 1157,
              "docs": [
                " Decode the given public session keys.",
                "",
                " Returns the list of public raw public keys + key type."
              ]
            }
          ],
          "docs": [
            " Session keys runtime api."
          ]
        },
        {
          "name": "RuntimeViewFunction",
          "methods": [
            {
              "name": "execute_view_function",
              "inputs": [
                {
                  "name": "query_id",
                  "type": 1160
                },
                {
                  "name": "input",
                  "type": 14
                }
              ],
              "output": 1161,
              "docs": [
                " Execute a view function query."
              ]
            }
          ],
          "docs": [
            " Runtime API for executing view functions"
          ]
        },
        {
          "name": "AccountNonceApi",
          "methods": [
            {
              "name": "account_nonce",
              "inputs": [
                {
                  "name": "account",
                  "type": 0
                }
              ],
              "output": 4,
              "docs": [
                " Get current account nonce of given `AccountId`."
              ]
            }
          ],
          "docs": [
            " The API to query account nonce."
          ]
        },
        {
          "name": "AssetConversionApi",
          "methods": [
            {
              "name": "quote_price_tokens_for_exact_tokens",
              "inputs": [
                {
                  "name": "asset1",
                  "type": 83
                },
                {
                  "name": "asset2",
                  "type": 83
                },
                {
                  "name": "amount",
                  "type": 6
                },
                {
                  "name": "include_fee",
                  "type": 8
                }
              ],
              "output": 401,
              "docs": [
                " Provides a quote for [`Pallet::swap_tokens_for_exact_tokens`].",
                "",
                " Note that the price may have changed by the time the transaction is executed.",
                " (Use `amount_in_max` to control slippage.)"
              ]
            },
            {
              "name": "quote_price_exact_tokens_for_tokens",
              "inputs": [
                {
                  "name": "asset1",
                  "type": 83
                },
                {
                  "name": "asset2",
                  "type": 83
                },
                {
                  "name": "amount",
                  "type": 6
                },
                {
                  "name": "include_fee",
                  "type": 8
                }
              ],
              "output": 401,
              "docs": [
                " Provides a quote for [`Pallet::swap_exact_tokens_for_tokens`].",
                "",
                " Note that the price may have changed by the time the transaction is executed.",
                " (Use `amount_out_min` to control slippage.)"
              ]
            },
            {
              "name": "get_reserves",
              "inputs": [
                {
                  "name": "asset1",
                  "type": 83
                },
                {
                  "name": "asset2",
                  "type": 83
                }
              ],
              "output": 1163,
              "docs": [
                " Returns the size of the liquidity pool for the given asset pair."
              ]
            }
          ],
          "docs": [
            " This runtime api allows people to query the size of the liquidity pools",
            " and quote prices for swaps."
          ]
        },
        {
          "name": "TransactionPaymentApi",
          "methods": [
            {
              "name": "query_info",
              "inputs": [
                {
                  "name": "uxt",
                  "type": 1140
                },
                {
                  "name": "len",
                  "type": 4
                }
              ],
              "output": 1165,
              "docs": []
            },
            {
              "name": "query_fee_details",
              "inputs": [
                {
                  "name": "uxt",
                  "type": 1140
                },
                {
                  "name": "len",
                  "type": 4
                }
              ],
              "output": 1166,
              "docs": []
            },
            {
              "name": "query_weight_to_fee",
              "inputs": [
                {
                  "name": "weight",
                  "type": 10
                }
              ],
              "output": 6,
              "docs": []
            },
            {
              "name": "query_length_to_fee",
              "inputs": [
                {
                  "name": "length",
                  "type": 4
                }
              ],
              "output": 6,
              "docs": []
            }
          ],
          "docs": []
        },
        {
          "name": "TransactionPaymentCallApi",
          "methods": [
            {
              "name": "query_call_info",
              "inputs": [
                {
                  "name": "call",
                  "type": 268
                },
                {
                  "name": "len",
                  "type": 4
                }
              ],
              "output": 1165,
              "docs": [
                " Query information of a dispatch class, weight, and fee of a given encoded `Call`."
              ]
            },
            {
              "name": "query_call_fee_details",
              "inputs": [
                {
                  "name": "call",
                  "type": 268
                },
                {
                  "name": "len",
                  "type": 4
                }
              ],
              "output": 1166,
              "docs": [
                " Query fee details of a given encoded `Call`."
              ]
            },
            {
              "name": "query_weight_to_fee",
              "inputs": [
                {
                  "name": "weight",
                  "type": 10
                }
              ],
              "output": 6,
              "docs": [
                " Query the output of the current `WeightToFee` given some input."
              ]
            },
            {
              "name": "query_length_to_fee",
              "inputs": [
                {
                  "name": "length",
                  "type": 4
                }
              ],
              "output": 6,
              "docs": [
                " Query the output of the current `LengthToFee` given some input."
              ]
            }
          ],
          "docs": []
        },
        {
          "name": "XcmPaymentApi",
          "methods": [
            {
              "name": "query_acceptable_payment_assets",
              "inputs": [
                {
                  "name": "xcm_version",
                  "type": 4
                }
              ],
              "output": 1169,
              "docs": [
                " Returns a list of acceptable payment assets.",
                "",
                " # Arguments",
                "",
                " * `xcm_version`: Version."
              ]
            },
            {
              "name": "query_xcm_weight",
              "inputs": [
                {
                  "name": "message",
                  "type": 337
                }
              ],
              "output": 1172,
              "docs": [
                " Returns a weight needed to execute a XCM.",
                "",
                " # Arguments",
                "",
                " * `message`: `VersionedXcm`."
              ]
            },
            {
              "name": "query_weight_to_asset_fee",
              "inputs": [
                {
                  "name": "weight",
                  "type": 10
                },
                {
                  "name": "asset",
                  "type": 379
                }
              ],
              "output": 1173,
              "docs": [
                " Converts a weight into a fee for the specified `AssetId`.",
                "",
                " # Arguments",
                "",
                " * `weight`: convertible `Weight`.",
                " * `asset`: `VersionedAssetId`."
              ]
            },
            {
              "name": "query_delivery_fees",
              "inputs": [
                {
                  "name": "destination",
                  "type": 180
                },
                {
                  "name": "message",
                  "type": 337
                }
              ],
              "output": 1174,
              "docs": [
                " Get delivery fees for sending a specific `message` to a `destination`.",
                " These always come in a specific asset, defined by the chain.",
                "",
                " # Arguments",
                " * `message`: The message that'll be sent, necessary because most delivery fees are based on the",
                "   size of the message.",
                " * `destination`: The destination to send the message to. Different destinations may use",
                "   different senders that charge different fees."
              ]
            }
          ],
          "docs": [
            " A trait of XCM payment API.",
            "",
            " API provides functionality for obtaining:",
            "",
            " * the weight required to execute an XCM message,",
            " * a list of acceptable `AssetId`s for message execution payment,",
            " * the cost of the weight in the specified acceptable `AssetId`.",
            " * the fees for an XCM message delivery.",
            "",
            " To determine the execution weight of the calls required for",
            " [`xcm::latest::Instruction::Transact`] instruction, `TransactionPaymentCallApi` can be used."
          ]
        },
        {
          "name": "DryRunApi",
          "methods": [
            {
              "name": "dry_run_call",
              "inputs": [
                {
                  "name": "origin",
                  "type": 385
                },
                {
                  "name": "call",
                  "type": 268
                },
                {
                  "name": "result_xcms_version",
                  "type": 4
                }
              ],
              "output": 1175,
              "docs": [
                " Dry run call V2."
              ]
            },
            {
              "name": "dry_run_xcm",
              "inputs": [
                {
                  "name": "origin_location",
                  "type": 180
                },
                {
                  "name": "xcm",
                  "type": 367
                }
              ],
              "output": 1183,
              "docs": [
                " Dry run XCM program"
              ]
            }
          ],
          "docs": [
            " API for dry-running extrinsics and XCM programs to get the programs that need to be passed to the fees API.",
            "",
            " All calls return a vector of tuples (location, xcm) where each \"xcm\" is executed in \"location\".",
            " If there's local execution, the location will be \"Here\".",
            " This vector can be used to calculate both execution and delivery fees.",
            "",
            " Calls or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`.",
            " In those cases, there might still be a valid result, with the execution error inside it.",
            " The only reasons why these calls might return an error are listed in the [`Error`] enum."
          ]
        },
        {
          "name": "LocationToAccountApi",
          "methods": [
            {
              "name": "convert_location",
              "inputs": [
                {
                  "name": "location",
                  "type": 180
                }
              ],
              "output": 1185,
              "docs": [
                " Converts `Location` to `AccountId`."
              ]
            }
          ],
          "docs": [
            " API for useful conversions between XCM `Location` and `AccountId`."
          ]
        },
        {
          "name": "TrustedQueryApi",
          "methods": [
            {
              "name": "is_trusted_reserve",
              "inputs": [
                {
                  "name": "asset",
                  "type": 1187
                },
                {
                  "name": "location",
                  "type": 180
                }
              ],
              "output": 1188,
              "docs": [
                " Returns if the location is a trusted reserve for the asset.",
                "",
                " # Arguments",
                " * `asset`: `VersionedAsset`.",
                " * `location`: `VersionedLocation`."
              ]
            },
            {
              "name": "is_trusted_teleporter",
              "inputs": [
                {
                  "name": "asset",
                  "type": 1187
                },
                {
                  "name": "location",
                  "type": 180
                }
              ],
              "output": 1188,
              "docs": [
                " Returns if the asset can be teleported to the location.",
                "",
                " # Arguments",
                " * `asset`: `VersionedAsset`.",
                " * `location`: `VersionedLocation`."
              ]
            }
          ],
          "docs": [
            " API for querying trusted reserves and trusted teleporters."
          ]
        },
        {
          "name": "AuthorizedAliasersApi",
          "methods": [
            {
              "name": "authorized_aliasers",
              "inputs": [
                {
                  "name": "target",
                  "type": 180
                }
              ],
              "output": 1190,
              "docs": [
                " Returns locations allowed to alias into and act as `target`."
              ]
            },
            {
              "name": "is_authorized_alias",
              "inputs": [
                {
                  "name": "origin",
                  "type": 180
                },
                {
                  "name": "target",
                  "type": 180
                }
              ],
              "output": 1192,
              "docs": [
                " Returns whether `origin` is allowed to alias into and act as `target`."
              ]
            }
          ],
          "docs": [
            " API for querying XCM authorized aliases"
          ]
        },
        {
          "name": "FungiblesApi",
          "methods": [
            {
              "name": "query_account_balances",
              "inputs": [
                {
                  "name": "account",
                  "type": 0
                }
              ],
              "output": 1193,
              "docs": [
                " Returns the list of all [`Asset`] that an `AccountId` has."
              ]
            }
          ],
          "docs": [
            " The API for querying account's balances from runtime."
          ]
        },
        {
          "name": "CollectCollationInfo",
          "methods": [
            {
              "name": "collect_collation_info",
              "inputs": [
                {
                  "name": "header",
                  "type": 280
                }
              ],
              "output": 1195,
              "docs": [
                " Collect information about a collation.",
                "",
                " The given `header` is the header of the built block for that",
                " we are collecting the collation info for."
              ]
            }
          ],
          "docs": [
            " Runtime api to collect information about a collation.",
            "",
            " Version history:",
            " - Version 2: Changed [`Self::collect_collation_info`] signature",
            " - Version 3: Signals to the node to use version 1 of [`ParachainBlockData`]."
          ]
        },
        {
          "name": "GenesisBuilder",
          "methods": [
            {
              "name": "build_state",
              "inputs": [
                {
                  "name": "json",
                  "type": 14
                }
              ],
              "output": 1198,
              "docs": [
                " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the",
                " storage.",
                "",
                " In the case of a FRAME-based runtime, this function deserializes the full",
                " `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the",
                " provided JSON blob is incorrect or incomplete or the deserialization fails, an error",
                " is returned.",
                "",
                " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no",
                " defaults will be used."
              ]
            },
            {
              "name": "get_preset",
              "inputs": [
                {
                  "name": "id",
                  "type": 1199
                }
              ],
              "output": 36,
              "docs": [
                " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by",
                " `id`.",
                "",
                " If `id` is `None` the function should return JSON blob representation of the default",
                " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default",
                " `RuntimeGenesisConfig`.",
                "",
                " Otherwise function returns a JSON representation of the built-in, named",
                " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not",
                " exist. Returned `Vec<u8>` contains bytes of JSON blob (patch) which comprises a list of",
                " (potentially nested) key-value pairs that are intended for customizing the default",
                " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation",
                " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can",
                " be used in `build_state` method."
              ]
            },
            {
              "name": "preset_names",
              "inputs": [],
              "output": 1200,
              "docs": [
                " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.",
                "",
                " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If",
                " no named presets are provided by the runtime the list is empty."
              ]
            }
          ],
          "docs": [
            " API to interact with `RuntimeGenesisConfig` for the runtime"
          ]
        },
        {
          "name": "GetParachainInfo",
          "methods": [
            {
              "name": "parachain_id",
              "inputs": [],
              "output": 187,
              "docs": [
                " Retrieve the parachain id used for runtime."
              ]
            }
          ],
          "docs": [
            " Runtime api used to access general info about a parachain runtime."
          ]
        },
        {
          "name": "NominationPoolsApi",
          "methods": [
            {
              "name": "pending_rewards",
              "inputs": [
                {
                  "name": "who",
                  "type": 0
                }
              ],
              "output": 6,
              "docs": [
                " Returns the pending rewards for the member that the AccountId was given for."
              ]
            },
            {
              "name": "points_to_balance",
              "inputs": [
                {
                  "name": "pool_id",
                  "type": 4
                },
                {
                  "name": "points",
                  "type": 6
                }
              ],
              "output": 6,
              "docs": [
                " Returns the equivalent balance of `points` for a given pool."
              ]
            },
            {
              "name": "balance_to_points",
              "inputs": [
                {
                  "name": "pool_id",
                  "type": 4
                },
                {
                  "name": "new_funds",
                  "type": 6
                }
              ],
              "output": 6,
              "docs": [
                " Returns the equivalent points of `new_funds` for a given pool."
              ]
            },
            {
              "name": "pool_pending_slash",
              "inputs": [
                {
                  "name": "pool_id",
                  "type": 4
                }
              ],
              "output": 6,
              "docs": [
                " Returns the pending slash for a given pool."
              ]
            },
            {
              "name": "member_pending_slash",
              "inputs": [
                {
                  "name": "member",
                  "type": 0
                }
              ],
              "output": 6,
              "docs": [
                " Returns the pending slash for a given pool member.",
                "",
                " If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on",
                " chain."
              ]
            },
            {
              "name": "pool_needs_delegate_migration",
              "inputs": [
                {
                  "name": "pool_id",
                  "type": 4
                }
              ],
              "output": 8,
              "docs": [
                " Returns true if the pool with `pool_id` needs migration.",
                "",
                " This can happen when the `pallet-nomination-pools` has switched to using strategy",
                " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool",
                " still has funds that were staked using the older strategy",
                " [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use",
                " [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake)",
                " to migrate the pool."
              ]
            },
            {
              "name": "member_needs_delegate_migration",
              "inputs": [
                {
                  "name": "member",
                  "type": 0
                }
              ],
              "output": 8,
              "docs": [
                " Returns true if the delegated funds of the pool `member` needs migration.",
                "",
                " Once a pool has successfully migrated to the strategy",
                " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the",
                " member can be migrated from pool account to the member's account. Use",
                " [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation)",
                " to migrate the funds of the pool member."
              ]
            },
            {
              "name": "member_total_balance",
              "inputs": [
                {
                  "name": "who",
                  "type": 0
                }
              ],
              "output": 6,
              "docs": [
                " Returns the total contribution of a pool member including any balance that is unbonding."
              ]
            },
            {
              "name": "pool_balance",
              "inputs": [
                {
                  "name": "pool_id",
                  "type": 4
                }
              ],
              "output": 6,
              "docs": [
                " Total balance contributed to the pool."
              ]
            },
            {
              "name": "pool_accounts",
              "inputs": [
                {
                  "name": "pool_id",
                  "type": 4
                }
              ],
              "output": 753,
              "docs": [
                " Returns the bonded account and reward account associated with the pool_id."
              ]
            }
          ],
          "docs": [
            " Runtime api for accessing information about nomination pools."
          ]
        },
        {
          "name": "StakingApi",
          "methods": [
            {
              "name": "nominations_quota",
              "inputs": [
                {
                  "name": "balance",
                  "type": 6
                }
              ],
              "output": 4,
              "docs": [
                " Returns the nominations quota for a nominator with a given balance."
              ]
            },
            {
              "name": "eras_stakers_page_count",
              "inputs": [
                {
                  "name": "era",
                  "type": 4
                },
                {
                  "name": "account",
                  "type": 0
                }
              ],
              "output": 4,
              "docs": [
                " Returns the page count of exposures for a validator `account` in a given era."
              ]
            },
            {
              "name": "pending_rewards",
              "inputs": [
                {
                  "name": "era",
                  "type": 4
                },
                {
                  "name": "account",
                  "type": 0
                }
              ],
              "output": 8,
              "docs": [
                " Returns true if validator `account` has pages to be claimed for the given era."
              ]
            }
          ],
          "docs": []
        },
        {
          "name": "ReviveApi",
          "methods": [
            {
              "name": "block_gas_limit",
              "inputs": [],
              "output": 430,
              "docs": [
                " Returns the block gas limit."
              ]
            },
            {
              "name": "balance",
              "inputs": [
                {
                  "name": "address",
                  "type": 224
                }
              ],
              "output": 430,
              "docs": [
                " Returns the free balance of the given `[H160]` address, using EVM decimals."
              ]
            },
            {
              "name": "gas_price",
              "inputs": [],
              "output": 430,
              "docs": [
                " Returns the gas price."
              ]
            },
            {
              "name": "nonce",
              "inputs": [
                {
                  "name": "address",
                  "type": 224
                }
              ],
              "output": 4,
              "docs": [
                " Returns the nonce of the given `[H160]` address."
              ]
            },
            {
              "name": "call",
              "inputs": [
                {
                  "name": "origin",
                  "type": 0
                },
                {
                  "name": "dest",
                  "type": 224
                },
                {
                  "name": "value",
                  "type": 6
                },
                {
                  "name": "gas_limit",
                  "type": 77
                },
                {
                  "name": "storage_deposit_limit",
                  "type": 401
                },
                {
                  "name": "input_data",
                  "type": 14
                }
              ],
              "output": 1201,
              "docs": [
                " Perform a call from a specified account to a given contract.",
                "",
                " See [`crate::Pallet::bare_call`]."
              ]
            },
            {
              "name": "instantiate",
              "inputs": [
                {
                  "name": "origin",
                  "type": 0
                },
                {
                  "name": "value",
                  "type": 6
                },
                {
                  "name": "gas_limit",
                  "type": 77
                },
                {
                  "name": "storage_deposit_limit",
                  "type": 401
                },
                {
                  "name": "code",
                  "type": 1206
                },
                {
                  "name": "data",
                  "type": 14
                },
                {
                  "name": "salt",
                  "type": 34
                }
              ],
              "output": 1207,
              "docs": [
                " Instantiate a new contract.",
                "",
                " See `[crate::Pallet::bare_instantiate]`."
              ]
            },
            {
              "name": "eth_transact",
              "inputs": [
                {
                  "name": "tx",
                  "type": 1210
                }
              ],
              "output": 1222,
              "docs": [
                " Perform an Ethereum call.",
                "",
                " See [`crate::Pallet::dry_run_eth_transact`]"
              ]
            },
            {
              "name": "upload_code",
              "inputs": [
                {
                  "name": "origin",
                  "type": 0
                },
                {
                  "name": "code",
                  "type": 14
                },
                {
                  "name": "storage_deposit_limit",
                  "type": 401
                }
              ],
              "output": 1225,
              "docs": [
                " Upload new code without instantiating a contract from it.",
                "",
                " See [`crate::Pallet::bare_upload_code`]."
              ]
            },
            {
              "name": "get_storage",
              "inputs": [
                {
                  "name": "address",
                  "type": 224
                },
                {
                  "name": "key",
                  "type": 1
                }
              ],
              "output": 1227,
              "docs": [
                " Query a given storage key in a given contract.",
                "",
                " Returns `Ok(Some(Vec<u8>))` if the storage value exists under the given key in the",
                " specified account and `Ok(None)` if it doesn't. If the account specified by the address",
                " doesn't exist, or doesn't have a contract then `Err` is returned."
              ]
            },
            {
              "name": "get_storage_var_key",
              "inputs": [
                {
                  "name": "address",
                  "type": 224
                },
                {
                  "name": "key",
                  "type": 14
                }
              ],
              "output": 1227,
              "docs": [
                " Query a given variable-sized storage key in a given contract.",
                "",
                " Returns `Ok(Some(Vec<u8>))` if the storage value exists under the given key in the",
                " specified account and `Ok(None)` if it doesn't. If the account specified by the address",
                " doesn't exist, or doesn't have a contract then `Err` is returned."
              ]
            },
            {
              "name": "trace_block",
              "inputs": [
                {
                  "name": "block",
                  "type": 1139
                },
                {
                  "name": "config",
                  "type": 1229
                }
              ],
              "output": 1234,
              "docs": [
                " Traces the execution of an entire block and returns call traces.",
                "",
                " This is intended to be called through `state_call` to replay the block from the",
                " parent block.",
                "",
                " See eth-rpc `debug_traceBlockByNumber` for usage."
              ]
            },
            {
              "name": "trace_tx",
              "inputs": [
                {
                  "name": "block",
                  "type": 1139
                },
                {
                  "name": "tx_index",
                  "type": 4
                },
                {
                  "name": "config",
                  "type": 1229
                }
              ],
              "output": 1250,
              "docs": [
                " Traces the execution of a specific transaction within a block.",
                "",
                " This is intended to be called through `state_call` to replay the block from the",
                " parent hash up to the transaction.",
                "",
                " See eth-rpc `debug_traceTransaction` for usage."
              ]
            },
            {
              "name": "trace_call",
              "inputs": [
                {
                  "name": "tx",
                  "type": 1210
                },
                {
                  "name": "config",
                  "type": 1229
                }
              ],
              "output": 1251,
              "docs": [
                " Dry run and return the trace of the given call.",
                "",
                " See eth-rpc `debug_traceCall` for usage."
              ]
            },
            {
              "name": "block_author",
              "inputs": [],
              "output": 1217,
              "docs": [
                " The address of the validator that produced the current block."
              ]
            },
            {
              "name": "address",
              "inputs": [
                {
                  "name": "account_id",
                  "type": 0
                }
              ],
              "output": 224,
              "docs": [
                " Get the H160 address associated to this account id"
              ]
            },
            {
              "name": "runtime_pallets_address",
              "inputs": [],
              "output": 224,
              "docs": [
                " The address used to call the runtime's pallets dispatchables"
              ]
            },
            {
              "name": "code",
              "inputs": [
                {
                  "name": "address",
                  "type": 224
                }
              ],
              "output": 14,
              "docs": [
                " The code at the specified address taking pre-compiles into account."
              ]
            }
          ],
          "docs": [
            " The API used to dry-run contract interactions."
          ]
        }
      ],
      "outerEnums": {
        "callType": 268,
        "eventType": 21,
        "errorType": 1252
      },
      "custom": {
        "map": {}
      }
    }
  }
}