From 0583e902b36bf59eaa47bb89eb4daa666ac6c1c6 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Mar 2023 17:30:26 +0200 Subject: [PATCH] xxx: Include DispatchError and use `balanace_transfer_with_params` Signed-off-by: Alexandru Vasile --- all.json | 68187 ++++++++++++++++ artifacts/Alliance.scale | Bin 239781 -> 240377 bytes artifacts/AllianceMotion.scale | Bin 238246 -> 238183 bytes artifacts/AssetTxPayment.scale | Bin 235216 -> 235860 bytes artifacts/Assets.scale | Bin 241353 -> 241978 bytes artifacts/AuthorityDiscovery.scale | Bin 235182 -> 235632 bytes artifacts/Authorship.scale | Bin 235179 -> 235465 bytes artifacts/Babe.scale | Bin 240242 -> 240943 bytes artifacts/Balances.scale | Bin 239134 -> 239769 bytes artifacts/Bounties.scale | Bin 238412 -> 239393 bytes artifacts/ChildBounties.scale | Bin 236992 -> 237643 bytes artifacts/Contracts.scale | Bin 249387 -> 250042 bytes artifacts/ConvictionVoting.scale | Bin 238483 -> 238823 bytes artifacts/Council.scale | Bin 238120 -> 238226 bytes artifacts/Democracy.scale | Bin 243400 -> 244044 bytes artifacts/ElectionProviderMultiPhase.scale | Bin 243047 -> 243581 bytes artifacts/Elections.scale | Bin 240100 -> 240743 bytes artifacts/FastUnstake.scale | Bin 238089 -> 237863 bytes artifacts/Glutton.scale | Bin 236331 -> 237199 bytes artifacts/Grandpa.scale | Bin 237699 -> 238353 bytes artifacts/Historical.scale | Bin 234766 -> 235405 bytes artifacts/Identity.scale | Bin 239790 -> 240136 bytes artifacts/ImOnline.scale | Bin 237492 -> 238379 bytes artifacts/Indices.scale | Bin 235775 -> 236449 bytes artifacts/Lottery.scale | Bin 236936 -> 237803 bytes artifacts/MessageQueue.scale | Bin 238220 -> 238910 bytes artifacts/Mmr.scale | Bin 235392 -> 235797 bytes artifacts/Multisig.scale | Bin 238549 -> 238559 bytes artifacts/Nfts.scale | Bin 247749 -> 248569 bytes artifacts/Nis.scale | Bin 246527 -> 247035 bytes artifacts/NominationPools.scale | Bin 244190 -> 244621 bytes artifacts/Offences.scale | Bin 235992 -> 236900 bytes artifacts/Pov.scale | Bin 235665 -> 236144 bytes artifacts/Preimage.scale | Bin 236092 -> 236873 bytes artifacts/Proxy.scale | Bin 238936 -> 239243 bytes artifacts/RandomnessCollectiveFlip.scale | Bin 235102 -> 235739 bytes artifacts/RankedCollective.scale | Bin 237105 -> 237751 bytes artifacts/RankedPolls.scale | Bin 242795 -> 243426 bytes artifacts/Recovery.scale | Bin 238806 -> 239496 bytes artifacts/Referenda.scale | Bin 242747 -> 243418 bytes artifacts/Remark.scale | Bin 235256 -> 235924 bytes artifacts/RootTesting.scale | Bin 234953 -> 235418 bytes artifacts/Scheduler.scale | Bin 237738 -> 238354 bytes artifacts/Session.scale | Bin 236302 -> 237035 bytes artifacts/Society.scale | Bin 240197 -> 240838 bytes artifacts/Staking.scale | Bin 250256 -> 250901 bytes artifacts/StateTrieMigration.scale | Bin 238113 -> 238312 bytes artifacts/Sudo.scale | Bin 236231 -> 236189 bytes artifacts/System.scale | Bin 305699 -> 305877 bytes artifacts/TechnicalCommittee.scale | Bin 238371 -> 238275 bytes artifacts/TechnicalMembership.scale | Bin 235793 -> 236464 bytes artifacts/Timestamp.scale | Bin 235210 -> 235960 bytes artifacts/Tips.scale | Bin 237150 -> 237829 bytes artifacts/TransactionPayment.scale | Bin 236288 -> 236935 bytes artifacts/TransactionStorage.scale | Bin 236681 -> 237350 bytes artifacts/Treasury.scale | Bin 237717 -> 238377 bytes artifacts/Uniques.scale | Bin 242130 -> 242792 bytes artifacts/Utility.scale | Bin 236456 -> 236546 bytes artifacts/Vesting.scale | Bin 236678 -> 236977 bytes artifacts/VoterList.scale | Bin 239742 -> 240527 bytes artifacts/Whitelist.scale | Bin 236692 -> 236599 bytes artifacts/balances.rs | 9393 +++ balances.json | 23586 ++++++ cli/src/commands/metadata.rs | 10 + .../examples/balance_transfer_with_params.rs | 6 +- metadata/src/stripped.rs | 10 + .../integration-tests/src/codegen/balances.rs | 9393 +++ testing/integration-tests/src/codegen/mod.rs | 4 + 68 files changed, 110587 insertions(+), 2 deletions(-) create mode 100644 all.json create mode 100644 artifacts/balances.rs create mode 100644 balances.json create mode 100644 testing/integration-tests/src/codegen/balances.rs diff --git a/all.json b/all.json new file mode 100644 index 0000000000..03d8558800 --- /dev/null +++ b/all.json @@ -0,0 +1,68187 @@ +[ + 1635018093, + { + "V14": { + "types": { + "types": [ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 1, + "type": { + "def": { + "array": { + "len": 32, + "type": 2 + } + } + } + }, + { + "id": 2, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Index", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Index" + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount" + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount" + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount" + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData" + } + ] + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance" + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance" + }, + { + "name": "misc_frozen", + "type": 6, + "typeName": "Balance" + }, + { + "name": "fee_frozen", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 6, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 7, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 8 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 8, + "typeName": "T" + }, + { + "name": "operational", + "type": 8, + "typeName": "T" + }, + { + "name": "mandatory", + "type": 8, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 8, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 9, + "typeName": "u64" + }, + { + "name": "proof_size", + "type": 9, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 9, + "type": { + "def": { + "compact": { + "type": 10 + } + } + } + }, + { + "id": 10, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 11, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 12, + "type": { + "def": { + "sequence": { + "type": 2 + } + } + } + }, + { + "id": 13, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 14, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 14, + "type": { + "def": { + "sequence": { + "type": 15 + } + } + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "type": 16, + "typeName": "ConsensusEngineId" + }, + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 6 + }, + { + "name": "Consensus", + "fields": [ + { + "type": 16, + "typeName": "ConsensusEngineId" + }, + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 4 + }, + { + "name": "Seal", + "fields": [ + { + "type": 16, + "typeName": "ConsensusEngineId" + }, + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 5 + }, + { + "name": "Other", + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 0 + }, + { + "name": "RuntimeEnvironmentUpdated", + "index": 8 + } + ] + } + } + } + }, + { + "id": 16, + "type": { + "def": { + "array": { + "len": 4, + "type": 2 + } + } + } + }, + { + "id": 17, + "type": { + "def": { + "sequence": { + "type": 18 + } + } + } + }, + { + "id": 18, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 19 + }, + { + "name": "T", + "type": 11 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 401, + "typeName": "Phase" + }, + { + "name": "event", + "type": 19, + "typeName": "E" + }, + { + "name": "topics", + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 19, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeEvent" + ], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "type": 20, + "typeName": "frame_system::Event" + } + ], + "index": 0 + }, + { + "name": "Utility", + "fields": [ + { + "type": 29, + "typeName": "pallet_utility::Event" + } + ], + "index": 1 + }, + { + "name": "Indices", + "fields": [ + { + "type": 32, + "typeName": "pallet_indices::Event" + } + ], + "index": 5 + }, + { + "name": "Balances", + "fields": [ + { + "type": 33, + "typeName": "pallet_balances::Event" + } + ], + "index": 6 + }, + { + "name": "TransactionPayment", + "fields": [ + { + "type": 35, + "typeName": "pallet_transaction_payment::Event" + } + ], + "index": 7 + }, + { + "name": "AssetTxPayment", + "fields": [ + { + "type": 36, + "typeName": "pallet_asset_tx_payment::Event" + } + ], + "index": 8 + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "type": 38, + "typeName": "pallet_election_provider_multi_phase::Event" + } + ], + "index": 9 + }, + { + "name": "Staking", + "fields": [ + { + "type": 45, + "typeName": "pallet_staking::Event" + } + ], + "index": 10 + }, + { + "name": "Session", + "fields": [ + { + "type": 50, + "typeName": "pallet_session::Event" + } + ], + "index": 11 + }, + { + "name": "Democracy", + "fields": [ + { + "type": 51, + "typeName": "pallet_democracy::Event" + } + ], + "index": 12 + }, + { + "name": "Council", + "fields": [ + { + "type": 56, + "typeName": "pallet_collective::Event" + } + ], + "index": 13 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 57, + "typeName": "pallet_collective::Event" + } + ], + "index": 14 + }, + { + "name": "Elections", + "fields": [ + { + "type": 58, + "typeName": "pallet_elections_phragmen::Event" + } + ], + "index": 15 + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "type": 61, + "typeName": "pallet_membership::Event" + } + ], + "index": 16 + }, + { + "name": "Grandpa", + "fields": [ + { + "type": 62, + "typeName": "pallet_grandpa::Event" + } + ], + "index": 17 + }, + { + "name": "Treasury", + "fields": [ + { + "type": 67, + "typeName": "pallet_treasury::Event" + } + ], + "index": 18 + }, + { + "name": "Contracts", + "fields": [ + { + "type": 68, + "typeName": "pallet_contracts::Event" + } + ], + "index": 19 + }, + { + "name": "Sudo", + "fields": [ + { + "type": 69, + "typeName": "pallet_sudo::Event" + } + ], + "index": 20 + }, + { + "name": "ImOnline", + "fields": [ + { + "type": 70, + "typeName": "pallet_im_online::Event" + } + ], + "index": 21 + }, + { + "name": "Offences", + "fields": [ + { + "type": 79, + "typeName": "pallet_offences::Event" + } + ], + "index": 23 + }, + { + "name": "Identity", + "fields": [ + { + "type": 81, + "typeName": "pallet_identity::Event" + } + ], + "index": 26 + }, + { + "name": "Society", + "fields": [ + { + "type": 82, + "typeName": "pallet_society::Event" + } + ], + "index": 27 + }, + { + "name": "Recovery", + "fields": [ + { + "type": 84, + "typeName": "pallet_recovery::Event" + } + ], + "index": 28 + }, + { + "name": "Vesting", + "fields": [ + { + "type": 85, + "typeName": "pallet_vesting::Event" + } + ], + "index": 29 + }, + { + "name": "Scheduler", + "fields": [ + { + "type": 86, + "typeName": "pallet_scheduler::Event" + } + ], + "index": 30 + }, + { + "name": "Glutton", + "fields": [ + { + "type": 89, + "typeName": "pallet_glutton::Event" + } + ], + "index": 31 + }, + { + "name": "Preimage", + "fields": [ + { + "type": 90, + "typeName": "pallet_preimage::Event" + } + ], + "index": 32 + }, + { + "name": "Proxy", + "fields": [ + { + "type": 91, + "typeName": "pallet_proxy::Event" + } + ], + "index": 33 + }, + { + "name": "Multisig", + "fields": [ + { + "type": 94, + "typeName": "pallet_multisig::Event" + } + ], + "index": 34 + }, + { + "name": "Bounties", + "fields": [ + { + "type": 96, + "typeName": "pallet_bounties::Event" + } + ], + "index": 35 + }, + { + "name": "Tips", + "fields": [ + { + "type": 97, + "typeName": "pallet_tips::Event" + } + ], + "index": 36 + }, + { + "name": "Assets", + "fields": [ + { + "type": 98, + "typeName": "pallet_assets::Event" + } + ], + "index": 37 + }, + { + "name": "Lottery", + "fields": [ + { + "type": 99, + "typeName": "pallet_lottery::Event" + } + ], + "index": 39 + }, + { + "name": "Nis", + "fields": [ + { + "type": 101, + "typeName": "pallet_nis::Event" + } + ], + "index": 40 + }, + { + "name": "Uniques", + "fields": [ + { + "type": 103, + "typeName": "pallet_uniques::Event" + } + ], + "index": 41 + }, + { + "name": "Nfts", + "fields": [ + { + "type": 108, + "typeName": "pallet_nfts::Event" + } + ], + "index": 42 + }, + { + "name": "TransactionStorage", + "fields": [ + { + "type": 113, + "typeName": "pallet_transaction_storage::Event" + } + ], + "index": 43 + }, + { + "name": "VoterList", + "fields": [ + { + "type": 114, + "typeName": "pallet_bags_list::Event" + } + ], + "index": 44 + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "type": 115, + "typeName": "pallet_state_trie_migration::Event" + } + ], + "index": 45 + }, + { + "name": "ChildBounties", + "fields": [ + { + "type": 118, + "typeName": "pallet_child_bounties::Event" + } + ], + "index": 46 + }, + { + "name": "Referenda", + "fields": [ + { + "type": 119, + "typeName": "pallet_referenda::Event" + } + ], + "index": 47 + }, + { + "name": "Remark", + "fields": [ + { + "type": 383, + "typeName": "pallet_remark::Event" + } + ], + "index": 48 + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "type": 384, + "typeName": "pallet_conviction_voting::Event" + } + ], + "index": 50 + }, + { + "name": "Whitelist", + "fields": [ + { + "type": 385, + "typeName": "pallet_whitelist::Event" + } + ], + "index": 51 + }, + { + "name": "AllianceMotion", + "fields": [ + { + "type": 390, + "typeName": "pallet_collective::Event" + } + ], + "index": 52 + }, + { + "name": "Alliance", + "fields": [ + { + "type": 391, + "typeName": "pallet_alliance::Event" + } + ], + "index": 53 + }, + { + "name": "NominationPools", + "fields": [ + { + "type": 392, + "typeName": "pallet_nomination_pools::Event" + } + ], + "index": 54 + }, + { + "name": "RankedPolls", + "fields": [ + { + "type": 393, + "typeName": "pallet_referenda::Event" + } + ], + "index": 55 + }, + { + "name": "RankedCollective", + "fields": [ + { + "type": 395, + "typeName": "pallet_ranked_collective::Event" + } + ], + "index": 56 + }, + { + "name": "FastUnstake", + "fields": [ + { + "type": 397, + "typeName": "pallet_fast_unstake::Event" + } + ], + "index": 57 + }, + { + "name": "MessageQueue", + "fields": [ + { + "type": 398, + "typeName": "pallet_message_queue::Event" + } + ], + "index": 58 + }, + { + "name": "Pov", + "fields": [ + { + "type": 400, + "typeName": "frame_benchmarking_pallet_pov::Event" + } + ], + "index": 59 + } + ] + } + } + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 21, + "typeName": "DispatchInfo" + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 24, + "typeName": "DispatchError" + }, + { + "name": "dispatch_info", + "type": 21, + "typeName": "DispatchInfo" + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 21, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 8, + "typeName": "Weight" + }, + { + "name": "class", + "type": 22, + "typeName": "DispatchClass" + }, + { + "name": "pays_fee", + "type": 23, + "typeName": "Pays" + } + ] + } + } + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "index": 0 + }, + { + "name": "Operational", + "index": 1 + }, + { + "name": "Mandatory", + "index": 2 + } + ] + } + } + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "index": 0 + }, + { + "name": "No", + "index": 1 + } + ] + } + } + } + }, + { + "id": 24, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "index": 0 + }, + { + "name": "CannotLookup", + "index": 1 + }, + { + "name": "BadOrigin", + "index": 2 + }, + { + "name": "Module", + "fields": [ + { + "type": 25, + "typeName": "ModuleError" + } + ], + "index": 3 + }, + { + "name": "ConsumerRemaining", + "index": 4 + }, + { + "name": "NoProviders", + "index": 5 + }, + { + "name": "TooManyConsumers", + "index": 6 + }, + { + "name": "Token", + "fields": [ + { + "type": 26, + "typeName": "TokenError" + } + ], + "index": 7 + }, + { + "name": "Arithmetic", + "fields": [ + { + "type": 27, + "typeName": "ArithmeticError" + } + ], + "index": 8 + }, + { + "name": "Transactional", + "fields": [ + { + "type": 28, + "typeName": "TransactionalError" + } + ], + "index": 9 + }, + { + "name": "Exhausted", + "index": 10 + }, + { + "name": "Corruption", + "index": 11 + }, + { + "name": "Unavailable", + "index": 12 + } + ] + } + } + } + }, + { + "id": 25, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8" + }, + { + "name": "error", + "type": 16, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]" + } + ] + } + } + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoFunds", + "index": 0 + }, + { + "name": "WouldDie", + "index": 1 + }, + { + "name": "BelowMinimum", + "index": 2 + }, + { + "name": "CannotCreate", + "index": 3 + }, + { + "name": "UnknownAsset", + "index": 4 + }, + { + "name": "Frozen", + "index": 5 + }, + { + "name": "Unsupported", + "index": 6 + } + ] + } + } + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "index": 0 + }, + { + "name": "Overflow", + "index": 1 + }, + { + "name": "DivisionByZero", + "index": 2 + } + ] + } + } + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "index": 0 + }, + { + "name": "NoLayer", + "index": 1 + } + ] + } + } + } + }, + { + "id": 29, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32" + }, + { + "name": "error", + "type": 24, + "typeName": "DispatchError" + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 24, + "typeName": "DispatchError" + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 30, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 31 + }, + { + "name": "E", + "type": 24 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 31 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 24 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 31, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 32, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 33, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance" + }, + { + "name": "reserved", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + }, + { + "name": "destination_status", + "type": 34, + "typeName": "Status" + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 34, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "index": 0 + }, + { + "name": "Reserved", + "index": 1 + } + ] + } + } + } + }, + { + "id": 35, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 36, + "type": { + "path": [ + "pallet_asset_tx_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetTxFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "AssetBalanceOf" + }, + { + "name": "tip", + "type": 6, + "typeName": "AssetBalanceOf" + }, + { + "name": "asset_id", + "type": 37, + "typeName": "Option>" + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who` in an asset `asset_id`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 37, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 4 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionStored", + "fields": [ + { + "name": "compute", + "type": 39, + "typeName": "ElectionCompute" + }, + { + "name": "origin", + "type": 40, + "typeName": "Option" + }, + { + "name": "prev_ejected", + "type": 41, + "typeName": "bool" + } + ], + "index": 0, + "docs": [ + "A solution was stored with the given compute.", + "", + "The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`,", + "the stored solution was submited in the signed phase by a miner with the `AccountId`.", + "Otherwise, the solution was stored either during the unsigned phase or by", + "`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make", + "room for this one." + ] + }, + { + "name": "ElectionFinalized", + "fields": [ + { + "name": "compute", + "type": 39, + "typeName": "ElectionCompute" + }, + { + "name": "score", + "type": 42, + "typeName": "ElectionScore" + } + ], + "index": 1, + "docs": [ + "The election has been finalized, with the given computation and score." + ] + }, + { + "name": "ElectionFailed", + "index": 2, + "docs": [ + "An election failed.", + "", + "Not much can be said about which computes failed in the process." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 43, + "typeName": "Phase" + }, + { + "name": "to", + "type": 43, + "typeName": "Phase" + }, + { + "name": "round", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "There was a phase transition in a given round." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 39, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ElectionCompute" + ], + "def": { + "variant": { + "variants": [ + { + "name": "OnChain", + "index": 0 + }, + { + "name": "Signed", + "index": 1 + }, + { + "name": "Unsigned", + "index": 2 + }, + { + "name": "Fallback", + "index": 3 + }, + { + "name": "Emergency", + "index": 4 + } + ] + } + } + } + }, + { + "id": 40, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 0 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 41, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 42, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance" + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance" + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance" + } + ] + } + } + } + }, + { + "id": 43, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "Phase" + ], + "params": [ + { + "name": "Bn", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "index": 0 + }, + { + "name": "Signed", + "index": 1 + }, + { + "name": "Unsigned", + "fields": [ + { + "type": 44, + "typeName": "(bool, Bn)" + } + ], + "index": 2 + }, + { + "name": "Emergency", + "index": 3 + } + ] + } + } + } + }, + { + "id": 44, + "type": { + "def": { + "tuple": [ + 41, + 4 + ] + } + } + }, + { + "id": 45, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "SlashReported", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "fraction", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 3, + "docs": [ + "A slash for the given validator, for the given percentage of their stake, at the given", + "era as been reported." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex" + } + ], + "index": 4, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "StakersElected", + "index": 5, + "docs": [ + "A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 7, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 8, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 9, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "StakingElectionFailed", + "index": 10, + "docs": [ + "The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 11, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 12, + "docs": [ + "The stakers' rewards are getting paid." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "prefs", + "type": 47, + "typeName": "ValidatorPrefs" + } + ], + "index": 13, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 49, + "typeName": "Forcing" + } + ], + "index": 14, + "docs": [ + "A new force era mode was set." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 46, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 47, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 48, + "typeName": "Perbill" + }, + { + "name": "blocked", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 48, + "type": { + "def": { + "compact": { + "type": 46 + } + } + } + }, + { + "id": 49, + "type": { + "path": [ + "pallet_staking", + "Forcing" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "index": 0 + }, + { + "name": "ForceNew", + "index": 1 + }, + { + "name": "ForceNone", + "index": 2 + }, + { + "name": "ForceAlways", + "index": 3 + } + ] + } + } + } + }, + { + "id": 50, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex" + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 51, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "A motion has been proposed by a public account." + ] + }, + { + "name": "Tabled", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A public proposal has been tabled for referendum vote." + ] + }, + { + "name": "ExternalTabled", + "index": 2, + "docs": [ + "An external proposal has been tabled." + ] + }, + { + "name": "Started", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "threshold", + "type": 52, + "typeName": "VoteThreshold" + } + ], + "index": 3, + "docs": [ + "A referendum has begun." + ] + }, + { + "name": "Passed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 4, + "docs": [ + "A proposal has been approved by referendum." + ] + }, + { + "name": "NotPassed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 5, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 6, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Delegated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "target", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "An account has delegated their vote to another account." + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 8, + "docs": [ + "An account has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + }, + { + "name": "until", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 9, + "docs": [ + "An external proposal has been vetoed." + ] + }, + { + "name": "Blacklisted", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + } + ], + "index": 10, + "docs": [ + "A proposal_hash has been blacklisted permanently." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "vote", + "type": 53, + "typeName": "AccountVote>" + } + ], + "index": 11, + "docs": [ + "An account has voted in a referendum" + ] + }, + { + "name": "Seconded", + "fields": [ + { + "name": "seconder", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 12, + "docs": [ + "An account has secconded a proposal" + ] + }, + { + "name": "ProposalCanceled", + "fields": [ + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 13, + "docs": [ + "A proposal got canceled." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "owner", + "type": 55, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a proposal or a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "owner", + "type": 55, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a proposal or a referendum has been cleared." + ] + }, + { + "name": "MetadataTransferred", + "fields": [ + { + "name": "prev_owner", + "type": 55, + "typeName": "MetadataOwner", + "docs": [ + "Previous metadata owner." + ] + }, + { + "name": "owner", + "type": 55, + "typeName": "MetadataOwner", + "docs": [ + "New metadata owner." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 16, + "docs": [ + "Metadata has been transferred to new owner." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 52, + "type": { + "path": [ + "pallet_democracy", + "vote_threshold", + "VoteThreshold" + ], + "def": { + "variant": { + "variants": [ + { + "name": "SuperMajorityApprove", + "index": 0 + }, + { + "name": "SuperMajorityAgainst", + "index": 1 + }, + { + "name": "SimpleMajority", + "index": 2 + } + ] + } + } + } + }, + { + "id": 53, + "type": { + "path": [ + "pallet_democracy", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 54, + "typeName": "Vote" + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 54, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Vote" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2 + } + ] + } + } + } + }, + { + "id": 55, + "type": { + "path": [ + "pallet_democracy", + "types", + "MetadataOwner" + ], + "def": { + "variant": { + "variants": [ + { + "name": "External", + "index": 0 + }, + { + "name": "Proposal", + "fields": [ + { + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 1 + }, + { + "name": "Referendum", + "fields": [ + { + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 56, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "voted", + "type": 41, + "typeName": "bool" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 57, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "voted", + "type": 41, + "typeName": "bool" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 58, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTerm", + "fields": [ + { + "name": "new_members", + "type": 59, + "typeName": "Vec<(::AccountId, BalanceOf)>" + } + ], + "index": 0, + "docs": [ + "A new term with new_members. This indicates that enough candidates existed to run", + "the election, not that enough have has been elected. The inner value must be examined", + "for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + "slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + "begin with." + ] + }, + { + "name": "EmptyTerm", + "index": 1, + "docs": [ + "No (or not enough) candidates existed for this round. This is different from", + "`NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "index": 2, + "docs": [ + "Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "::AccountId" + } + ], + "index": 3, + "docs": [ + "A member has been removed. This should always be followed by either `NewTerm` or", + "`EmptyTerm`." + ] + }, + { + "name": "Renounced", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId" + } + ], + "index": 4, + "docs": [ + "Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 5, + "docs": [ + "A candidate was slashed by amount due to failing to obtain a seat as member or", + "runner-up.", + "", + "Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "fields": [ + { + "name": "seat_holder", + "type": 0, + "typeName": "::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "A seat holder was slashed by amount by being forcefully removed from the set." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 59, + "type": { + "def": { + "sequence": { + "type": 60 + } + } + } + }, + { + "id": 60, + "type": { + "def": { + "tuple": [ + 0, + 6 + ] + } + } + }, + { + "id": 61, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "index": 0, + "docs": [ + "The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "index": 1, + "docs": [ + "The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "index": 2, + "docs": [ + "Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "index": 3, + "docs": [ + "The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "index": 4, + "docs": [ + "One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "index": 5, + "docs": [ + "Phantom member, never used." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 62, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewAuthorities", + "fields": [ + { + "name": "authority_set", + "type": 63, + "typeName": "AuthorityList" + } + ], + "index": 0, + "docs": [ + "New authority set has been applied." + ] + }, + { + "name": "Paused", + "index": 1, + "docs": [ + "Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "index": 2, + "docs": [ + "Current authority set has been resumed." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 63, + "type": { + "def": { + "sequence": { + "type": 64 + } + } + } + }, + { + "id": 64, + "type": { + "def": { + "tuple": [ + 65, + 10 + ] + } + } + }, + { + "id": 65, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 66, + "typeName": "ed25519::Public" + } + ] + } + } + } + }, + { + "id": 66, + "type": { + "path": [ + "sp_core", + "ed25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 67, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + } + ], + "index": 0, + "docs": [ + "New proposal." + ] + }, + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "slashed", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "A proposal was rejected; funds were slashed." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 5, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 8, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 68, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Instantiated", + "fields": [ + { + "name": "deployer", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "Contract deployed by address at the specified address." + ] + }, + { + "name": "Terminated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was terminated." + ] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that received the contracts remaining balance" + ] + } + ], + "index": 1, + "docs": [ + "Contract has been removed.", + "", + "# Note", + "", + "The only way for a contract to be removed and emitting this event is by calling", + "`seal_terminate`." + ] + }, + { + "name": "CodeStored", + "fields": [ + { + "name": "code_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "Code with the specified hash has been stored." + ] + }, + { + "name": "ContractEmitted", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that emitted the event." + ] + }, + { + "name": "data", + "type": 12, + "typeName": "Vec", + "docs": [ + "Data supplied by the contract. Metadata generated during contract compilation", + "is needed to decode it." + ] + } + ], + "index": 3, + "docs": [ + "A custom event emitted by the contract." + ] + }, + { + "name": "CodeRemoved", + "fields": [ + { + "name": "code_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 4, + "docs": [ + "A code with the specified hash was removed." + ] + }, + { + "name": "ContractCodeUpdated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that has been updated." + ] + }, + { + "name": "new_code_hash", + "type": 11, + "typeName": "T::Hash", + "docs": [ + "New code hash that was set for the contract." + ] + }, + { + "name": "old_code_hash", + "type": 11, + "typeName": "T::Hash", + "docs": [ + "Previous code hash of the contract." + ] + } + ], + "index": 5, + "docs": [ + "A contract's code was updated." + ] + }, + { + "name": "Called", + "fields": [ + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that called the `contract`." + ] + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was called." + ] + } + ], + "index": 6, + "docs": [ + "A contract was called either by a plain account or another contract.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + }, + { + "name": "DelegateCalled", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that performed the delegate call and hence in whose context", + "the `code_hash` is executed." + ] + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash", + "docs": [ + "The code hash that was delegate called." + ] + } + ], + "index": 7, + "docs": [ + "A contract delegate called a code hash.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 69, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Sudid", + "fields": [ + { + "name": "sudo_result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 0, + "docs": [ + "A sudo just took place. \\[result\\]" + ] + }, + { + "name": "KeyChanged", + "fields": [ + { + "name": "old_sudoer", + "type": 40, + "typeName": "Option" + } + ], + "index": 1, + "docs": [ + "The \\[sudoer\\] just switched identity; the old key is supplied if one existed." + ] + }, + { + "name": "SudoAsDone", + "fields": [ + { + "name": "sudo_result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 2, + "docs": [ + "A sudo just took place. \\[result\\]" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 70, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "HeartbeatReceived", + "fields": [ + { + "name": "authority_id", + "type": 71, + "typeName": "T::AuthorityId" + } + ], + "index": 0, + "docs": [ + "A new heartbeat was received from `AuthorityId`." + ] + }, + { + "name": "AllGood", + "index": 1, + "docs": [ + "At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "fields": [ + { + "name": "offline", + "type": 73, + "typeName": "Vec>" + } + ], + "index": 2, + "docs": [ + "At the end of the session, at least one validator was found to be offline." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 71, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 72, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 72, + "type": { + "path": [ + "sp_core", + "sr25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 73, + "type": { + "def": { + "sequence": { + "type": 74 + } + } + } + }, + { + "id": 74, + "type": { + "def": { + "tuple": [ + 0, + 75 + ] + } + } + }, + { + "id": 75, + "type": { + "path": [ + "pallet_staking", + "Exposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 76, + "typeName": "Balance" + }, + { + "name": "own", + "type": 76, + "typeName": "Balance" + }, + { + "name": "others", + "type": 77, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 76, + "type": { + "def": { + "compact": { + "type": 6 + } + } + } + }, + { + "id": 77, + "type": { + "def": { + "sequence": { + "type": 78 + } + } + } + }, + { + "id": 78, + "type": { + "path": [ + "pallet_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "value", + "type": 76, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 79, + "type": { + "path": [ + "pallet_offences", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Offence", + "fields": [ + { + "name": "kind", + "type": 80, + "typeName": "Kind" + }, + { + "name": "timeslot", + "type": 12, + "typeName": "OpaqueTimeSlot" + } + ], + "index": 0, + "docs": [ + "There is an offence reported of the given `kind` happened at the `session_index` and", + "(kind-specific) time slot. This event is not deposited for duplicate slashes.", + "\\[kind, timeslot\\]." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 80, + "type": { + "def": { + "array": { + "len": 16, + "type": 2 + } + } + } + }, + { + "id": 81, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IdentitySet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A name was set or reset (which will remove all judgements)." + ] + }, + { + "name": "IdentityCleared", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A name was cleared, and the given balance returned." + ] + }, + { + "name": "IdentityKilled", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A name was removed and the given balance slashed." + ] + }, + { + "name": "JudgementRequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 3, + "docs": [ + "A judgement was asked from a registrar." + ] + }, + { + "name": "JudgementUnrequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 4, + "docs": [ + "A judgement request was retracted." + ] + }, + { + "name": "JudgementGiven", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 5, + "docs": [ + "A judgement was given by a registrar." + ] + }, + { + "name": "RegistrarAdded", + "fields": [ + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 6, + "docs": [ + "A registrar was added." + ] + }, + { + "name": "SubIdentityAdded", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 7, + "docs": [ + "A sub-identity was added to an identity and the deposit paid." + ] + }, + { + "name": "SubIdentityRemoved", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 8, + "docs": [ + "A sub-identity was removed from an identity and the deposit freed." + ] + }, + { + "name": "SubIdentityRevoked", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 9, + "docs": [ + "A sub-identity was cleared, and the given deposit repatriated from the", + "main identity account to the sub-identity account." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 82, + "type": { + "path": [ + "pallet_society", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Founded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "The society is founded by the given identity." + ] + }, + { + "name": "Bid", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A membership bid just happened. The given account is the candidate's ID and their offer", + "is the second." + ] + }, + { + "name": "Vouch", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "vouching", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "A membership bid just happened by vouching. The given account is the candidate's ID and", + "their offer is the second. The vouching party is the third." + ] + }, + { + "name": "AutoUnbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "A candidate was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "A candidate was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "A candidate was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "primary", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "candidates", + "type": 83, + "typeName": "Vec" + } + ], + "index": 6, + "docs": [ + "A group of candidates have been inducted. The batch's primary is the first value, the", + "batch in full is the second." + ] + }, + { + "name": "SuspendedMemberJudgement", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "judged", + "type": 41, + "typeName": "bool" + } + ], + "index": 7, + "docs": [ + "A suspended member has been judged." + ] + }, + { + "name": "CandidateSuspended", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 8, + "docs": [ + "A candidate has been suspended" + ] + }, + { + "name": "MemberSuspended", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 9, + "docs": [ + "A member has been suspended" + ] + }, + { + "name": "Challenged", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 10, + "docs": [ + "A member has been challenged" + ] + }, + { + "name": "Vote", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "vote", + "type": 41, + "typeName": "bool" + } + ], + "index": 11, + "docs": [ + "A vote has been placed" + ] + }, + { + "name": "DefenderVote", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "vote", + "type": 41, + "typeName": "bool" + } + ], + "index": 12, + "docs": [ + "A vote has been placed for a defending member" + ] + }, + { + "name": "NewMaxMembers", + "fields": [ + { + "name": "max", + "type": 4, + "typeName": "u32" + } + ], + "index": 13, + "docs": [ + "A new \\[max\\] member count has been set" + ] + }, + { + "name": "Unfounded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 14, + "docs": [ + "Society is unfounded." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 15, + "docs": [ + "Some funds were deposited into the society account." + ] + }, + { + "name": "SkepticsChosen", + "fields": [ + { + "name": "skeptics", + "type": 83, + "typeName": "Vec" + } + ], + "index": 16, + "docs": [ + "A group of members has been choosen as Skeptics" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 83, + "type": { + "def": { + "sequence": { + "type": 0 + } + } + } + }, + { + "id": 84, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A recovery process has been set up for an account." + ] + }, + { + "name": "RecoveryInitiated", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "A recovery process has been initiated for lost account by rescuer account." + ] + }, + { + "name": "RecoveryVouched", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "A recovery process for lost account by rescuer account has been vouched for by sender." + ] + }, + { + "name": "RecoveryClosed", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "A recovery process for lost account by rescuer account has been closed." + ] + }, + { + "name": "AccountRecovered", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "Lost account has been successfully recovered by rescuer account." + ] + }, + { + "name": "RecoveryRemoved", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "A recovery process has been removed for an account." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 85, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 86, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 87, + "typeName": "TaskAddress" + }, + { + "name": "id", + "type": 88, + "typeName": "Option" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 87, + "typeName": "TaskAddress" + }, + { + "name": "id", + "type": 88, + "typeName": "Option" + } + ], + "index": 3, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 87, + "typeName": "TaskAddress" + }, + { + "name": "id", + "type": 88, + "typeName": "Option" + } + ], + "index": 4, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 87, + "typeName": "TaskAddress" + }, + { + "name": "id", + "type": 88, + "typeName": "Option" + } + ], + "index": 5, + "docs": [ + "The given task can never be executed since it is overweight." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 87, + "type": { + "def": { + "tuple": [ + 4, + 4 + ] + } + } + }, + { + "id": 88, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 1 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 89, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Event" + ], + "def": { + "variant": { + "variants": [ + { + "name": "PalletInitialized", + "fields": [ + { + "name": "reinit", + "type": 41, + "typeName": "bool" + } + ], + "index": 0, + "docs": [ + "The pallet has been (re)initialized by root." + ] + }, + { + "name": "ComputationLimitSet", + "fields": [ + { + "name": "compute", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 1, + "docs": [ + "The computation limit has been updated by root." + ] + }, + { + "name": "StorageLimitSet", + "fields": [ + { + "name": "storage", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 2, + "docs": [ + "The storage limit has been updated by root." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 90, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 91, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "disambiguation_index", + "type": 93, + "typeName": "u16" + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "CallHashOf" + } + ], + "index": 2, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 3, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 4, + "docs": [ + "A proxy was removed." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 92, + "type": { + "path": [ + "kitchensink_runtime", + "ProxyType" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "index": 0 + }, + { + "name": "NonTransfer", + "index": 1 + }, + { + "name": "Governance", + "index": 2 + }, + { + "name": "Staking", + "index": 3 + } + ] + } + } + } + }, + { + "id": 93, + "type": { + "def": { + "primitive": "u16" + } + } + }, + { + "id": 94, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash" + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "timepoint", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash" + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "timepoint", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "timepoint", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash" + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 95, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 96, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 97, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTip", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 0, + "docs": [ + "A new tip suggestion has been opened." + ] + }, + { + "name": "TipClosing", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "A tip suggestion has reached threshold and is closing." + ] + }, + { + "name": "TipClosed", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A tip suggestion has been closed." + ] + }, + { + "name": "TipRetracted", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A tip suggestion has been retracted." + ] + }, + { + "name": "TipSlashed", + "fields": [ + { + "name": "tip_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "finder", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "A tip suggestion has been slashed." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 98, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32" + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32" + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32" + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32" + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "name", + "type": 12, + "typeName": "Vec" + }, + { + "name": "symbol", + "type": 12, + "typeName": "Vec" + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId" + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 99, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "LotteryStarted", + "index": 0, + "docs": [ + "A lottery has been started!" + ] + }, + { + "name": "CallsUpdated", + "index": 1, + "docs": [ + "A new set of calls have been set!" + ] + }, + { + "name": "Winner", + "fields": [ + { + "name": "winner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "lottery_balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A winner has been chosen!" + ] + }, + { + "name": "TicketBought", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "call_index", + "type": 100, + "typeName": "CallIndex" + } + ], + "index": 3, + "docs": [ + "A ticket has been bought!" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 100, + "type": { + "def": { + "tuple": [ + 2, + 2 + ] + } + } + }, + { + "id": 101, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BidPlaced", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "A bid was successfully placed." + ] + }, + { + "name": "BidRetracted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "A bid was successfully removed (before being accepted)." + ] + }, + { + "name": "BidDropped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "A bid was dropped from a queue because of another, more substantial, bid was present." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "expiry", + "type": 4, + "typeName": "T::BlockNumber", + "docs": [ + "The block number at which the receipt may be thawed." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner of the receipt." + ] + }, + { + "name": "proportion", + "type": 102, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance which the receipt represents." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of funds which were debited from the owner." + ] + } + ], + "index": 3, + "docs": [ + "A bid was accepted. The balance may not be released until expiry." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner." + ] + }, + { + "name": "proportion", + "type": 102, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance by which the owner was debited." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount by which the owner was credited." + ] + }, + { + "name": "dropped", + "type": 41, + "typeName": "bool", + "docs": [ + "If `true` then the receipt is done." + ] + } + ], + "index": 4, + "docs": [ + "An receipt has been (at least partially) thawed." + ] + }, + { + "name": "Funded", + "fields": [ + { + "name": "deficit", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 5, + "docs": [ + "An automatic funding of the deficit was made." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex" + } + ], + "index": 6, + "docs": [ + "A receipt was transfered." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 102, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 103, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 6, + "docs": [ + "Some `item` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 7, + "docs": [ + "Some `item` was thawed." + ] + }, + { + "name": "CollectionFrozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 8, + "docs": [ + "Some `collection` was frozen." + ] + }, + { + "name": "CollectionThawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 9, + "docs": [ + "Some `collection` was thawed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "ItemStatusChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 14, + "docs": [ + "A `collection` has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 15, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 17, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 18, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "successful_items", + "type": 105, + "typeName": "Vec" + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + } + ], + "index": 20, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + } + ], + "index": 21, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "maybe_collection", + "type": 37, + "typeName": "Option" + } + ], + "index": 22, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 23, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice" + }, + { + "name": "whitelisted_buyer", + "type": 40, + "typeName": "Option" + } + ], + "index": 24, + "docs": [ + "The price was set for the instance." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 25, + "docs": [ + "The price for the instance was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice" + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 26, + "docs": [ + "An item was bought." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 104, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 105, + "type": { + "def": { + "sequence": { + "type": 4 + } + } + } + }, + { + "id": 106, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 107, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 108, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "ItemTransferLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 6, + "docs": [ + "An `item` became non-transferable." + ] + }, + { + "name": "ItemTransferUnlocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 7, + "docs": [ + "An `item` became transferable." + ] + }, + { + "name": "ItemPropertiesLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "lock_metadata", + "type": 41, + "typeName": "bool" + }, + { + "name": "lock_attributes", + "type": 41, + "typeName": "bool" + } + ], + "index": 8, + "docs": [ + "`item` metadata or attributes were locked." + ] + }, + { + "name": "CollectionLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 9, + "docs": [ + "Some `collection` was locked." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "TransferApproved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "deadline", + "type": 37, + "typeName": "Option<::BlockNumber>" + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "AllApprovalsCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 14, + "docs": [ + "All approvals of an item got cancelled." + ] + }, + { + "name": "CollectionConfigChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 15, + "docs": [ + "A `collection` has had its config changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ], + "index": 16, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 17, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "ItemMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ], + "index": 18, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "ItemMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "successful_items", + "type": 105, + "typeName": "Vec" + } + ], + "index": 20, + "docs": [ + "The deposit for a set of `item`s within a `collection` has been updated." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + } + ], + "index": 21, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + } + ], + "index": 22, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "ItemAttributesApprovalAdded", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 23, + "docs": [ + "A new approval to modify item attributes was added." + ] + }, + { + "name": "ItemAttributesApprovalRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 24, + "docs": [ + "A new approval to modify item attributes was removed." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "maybe_collection", + "type": 37, + "typeName": "Option" + } + ], + "index": 25, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 26, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "CollectionMintSettingsUpdated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 27, + "docs": [ + "Mint settings for a collection had changed." + ] + }, + { + "name": "NextCollectionIdIncremented", + "fields": [ + { + "name": "next_id", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 28, + "docs": [ + "Event gets emitted when the `NextCollectionId` gets incremented." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice" + }, + { + "name": "whitelisted_buyer", + "type": 40, + "typeName": "Option" + } + ], + "index": 29, + "docs": [ + "The price was set for the item." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 30, + "docs": [ + "The price for the item was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice" + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 31, + "docs": [ + "An item was bought." + ] + }, + { + "name": "TipSent", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "receiver", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalanceOf" + } + ], + "index": 32, + "docs": [ + "A tip was sent." + ] + }, + { + "name": "SwapCreated", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "desired_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "price", + "type": 110, + "typeName": "Option>>" + }, + { + "name": "deadline", + "type": 4, + "typeName": "::BlockNumber" + } + ], + "index": 33, + "docs": [ + "An `item` swap intent was created." + ] + }, + { + "name": "SwapCancelled", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "desired_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "price", + "type": 110, + "typeName": "Option>>" + }, + { + "name": "deadline", + "type": 4, + "typeName": "::BlockNumber" + } + ], + "index": 34, + "docs": [ + "The swap was cancelled." + ] + }, + { + "name": "SwapClaimed", + "fields": [ + { + "name": "sent_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "sent_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "sent_item_owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "received_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "received_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "received_item_owner", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "price", + "type": 110, + "typeName": "Option>>" + }, + { + "name": "deadline", + "type": 4, + "typeName": "::BlockNumber" + } + ], + "index": 35, + "docs": [ + "The swap has been claimed." + ] + }, + { + "name": "PreSignedAttributesSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + } + ], + "index": 36, + "docs": [ + "New attributes have been set for an `item` of the `collection`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 109, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "AttributeNamespace" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pallet", + "index": 0 + }, + { + "name": "CollectionOwner", + "index": 1 + }, + { + "name": "ItemOwner", + "index": 2 + }, + { + "name": "Account", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 110, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 111 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 111 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 111, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceWithDirection" + ], + "params": [ + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Amount" + }, + { + "name": "direction", + "type": 112, + "typeName": "PriceDirection" + } + ] + } + } + } + }, + { + "id": 112, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceDirection" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Send", + "index": 0 + }, + { + "name": "Receive", + "index": 1 + } + ] + } + } + } + }, + { + "id": 113, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Stored data under specified index." + ] + }, + { + "name": "Renewed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Renewed data under specified index." + ] + }, + { + "name": "ProofChecked", + "index": 2, + "docs": [ + "Storage proof was successfully checked." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 114, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "from", + "type": 10, + "typeName": "T::Score" + }, + { + "name": "to", + "type": 10, + "typeName": "T::Score" + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "new_score", + "type": 10, + "typeName": "T::Score" + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 115, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrated", + "fields": [ + { + "name": "top", + "type": 4, + "typeName": "u32" + }, + { + "name": "child", + "type": 4, + "typeName": "u32" + }, + { + "name": "compute", + "type": 116, + "typeName": "MigrationCompute" + } + ], + "index": 0, + "docs": [ + "Given number of `(top, child)` keys were migrated respectively, with the given", + "`compute`." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Some account got slashed by the given amount." + ] + }, + { + "name": "AutoMigrationFinished", + "index": 2, + "docs": [ + "The auto migration task finished." + ] + }, + { + "name": "Halted", + "fields": [ + { + "name": "error", + "type": 117, + "typeName": "Error" + } + ], + "index": 3, + "docs": [ + "Migration got halted due to an error or miss-configuration." + ] + } + ] + } + }, + "docs": [ + "Inner events of this pallet." + ] + } + }, + { + "id": 116, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationCompute" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "index": 0 + }, + { + "name": "Auto", + "index": 1 + } + ] + } + } + } + }, + { + "id": 117, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MaxSignedLimits", + "index": 0, + "docs": [ + "Max signed limits not respected." + ] + }, + { + "name": "KeyTooLong", + "index": 1, + "docs": [ + "A key was longer than the configured maximum.", + "", + "This means that the migration halted at the current [`Progress`] and", + "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", + "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", + "The value should only be increased to avoid a storage migration for the currently", + "stored [`crate::Progress::LastKey`]." + ] + }, + { + "name": "NotEnoughFunds", + "index": 2, + "docs": [ + "submitter does not have enough funds." + ] + }, + { + "name": "BadWitness", + "index": 3, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "SignedMigrationNotAllowed", + "index": 4, + "docs": [ + "Signed migration is not allowed because the maximum limit is not set yet." + ] + }, + { + "name": "BadChildRoot", + "index": 5, + "docs": [ + "Bad child root provided." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 118, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex" + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 119, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashaed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5 + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6 + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 382, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 120, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 121 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "Hash" + } + ], + "index": 0 + }, + { + "name": "Inline", + "fields": [ + { + "type": 381, + "typeName": "BoundedInline" + } + ], + "index": 1 + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "Hash" + }, + { + "name": "len", + "type": 4, + "typeName": "u32" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 121, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeCall" + ], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "type": 122, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 0 + }, + { + "name": "Utility", + "fields": [ + { + "type": 126, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 1 + }, + { + "name": "Babe", + "fields": [ + { + "type": 134, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 2 + }, + { + "name": "Timestamp", + "fields": [ + { + "type": 145, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 3 + }, + { + "name": "Indices", + "fields": [ + { + "type": 146, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 5 + }, + { + "name": "Balances", + "fields": [ + { + "type": 149, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 6 + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "type": 150, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 9 + }, + { + "name": "Staking", + "fields": [ + { + "type": 208, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 10 + }, + { + "name": "Session", + "fields": [ + { + "type": 216, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 11 + }, + { + "name": "Democracy", + "fields": [ + { + "type": 219, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 12 + }, + { + "name": "Council", + "fields": [ + { + "type": 222, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 13 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 225, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 14 + }, + { + "name": "Elections", + "fields": [ + { + "type": 226, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 15 + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "type": 228, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 16 + }, + { + "name": "Grandpa", + "fields": [ + { + "type": 229, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 17 + }, + { + "name": "Treasury", + "fields": [ + { + "type": 241, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 18 + }, + { + "name": "Contracts", + "fields": [ + { + "type": 242, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 19 + }, + { + "name": "Sudo", + "fields": [ + { + "type": 245, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 20 + }, + { + "name": "ImOnline", + "fields": [ + { + "type": 246, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 21 + }, + { + "name": "Identity", + "fields": [ + { + "type": 254, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 26 + }, + { + "name": "Society", + "fields": [ + { + "type": 295, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 27 + }, + { + "name": "Recovery", + "fields": [ + { + "type": 297, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 28 + }, + { + "name": "Vesting", + "fields": [ + { + "type": 298, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 29 + }, + { + "name": "Scheduler", + "fields": [ + { + "type": 300, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 30 + }, + { + "name": "Glutton", + "fields": [ + { + "type": 302, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 31 + }, + { + "name": "Preimage", + "fields": [ + { + "type": 303, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 32 + }, + { + "name": "Proxy", + "fields": [ + { + "type": 304, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 33 + }, + { + "name": "Multisig", + "fields": [ + { + "type": 306, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 34 + }, + { + "name": "Bounties", + "fields": [ + { + "type": 308, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 35 + }, + { + "name": "Tips", + "fields": [ + { + "type": 309, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 36 + }, + { + "name": "Assets", + "fields": [ + { + "type": 310, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 37 + }, + { + "name": "Lottery", + "fields": [ + { + "type": 311, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 39 + }, + { + "name": "Nis", + "fields": [ + { + "type": 312, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 40 + }, + { + "name": "Uniques", + "fields": [ + { + "type": 314, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 41 + }, + { + "name": "Nfts", + "fields": [ + { + "type": 318, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 42 + }, + { + "name": "TransactionStorage", + "fields": [ + { + "type": 339, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 43 + }, + { + "name": "VoterList", + "fields": [ + { + "type": 341, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 44 + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "type": 342, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 45 + }, + { + "name": "ChildBounties", + "fields": [ + { + "type": 348, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 46 + }, + { + "name": "Referenda", + "fields": [ + { + "type": 349, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 47 + }, + { + "name": "Remark", + "fields": [ + { + "type": 351, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 48 + }, + { + "name": "RootTesting", + "fields": [ + { + "type": 352, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 49 + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "type": 353, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 50 + }, + { + "name": "Whitelist", + "fields": [ + { + "type": 358, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 51 + }, + { + "name": "AllianceMotion", + "fields": [ + { + "type": 359, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 52 + }, + { + "name": "Alliance", + "fields": [ + { + "type": 360, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 53 + }, + { + "name": "NominationPools", + "fields": [ + { + "type": 369, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 54 + }, + { + "name": "RankedPolls", + "fields": [ + { + "type": 376, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 55 + }, + { + "name": "RankedCollective", + "fields": [ + { + "type": 377, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 56 + }, + { + "name": "FastUnstake", + "fields": [ + { + "type": 378, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 57 + }, + { + "name": "MessageQueue", + "fields": [ + { + "type": 379, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 58 + }, + { + "name": "Pov", + "fields": [ + { + "type": 380, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 59 + } + ] + } + } + } + }, + { + "id": 122, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "## Complexity", + "- `O(1)`" + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 10, + "typeName": "u64" + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "Vec" + } + ], + "index": 2, + "docs": [ + "Set the new runtime code.", + "", + "## Complexity", + "- `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`" + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "## Complexity", + "- `O(C)` where `C` length of `code`" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 123, + "typeName": "Vec" + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 125, + "typeName": "Vec" + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 12, + "typeName": "Key" + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 12, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 123, + "type": { + "def": { + "sequence": { + "type": 124 + } + } + } + }, + { + "id": 124, + "type": { + "def": { + "tuple": [ + 12, + 12 + ] + } + } + }, + { + "id": 125, + "type": { + "def": { + "sequence": { + "type": 12 + } + } + } + }, + { + "id": 126, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 127, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 93, + "typeName": "u16" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 127, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 128, + "typeName": "Box" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 127, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "weight", + "type": 8, + "typeName": "Weight" + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 127, + "type": { + "def": { + "sequence": { + "type": 121 + } + } + } + }, + { + "id": 128, + "type": { + "path": [ + "kitchensink_runtime", + "OriginCaller" + ], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "type": 129, + "typeName": "frame_system::Origin" + } + ], + "index": 0 + }, + { + "name": "Council", + "fields": [ + { + "type": 130, + "typeName": "pallet_collective::Origin" + } + ], + "index": 13 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 131, + "typeName": "pallet_collective::Origin" + } + ], + "index": 14 + }, + { + "name": "AllianceMotion", + "fields": [ + { + "type": 132, + "typeName": "pallet_collective::Origin" + } + ], + "index": 52 + }, + { + "name": "Void", + "fields": [ + { + "type": 133, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::Void" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 129, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "index": 0 + }, + { + "name": "Signed", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "None", + "index": 2 + } + ] + } + } + } + }, + { + "id": 130, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 131, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 132, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 133, + "type": { + "path": [ + "sp_core", + "Void" + ], + "def": { + "variant": {} + } + } + }, + { + "id": 134, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 135, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 141, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 0, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 135, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 141, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 1, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported.", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 142, + "typeName": "NextConfigDescriptor" + } + ], + "index": 2, + "docs": [ + "Plan an epoch config change. The epoch config change is recorded and will be enacted on", + "the next call to `enact_epoch_change`. The config will be activated one epoch after.", + "Multiple calls to this method will replace any existing planned config change that had", + "not been enacted yet." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 135, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 136 + }, + { + "name": "Id", + "type": 139 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 139, + "typeName": "Id" + }, + { + "name": "slot", + "type": 140, + "typeName": "Slot" + }, + { + "name": "first_header", + "type": 136, + "typeName": "Header" + }, + { + "name": "second_header", + "type": 136, + "typeName": "Header" + } + ] + } + } + } + }, + { + "id": 136, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": 137 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 11, + "typeName": "Hash::Output" + }, + { + "name": "number", + "type": 138, + "typeName": "Number" + }, + { + "name": "state_root", + "type": 11, + "typeName": "Hash::Output" + }, + { + "name": "extrinsics_root", + "type": 11, + "typeName": "Hash::Output" + }, + { + "name": "digest", + "type": 13, + "typeName": "Digest" + } + ] + } + } + } + }, + { + "id": 137, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "def": { + "composite": {} + } + } + }, + { + "id": 138, + "type": { + "def": { + "compact": { + "type": 4 + } + } + } + }, + { + "id": 139, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 72, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 140, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 141, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex" + }, + { + "name": "trie_nodes", + "type": 125, + "typeName": "Vec>" + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount" + } + ] + } + } + } + }, + { + "id": 142, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 143, + "typeName": "(u64, u64)" + }, + { + "name": "allowed_slots", + "type": 144, + "typeName": "AllowedSlots" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 143, + "type": { + "def": { + "tuple": [ + 10, + 10 + ] + } + } + }, + { + "id": 144, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "index": 0 + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "index": 1 + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "index": 2 + } + ] + } + } + } + }, + { + "id": 145, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 9, + "typeName": "T::Moment" + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "`MinimumPeriod`.", + "", + "The dispatch origin for this call must be `Inherent`.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 146, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + }, + { + "name": "freeze", + "type": 41, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 147, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 0 + }, + { + "name": "Index", + "fields": [ + { + "type": 138, + "typeName": "AccountIndex" + } + ], + "index": 1 + }, + { + "name": "Raw", + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ], + "index": 2 + }, + { + "name": "Address32", + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ], + "index": 3 + }, + { + "name": "Address20", + "fields": [ + { + "type": 148, + "typeName": "[u8; 20]" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 148, + "type": { + "def": { + "array": { + "len": 20, + "type": 2 + } + } + } + }, + { + "id": 149, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor.", + "", + "## Complexity", + "- Dependent on arguments but not critical, given proper implementations for input config", + " types. See related functions below.", + "- It contains a limited number of reads and writes internally and no complex", + " computation.", + "", + "Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check", + " that the transfer will not kill the origin account." + ] + }, + { + "name": "set_balance", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "new_free", + "type": 76, + "typeName": "T::Balance" + }, + { + "name": "new_reserved", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "Set the balances of a given account.", + "", + "This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + "also alter the total issuance of the system (`TotalIssuance`) appropriately.", + "If the new free or reserved balance is below the existential deposit,", + "it will reset the account nonce (`frame_system::AccountNonce`).", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer`, except the origin must be root and the source account may be", + "specified.", + "## Complexity", + "- Same as transfer, but additional read and write because the source account is not", + " assumed to be in the overlay." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer`] call, but with a check that the transfer will not kill the", + "origin account.", + "", + "99% of the time you want [`transfer`] instead.", + "", + "[`transfer`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "keep_alive", + "type": 41, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true). ## Complexity", + "- O(1). Just like transfer, but reading the user's transferable balance first." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 150, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 151, + "typeName": "Box>>" + }, + { + "name": "witness", + "type": 203, + "typeName": "SolutionOrSnapshotSize" + } + ], + "index": 0, + "docs": [ + "Submit a solution for the unsigned phase.", + "", + "The dispatch origin fo this call must be __none__.", + "", + "This submission is checked on the fly. Moreover, this unsigned solution is only", + "validated when submitted to the pool from the **local** node. Effectively, this means", + "that only active validators can submit this transaction when authoring a block (similar", + "to an inherent).", + "", + "To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + "panic if the solution submitted by the validator is invalid in any way, effectively", + "putting their authoring reward at risk.", + "", + "No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 204, + "typeName": "Option" + } + ], + "index": 1, + "docs": [ + "Set a new value for `MinimumUntrustedScore`.", + "", + "Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + "This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 205, + "typeName": "Supports" + } + ], + "index": 2, + "docs": [ + "Set a solution in the queue, to be handed out to the client of this pallet in the next", + "call to `ElectionProvider::elect`.", + "", + "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + "The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + "feasibility check itself can in principle cause the election process to fail (due to", + "memory/weight constrains)." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 151, + "typeName": "Box>>" + } + ], + "index": 3, + "docs": [ + "Submit a solution for the signed phase.", + "", + "The dispatch origin fo this call must be __signed__.", + "", + "The solution is potentially queued, based on the claimed score and processed at the end", + "of the signed phase.", + "", + "A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + "might be rewarded, slashed, or get all or a part of the deposit back." + ] + }, + { + "name": "governance_fallback", + "fields": [ + { + "name": "maybe_max_voters", + "type": 37, + "typeName": "Option" + }, + { + "name": "maybe_max_targets", + "type": 37, + "typeName": "Option" + } + ], + "index": 4, + "docs": [ + "Trigger the governance fallback.", + "", + "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to", + "calling [`Call::set_emergency_election_result`]." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 151, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 152 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 152, + "typeName": "S" + }, + { + "name": "score", + "type": 42, + "typeName": "ElectionScore" + }, + { + "name": "round", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 152, + "type": { + "path": [ + "kitchensink_runtime", + "NposSolution16" + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 153 + }, + { + "name": "votes2", + "type": 156 + }, + { + "name": "votes3", + "type": 161 + }, + { + "name": "votes4", + "type": 164 + }, + { + "name": "votes5", + "type": 167 + }, + { + "name": "votes6", + "type": 170 + }, + { + "name": "votes7", + "type": 173 + }, + { + "name": "votes8", + "type": 176 + }, + { + "name": "votes9", + "type": 179 + }, + { + "name": "votes10", + "type": 182 + }, + { + "name": "votes11", + "type": 185 + }, + { + "name": "votes12", + "type": 188 + }, + { + "name": "votes13", + "type": 191 + }, + { + "name": "votes14", + "type": 194 + }, + { + "name": "votes15", + "type": 197 + }, + { + "name": "votes16", + "type": 200 + } + ] + } + } + } + }, + { + "id": 153, + "type": { + "def": { + "sequence": { + "type": 154 + } + } + } + }, + { + "id": 154, + "type": { + "def": { + "tuple": [ + 138, + 155 + ] + } + } + }, + { + "id": 155, + "type": { + "def": { + "compact": { + "type": 93 + } + } + } + }, + { + "id": 156, + "type": { + "def": { + "sequence": { + "type": 157 + } + } + } + }, + { + "id": 157, + "type": { + "def": { + "tuple": [ + 138, + 158, + 155 + ] + } + } + }, + { + "id": 158, + "type": { + "def": { + "tuple": [ + 155, + 159 + ] + } + } + }, + { + "id": 159, + "type": { + "def": { + "compact": { + "type": 160 + } + } + } + }, + { + "id": 160, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "def": { + "composite": { + "fields": [ + { + "type": 93, + "typeName": "u16" + } + ] + } + } + } + }, + { + "id": 161, + "type": { + "def": { + "sequence": { + "type": 162 + } + } + } + }, + { + "id": 162, + "type": { + "def": { + "tuple": [ + 138, + 163, + 155 + ] + } + } + }, + { + "id": 163, + "type": { + "def": { + "array": { + "len": 2, + "type": 158 + } + } + } + }, + { + "id": 164, + "type": { + "def": { + "sequence": { + "type": 165 + } + } + } + }, + { + "id": 165, + "type": { + "def": { + "tuple": [ + 138, + 166, + 155 + ] + } + } + }, + { + "id": 166, + "type": { + "def": { + "array": { + "len": 3, + "type": 158 + } + } + } + }, + { + "id": 167, + "type": { + "def": { + "sequence": { + "type": 168 + } + } + } + }, + { + "id": 168, + "type": { + "def": { + "tuple": [ + 138, + 169, + 155 + ] + } + } + }, + { + "id": 169, + "type": { + "def": { + "array": { + "len": 4, + "type": 158 + } + } + } + }, + { + "id": 170, + "type": { + "def": { + "sequence": { + "type": 171 + } + } + } + }, + { + "id": 171, + "type": { + "def": { + "tuple": [ + 138, + 172, + 155 + ] + } + } + }, + { + "id": 172, + "type": { + "def": { + "array": { + "len": 5, + "type": 158 + } + } + } + }, + { + "id": 173, + "type": { + "def": { + "sequence": { + "type": 174 + } + } + } + }, + { + "id": 174, + "type": { + "def": { + "tuple": [ + 138, + 175, + 155 + ] + } + } + }, + { + "id": 175, + "type": { + "def": { + "array": { + "len": 6, + "type": 158 + } + } + } + }, + { + "id": 176, + "type": { + "def": { + "sequence": { + "type": 177 + } + } + } + }, + { + "id": 177, + "type": { + "def": { + "tuple": [ + 138, + 178, + 155 + ] + } + } + }, + { + "id": 178, + "type": { + "def": { + "array": { + "len": 7, + "type": 158 + } + } + } + }, + { + "id": 179, + "type": { + "def": { + "sequence": { + "type": 180 + } + } + } + }, + { + "id": 180, + "type": { + "def": { + "tuple": [ + 138, + 181, + 155 + ] + } + } + }, + { + "id": 181, + "type": { + "def": { + "array": { + "len": 8, + "type": 158 + } + } + } + }, + { + "id": 182, + "type": { + "def": { + "sequence": { + "type": 183 + } + } + } + }, + { + "id": 183, + "type": { + "def": { + "tuple": [ + 138, + 184, + 155 + ] + } + } + }, + { + "id": 184, + "type": { + "def": { + "array": { + "len": 9, + "type": 158 + } + } + } + }, + { + "id": 185, + "type": { + "def": { + "sequence": { + "type": 186 + } + } + } + }, + { + "id": 186, + "type": { + "def": { + "tuple": [ + 138, + 187, + 155 + ] + } + } + }, + { + "id": 187, + "type": { + "def": { + "array": { + "len": 10, + "type": 158 + } + } + } + }, + { + "id": 188, + "type": { + "def": { + "sequence": { + "type": 189 + } + } + } + }, + { + "id": 189, + "type": { + "def": { + "tuple": [ + 138, + 190, + 155 + ] + } + } + }, + { + "id": 190, + "type": { + "def": { + "array": { + "len": 11, + "type": 158 + } + } + } + }, + { + "id": 191, + "type": { + "def": { + "sequence": { + "type": 192 + } + } + } + }, + { + "id": 192, + "type": { + "def": { + "tuple": [ + 138, + 193, + 155 + ] + } + } + }, + { + "id": 193, + "type": { + "def": { + "array": { + "len": 12, + "type": 158 + } + } + } + }, + { + "id": 194, + "type": { + "def": { + "sequence": { + "type": 195 + } + } + } + }, + { + "id": 195, + "type": { + "def": { + "tuple": [ + 138, + 196, + 155 + ] + } + } + }, + { + "id": 196, + "type": { + "def": { + "array": { + "len": 13, + "type": 158 + } + } + } + }, + { + "id": 197, + "type": { + "def": { + "sequence": { + "type": 198 + } + } + } + }, + { + "id": 198, + "type": { + "def": { + "tuple": [ + 138, + 199, + 155 + ] + } + } + }, + { + "id": 199, + "type": { + "def": { + "array": { + "len": 14, + "type": 158 + } + } + } + }, + { + "id": 200, + "type": { + "def": { + "sequence": { + "type": 201 + } + } + } + }, + { + "id": 201, + "type": { + "def": { + "tuple": [ + 138, + 202, + 155 + ] + } + } + }, + { + "id": 202, + "type": { + "def": { + "array": { + "len": 15, + "type": 158 + } + } + } + }, + { + "id": 203, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 138, + "typeName": "u32" + }, + { + "name": "targets", + "type": 138, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 204, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 42 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 42 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 205, + "type": { + "def": { + "sequence": { + "type": 206 + } + } + } + }, + { + "id": 206, + "type": { + "def": { + "tuple": [ + 0, + 207 + ] + } + } + }, + { + "id": 207, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance" + }, + { + "name": "voters", + "type": 59, + "typeName": "Vec<(AccountId, ExtendedBalance)>" + } + ] + } + } + } + }, + { + "id": 208, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "controller", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "payee", + "type": 209, + "typeName": "RewardDestination" + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "## Complexity", + "- Independent of the arguments. Moderate complexity.", + "- O(1).", + "- Three extra DB entries.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ and gets removed as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- O(1)." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + "This essentially frees up that balance to be used by the stash account to do", + "whatever it wants.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Complexity", + "O(S) where S is the number of slashing spans to remove", + "NOTE: Weight annotation is the kill scenario, we refund otherwise." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 47, + "typeName": "ValidatorPrefs" + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 210, + "typeName": "Vec>" + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- The transaction's complexity is proportional to the size of `targets` (N)", + "which is capped at CompactAssignments::LIMIT (T::MaxNominations).", + "- Both the reads and writes follow a similar pattern." + ] + }, + { + "name": "chill", + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 209, + "typeName": "RewardDestination" + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key.", + "---------" + ] + }, + { + "name": "set_controller", + "fields": [ + { + "name": "controller", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 8, + "docs": [ + "(Re-)set the controller of a stash.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "## Complexity", + "O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 138, + "typeName": "u32" + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "O(1)" + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 138, + "typeName": "u32" + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators upto maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 211, + "typeName": "Percent" + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor upto maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "force_new_era", + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 83, + "typeName": "Vec" + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_new_era_always", + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "slash_indices", + "type": 105, + "typeName": "Vec" + } + ], + "index": 17, + "docs": [ + "Cancel enactment of a deferred slash.", + "", + "Can be called by the `T::AdminOrigin`.", + "", + "Parameters: era and indices of the slashes for that era to kill." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 18, + "docs": [ + "Pay out all the stakers behind a single validator for a single era.", + "", + "- `validator_stash` is the stash account of the validator. Their nominators, up to", + " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "## Complexity", + "- At most O(MaxNominatorRewardedPerValidator)." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller.", + "", + "## Complexity", + "- Time complexity: O(L), where L is unlocking chunks", + "- Bounded by `MaxUnlockingChunks`." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below existential deposit.", + "2. or, the `ledger.total` of the stash is below existential deposit.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 210, + "typeName": "Vec>" + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 212, + "typeName": "ConfigOp>" + }, + { + "name": "min_validator_bond", + "type": 212, + "typeName": "ConfigOp>" + }, + { + "name": "max_nominator_count", + "type": 213, + "typeName": "ConfigOp" + }, + { + "name": "max_validator_count", + "type": 213, + "typeName": "ConfigOp" + }, + { + "name": "chill_threshold", + "type": 214, + "typeName": "ConfigOp" + }, + { + "name": "min_commission", + "type": 215, + "typeName": "ConfigOp" + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 209, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "index": 0 + }, + { + "name": "Stash", + "index": 1 + }, + { + "name": "Controller", + "index": 2 + }, + { + "name": "Account", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 3 + }, + { + "name": "None", + "index": 4 + } + ] + } + } + } + }, + { + "id": 210, + "type": { + "def": { + "sequence": { + "type": 147 + } + } + } + }, + { + "id": 211, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ] + } + } + } + }, + { + "id": 212, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 6, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 213, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 4, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 214, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 211 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 211, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 215, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 46 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 46, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 216, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 217, + "typeName": "T::Keys" + }, + { + "name": "proof", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 217, + "type": { + "path": [ + "kitchensink_runtime", + "SessionKeys" + ], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 65, + "typeName": "::Public" + }, + { + "name": "babe", + "type": 139, + "typeName": "::Public" + }, + { + "name": "im_online", + "type": 71, + "typeName": "::Public" + }, + { + "name": "authority_discovery", + "type": 218, + "typeName": "::Public" + } + ] + } + } + } + }, + { + "id": 218, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 72, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 219, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Propose a sensitive action to be taken.", + "", + "The dispatch origin of this call must be _Signed_ and the sender must", + "have funds to cover the deposit.", + "", + "- `proposal_hash`: The hash of the proposal preimage.", + "- `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + "Emits `Proposed`." + ] + }, + { + "name": "second", + "fields": [ + { + "name": "proposal", + "type": 138, + "typeName": "PropIndex" + } + ], + "index": 1, + "docs": [ + "Signals agreement with a particular proposal.", + "", + "The dispatch origin of this call must be _Signed_ and the sender", + "must have funds to cover the deposit, equal to the original deposit.", + "", + "- `proposal`: The index of the proposal to second." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "ref_index", + "type": 138, + "typeName": "ReferendumIndex" + }, + { + "name": "vote", + "type": 53, + "typeName": "AccountVote>" + } + ], + "index": 2, + "docs": [ + "Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `ref_index`: The index of the referendum to vote for.", + "- `vote`: The vote configuration." + ] + }, + { + "name": "emergency_cancel", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + "referendum.", + "", + "The dispatch origin of this call must be `CancellationOrigin`.", + "", + "-`ref_index`: The index of the referendum to cancel.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "fields": [ + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + } + ], + "index": 4, + "docs": [ + "Schedule a referendum to be tabled once it is legal to schedule an external", + "referendum.", + "", + "The dispatch origin of this call must be `ExternalOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal." + ] + }, + { + "name": "external_propose_majority", + "fields": [ + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + } + ], + "index": 5, + "docs": [ + "Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + "an external referendum.", + "", + "The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "fields": [ + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + } + ], + "index": 6, + "docs": [ + "Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + "schedule an external referendum.", + "", + "The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + }, + { + "name": "voting_period", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 7, + "docs": [ + "Schedule the currently externally-proposed majority-carries referendum to be tabled", + "immediately. If there is no externally-proposed referendum currently, or if there is one", + "but it is not a majority-carries referendum then it fails.", + "", + "The dispatch of this call must be `FastTrackOrigin`.", + "", + "- `proposal_hash`: The hash of the current external proposal.", + "- `voting_period`: The period that is allowed for voting on this proposal. Increased to", + "\tMust be always greater than zero.", + "\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`.", + "- `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + "Emits `Started`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + } + ], + "index": 8, + "docs": [ + "Veto and blacklist the external proposal hash.", + "", + "The dispatch origin of this call must be `VetoOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + "Emits `Vetoed`.", + "", + "Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "fields": [ + { + "name": "ref_index", + "type": 138, + "typeName": "ReferendumIndex" + } + ], + "index": 9, + "docs": [ + "Remove a referendum.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "- `ref_index`: The index of the referendum to cancel.", + "", + "# Weight: `O(1)`." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "to", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "conviction", + "type": 220, + "typeName": "Conviction" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 10, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "index": 11, + "docs": [ + "Undelegate the voting power of the sending account.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "index": 12, + "docs": [ + "Clears all public proposals.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Unlock tokens that have an expired lock.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 14, + "docs": [ + "Remove a vote for a referendum.", + "", + "If:", + "- the referendum was cancelled, or", + "- the referendum is ongoing, or", + "- the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the referendum has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for referendum `index`.", + "", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 15, + "docs": [ + "Remove a vote for a referendum.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the referendum was cancelled, because the voter lost the referendum or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "blacklist", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "H256" + }, + { + "name": "maybe_ref_index", + "type": 37, + "typeName": "Option" + } + ], + "index": 16, + "docs": [ + "Permanently place a proposal into the blacklist. This prevents it from ever being", + "proposed again.", + "", + "If called on a queued public or external proposal, then this will result in it being", + "removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + "then it will be cancelled.", + "", + "The dispatch origin of this call must be `BlacklistOrigin`.", + "", + "- `proposal_hash`: The proposal hash to blacklist permanently.", + "- `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + "cancelled.", + "", + "Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "fields": [ + { + "name": "prop_index", + "type": 138, + "typeName": "PropIndex" + } + ], + "index": 17, + "docs": [ + "Remove a proposal.", + "", + "The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + "- `prop_index`: The index of the proposal to cancel.", + "", + "Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "owner", + "type": 55, + "typeName": "MetadataOwner" + }, + { + "name": "maybe_hash", + "type": 221, + "typeName": "Option" + } + ], + "index": 18, + "docs": [ + "Set or clear a metadata of a proposal or a referendum.", + "", + "Parameters:", + "- `origin`: Must correspond to the `MetadataOwner`.", + " - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`", + " threshold.", + " - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`", + " threshold.", + " - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`", + " threshold.", + " - `Signed` by a creator for a public proposal.", + " - `Signed` to clear a metadata for a finished referendum.", + " - `Root` to set a metadata for an ongoing referendum.", + "- `owner`: an identifier of a metadata owner.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 220, + "type": { + "path": [ + "pallet_democracy", + "conviction", + "Conviction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Locked1x", + "index": 1 + }, + { + "name": "Locked2x", + "index": 2 + }, + { + "name": "Locked3x", + "index": 3 + }, + { + "name": "Locked4x", + "index": 4 + }, + { + "name": "Locked5x", + "index": 5 + }, + { + "name": "Locked6x", + "index": 6 + } + ] + } + } + } + }, + { + "id": 221, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 11 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 11 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 222, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 83, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 40, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 138, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 8, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 223, + "type": { + "def": { + "compact": { + "type": 224 + } + } + } + }, + { + "id": 224, + "type": { + "path": [ + "sp_weights", + "OldWeight" + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 225, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 83, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 40, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 138, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 8, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 226, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "votes", + "type": 83, + "typeName": "Vec" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Vote for a set of candidates for the upcoming round of election. This can be called to", + "set the initial votes, or update already existing votes.", + "", + "Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + "reserved. The deposit is based on the number of votes and can be updated over time.", + "", + "The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + "If `value` is more than `who`'s free balance, then the maximum of the two is used.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "It is the responsibility of the caller to **NOT** place all of their balance into the", + "lock and keep some for further operations." + ] + }, + { + "name": "remove_voter", + "index": 1, + "docs": [ + "Remove `origin` as a voter.", + "", + "This removes the lock and returns the deposit.", + "", + "The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "fields": [ + { + "name": "candidate_count", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + "All candidates are wiped at the end of the term. They either become a member/runner-up,", + "or leave the system while their deposit is slashed.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + "to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + "The number of current candidates must be provided as witness data.", + "## Complexity", + "O(C + log(C)) where C is candidate_count." + ] + }, + { + "name": "renounce_candidacy", + "fields": [ + { + "name": "renouncing", + "type": 227, + "typeName": "Renouncing" + } + ], + "index": 3, + "docs": [ + "Renounce one's intention to be a candidate for the next election round. 3 potential", + "outcomes exist:", + "", + "- `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + "- `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + "- `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + "The dispatch origin of this call must be signed, and have one of the above roles.", + "The type of renouncing must be provided as witness data.", + "", + "## Complexity", + " - Renouncing::Candidate(count): O(count + log(count))", + " - Renouncing::Member: O(1)", + " - Renouncing::RunnerUp: O(1)" + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "slash_bond", + "type": 41, + "typeName": "bool" + }, + { + "name": "rerun_election", + "type": 41, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Remove a particular member from the set. This is effective immediately and the bond of", + "the outgoing member is slashed.", + "", + "If a runner-up is available, then the best runner-up will be removed and replaces the", + "outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is", + "started, else, nothing happens.", + "", + "If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,", + "it is returned.", + "", + "The dispatch origin of this call must be root.", + "", + "Note that this does not affect the designated block number of the next election.", + "", + "## Complexity", + "- Check details of remove_and_replace_member() and do_phragmen()." + ] + }, + { + "name": "clean_defunct_voters", + "fields": [ + { + "name": "num_voters", + "type": 4, + "typeName": "u32" + }, + { + "name": "num_defunct", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + "deposit of the removed voters are returned.", + "", + "This is an root function to be used only for cleaning the state.", + "", + "The dispatch origin of this call must be root.", + "", + "## Complexity", + "- Check is_defunct_voter() details." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 227, + "type": { + "path": [ + "pallet_elections_phragmen", + "Renouncing" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Member", + "index": 0 + }, + { + "name": "RunnerUp", + "index": 1 + }, + { + "name": "Candidate", + "fields": [ + { + "type": 138, + "typeName": "u32" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 228, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Add a member `who` to the set.", + "", + "May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Remove a member `who` from the set.", + "", + "May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "fields": [ + { + "name": "remove", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "add", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Swap out one member `remove` for another `add`.", + "", + "May only be called from `T::SwapOrigin`.", + "", + "Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "fields": [ + { + "name": "members", + "type": 83, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Change the membership to a new set, disregarding the existing membership. Be nice and", + "pass `members` pre-sorted.", + "", + "May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "fields": [ + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Swap out the sending member for some other key `new`.", + "", + "May only be called from `Signed` origin of a current member.", + "", + "Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Set the prime member. Must be a current member.", + "", + "May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "index": 6, + "docs": [ + "Remove the prime member if it exists.", + "", + "May only be called from `T::PrimeOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 229, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 230, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 141, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 230, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 141, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 2, + "docs": [ + "Note that the current authority set of the GRANDPA finality gadget has stalled.", + "", + "This will trigger a forced authority set change at the beginning of the next session, to", + "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume", + "that the block signalling the forced change will not be re-orged e.g. 1000 blocks.", + "The block production rate (which may be slowed down because of finality lagging) should", + "be taken into account when choosing the `delay`. The GRANDPA voters based on the new", + "authority will start voting on top of `best_finalized_block_number` for new finalized", + "blocks. `best_finalized_block_number` should be the highest of the latest finalized", + "block of all validators of the new authority set.", + "", + "Only callable by root." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 230, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 11 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 10, + "typeName": "SetId" + }, + { + "name": "equivocation", + "type": 231, + "typeName": "Equivocation" + } + ] + } + } + } + }, + { + "id": 231, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 11 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "type": 232, + "typeName": "grandpa::Equivocation,\nAuthoritySignature>" + } + ], + "index": 0 + }, + { + "name": "Precommit", + "fields": [ + { + "type": 238, + "typeName": "grandpa::Equivocation,\nAuthoritySignature>" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 232, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 65 + }, + { + "name": "V", + "type": 233 + }, + { + "name": "S", + "type": 234 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 10, + "typeName": "u64" + }, + { + "name": "identity", + "type": 65, + "typeName": "Id" + }, + { + "name": "first", + "type": 237, + "typeName": "(V, S)" + }, + { + "name": "second", + "type": 237, + "typeName": "(V, S)" + } + ] + } + } + } + }, + { + "id": 233, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 11 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 11, + "typeName": "H" + }, + { + "name": "target_number", + "type": 4, + "typeName": "N" + } + ] + } + } + } + }, + { + "id": 234, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 235, + "typeName": "ed25519::Signature" + } + ] + } + } + } + }, + { + "id": 235, + "type": { + "path": [ + "sp_core", + "ed25519", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 236, + "typeName": "[u8; 64]" + } + ] + } + } + } + }, + { + "id": 236, + "type": { + "def": { + "array": { + "len": 64, + "type": 2 + } + } + } + }, + { + "id": 237, + "type": { + "def": { + "tuple": [ + 233, + 234 + ] + } + } + }, + { + "id": 238, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 65 + }, + { + "name": "V", + "type": 239 + }, + { + "name": "S", + "type": 234 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 10, + "typeName": "u64" + }, + { + "name": "identity", + "type": 65, + "typeName": "Id" + }, + { + "name": "first", + "type": 240, + "typeName": "(V, S)" + }, + { + "name": "second", + "type": 240, + "typeName": "(V, S)" + } + ] + } + } + } + }, + { + "id": 239, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 11 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 11, + "typeName": "H" + }, + { + "name": "target_number", + "type": 4, + "typeName": "N" + } + ] + } + } + } + }, + { + "id": 240, + "type": { + "def": { + "tuple": [ + 239, + 234 + ] + } + } + }, + { + "id": 241, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_spend", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Put forward a suggestion for spending. A deposit proportional to the value", + "is reserved and slashed if the proposal is rejected. It is returned once the", + "proposal is awarded.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "reject_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 138, + "typeName": "ProposalIndex" + } + ], + "index": 1, + "docs": [ + "Reject a proposed spend. The original deposit will be slashed.", + "", + "May only be called from `T::RejectOrigin`.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "approve_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 138, + "typeName": "ProposalIndex" + } + ], + "index": 2, + "docs": [ + "Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + "and the original deposit will be returned.", + "", + "May only be called from `T::ApproveOrigin`.", + "", + "## Complexity", + " - O(1)." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "- `origin`: Must be `SpendOrigin` with the `Success` value being at least `amount`.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 138, + "typeName": "ProposalIndex" + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "The original deposit will no longer be returned.", + "", + "May only be called from `T::RejectOrigin`.", + "- `proposal_id`: The index of a proposal", + "", + "## Complexity", + "- O(A) where `A` is the number of approvals", + "", + "Errors:", + "- `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,", + "i.e., the proposal has not been approved. This could also mean the proposal does not", + "exist altogether, thus there is no way it would have been approved in the first place." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 242, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "call_old_weight", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Deprecated version if [`Self::call`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_with_code_old_weight", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code", + "type": 12, + "typeName": "Vec" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 12, + "typeName": "Vec" + } + ], + "index": 1, + "docs": [ + "Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_old_weight", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 12, + "typeName": "Vec" + } + ], + "index": 2, + "docs": [ + "Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`." + ] + }, + { + "name": "upload_code", + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "Vec" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "determinism", + "type": 244, + "typeName": "Determinism" + } + ], + "index": 3, + "docs": [ + "Upload new `code` without instantiating a contract from it.", + "", + "If the code does not already exist a deposit is reserved from the caller", + "and unreserved only when [`Self::remove_code`] is called. The size of the reserve", + "depends on the instrumented size of the the supplied `code`.", + "", + "If the code already exists in storage it will still return `Ok` and upgrades", + "the in storage version to the current", + "[`InstructionWeights::version`](InstructionWeights).", + "", + "- `determinism`: If this is set to any other value but [`Determinism::Deterministic`]", + " then the only way to use this code is to delegate call into it from an offchain", + " execution. Set to [`Determinism::Deterministic`] if in doubt.", + "", + "# Note", + "", + "Anyone can instantiate a contract from any uploaded code and thus prevent its removal.", + "To avoid this situation a constructor could employ access control so that it can", + "only be instantiated by permissioned entities. The same is true when uploading", + "through [`Self::instantiate_with_code`]." + ] + }, + { + "name": "remove_code", + "fields": [ + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + } + ], + "index": 4, + "docs": [ + "Remove the code stored under `code_hash` and refund the deposit to its owner.", + "", + "A code can only be removed by its original uploader (its owner) and only if it is", + "not used by any contract." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + } + ], + "index": 5, + "docs": [ + "Privileged function that changes the code of an existing contract.", + "", + "This takes care of updating refcounts and all other necessary operations. Returns", + "an error if either the `code_hash` or `dest` do not exist.", + "", + "# Note", + "", + "This does **not** change the address of the contract in question. This means", + "that the contract address is no longer derived from its code hash after calling", + "this dispatchable." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 8, + "typeName": "Weight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + } + ], + "index": 6, + "docs": [ + "Makes a call to an account, optionally transferring some balance.", + "", + "# Parameters", + "", + "* `dest`: Address of the contract to call.", + "* `value`: The balance to transfer from the `origin` to `dest`.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the", + " caller to pay for the storage consumed.", + "* `data`: The input data to pass to the contract.", + "", + "* If the account is a smart-contract account, the associated code will be", + "executed and any value will be transferred.", + "* If the account is a regular account, any value will be transferred.", + "* If no account exists and the call value is not less than `existential_deposit`,", + "a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 8, + "typeName": "Weight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code", + "type": 12, + "typeName": "Vec" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 12, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Instantiates a new contract from the supplied `code` optionally transferring", + "some balance.", + "", + "This dispatchable has the same effect as calling [`Self::upload_code`] +", + "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please", + "also check the documentation of [`Self::upload_code`].", + "", + "# Parameters", + "", + "* `value`: The balance to transfer from the `origin` to the newly created contract.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved", + " from the caller to pay for the storage consumed.", + "* `code`: The contract code to deploy in raw bytes.", + "* `data`: The input data to pass to the contract constructor.", + "* `salt`: Used for the address derivation. See [`Pallet::contract_address`].", + "", + "Instantiation is executed as follows:", + "", + "- The supplied `code` is instrumented, deployed, and a `code_hash` is created for that", + " code.", + "- If the `code_hash` already exists on the chain the underlying `code` will be shared.", + "- The destination address is computed based on the sender, code_hash and the salt.", + "- The smart-contract account is created at the computed address.", + "- The `value` is transferred to the new account.", + "- The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "instantiate", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 8, + "typeName": "Weight" + }, + { + "name": "storage_deposit_limit", + "type": 243, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + }, + { + "name": "data", + "type": 12, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 12, + "typeName": "Vec" + } + ], + "index": 8, + "docs": [ + "Instantiates a contract from a previously deployed wasm binary.", + "", + "This function is identical to [`Self::instantiate_with_code`] but without the", + "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + "must be supplied." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 243, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 76 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 76 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 244, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "Determinism" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deterministic", + "index": 0 + }, + { + "name": "AllowIndeterminism", + "index": 1 + } + ] + } + } + } + }, + { + "id": 245, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "sudo", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "sudo_unchecked_weight", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "weight", + "type": 8, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "This function does not check the weight of the call, and instead allows the", + "Sudo user to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "set_key", + "fields": [ + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo", + "key.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "sudo_as", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Signed` origin from", + "a given account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 246, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "heartbeat", + "fields": [ + { + "name": "heartbeat", + "type": 247, + "typeName": "Heartbeat" + }, + { + "name": "signature", + "type": 252, + "typeName": "::Signature" + } + ], + "index": 0, + "docs": [ + "## Complexity:", + "- `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is length of", + " `heartbeat.network_state.external_address`", + " - `O(K)`: decoding of length `K`", + " - `O(E)`: decoding/encoding of length `E`" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 247, + "type": { + "path": [ + "pallet_im_online", + "Heartbeat" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "network_state", + "type": 248, + "typeName": "OpaqueNetworkState" + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex" + }, + { + "name": "authority_index", + "type": 4, + "typeName": "AuthIndex" + }, + { + "name": "validators_len", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 248, + "type": { + "path": [ + "sp_core", + "offchain", + "OpaqueNetworkState" + ], + "def": { + "composite": { + "fields": [ + { + "name": "peer_id", + "type": 249, + "typeName": "OpaquePeerId" + }, + { + "name": "external_addresses", + "type": 250, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 249, + "type": { + "path": [ + "sp_core", + "OpaquePeerId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 250, + "type": { + "def": { + "sequence": { + "type": 251 + } + } + } + }, + { + "id": 251, + "type": { + "path": [ + "sp_core", + "offchain", + "OpaqueMultiaddr" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 252, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 253, + "typeName": "sr25519::Signature" + } + ] + } + } + } + }, + { + "id": 253, + "type": { + "path": [ + "sp_core", + "sr25519", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 236, + "typeName": "[u8; 64]" + } + ] + } + } + } + }, + { + "id": 254, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_registrar", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Add a registrar to the system.", + "", + "The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + "- `account`: the account of the registrar.", + "", + "Emits `RegistrarAdded` if successful.", + "", + "## Complexity", + "- `O(R)` where `R` registrar-count (governance-bounded and code-bounded)." + ] + }, + { + "name": "set_identity", + "fields": [ + { + "name": "info", + "type": 255, + "typeName": "Box>" + } + ], + "index": 1, + "docs": [ + "Set an account's identity information and reserve the appropriate deposit.", + "", + "If the account already has identity information, the deposit is taken as part payment", + "for the new deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `info`: The identity information.", + "", + "Emits `IdentitySet` if successful.", + "", + "## Complexity", + "- `O(X + X' + R)`", + " - where `X` additional-field-count (deposit-bounded and code-bounded)", + " - where `R` judgements-count (registrar-count-bounded)" + ] + }, + { + "name": "set_subs", + "fields": [ + { + "name": "subs", + "type": 290, + "typeName": "Vec<(T::AccountId, Data)>" + } + ], + "index": 2, + "docs": [ + "Set the sub-accounts of the sender.", + "", + "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + "and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "- `subs`: The identity's (new) sub-accounts.", + "", + "## Complexity", + "- `O(P + S)`", + " - where `P` old-subs-count (hard- and deposit-bounded).", + " - where `S` subs-count (hard- and deposit-bounded)." + ] + }, + { + "name": "clear_identity", + "index": 3, + "docs": [ + "Clear an account's identity info and all sub-accounts and return all deposits.", + "", + "Payment: All reserved balances on the account are returned.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "Emits `IdentityCleared` if successful.", + "", + "## Complexity", + "- `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "request_judgement", + "fields": [ + { + "name": "reg_index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "max_fee", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "Request a judgement from a registrar.", + "", + "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + "given.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is requested.", + "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + "```nocompile", + "Self::registrars().get(reg_index).unwrap().fee", + "```", + "", + "Emits `JudgementRequested` if successful.", + "", + "## Complexity", + "- `O(R + X)`.", + " - where `R` registrar-count (governance-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "cancel_request", + "fields": [ + { + "name": "reg_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 5, + "docs": [ + "Cancel a previous request.", + "", + "Payment: A previously reserved deposit is returned on success.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + "Emits `JudgementUnrequested` if successful.", + "", + "## Complexity", + "- `O(R + X)`.", + " - where `R` registrar-count (governance-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "set_fee", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "fee", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "Set the fee required for a judgement to be requested from a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fee`: the new fee.", + "", + "## Complexity", + "- `O(R)`.", + " - where `R` registrar-count (governance-bounded)." + ] + }, + { + "name": "set_account_id", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "new", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 7, + "docs": [ + "Change the account associated with a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `new`: the new account ID.", + "", + "## Complexity", + "- `O(R)`.", + " - where `R` registrar-count (governance-bounded)." + ] + }, + { + "name": "set_fields", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "fields", + "type": 292, + "typeName": "IdentityFields" + } + ], + "index": 8, + "docs": [ + "Set the field information for a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fields`: the fields that the registrar concerns themselves with.", + "", + "## Complexity", + "- `O(R)`.", + " - where `R` registrar-count (governance-bounded)." + ] + }, + { + "name": "provide_judgement", + "fields": [ + { + "name": "reg_index", + "type": 138, + "typeName": "RegistrarIndex" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "judgement", + "type": 294, + "typeName": "Judgement>" + }, + { + "name": "identity", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 9, + "docs": [ + "Provide a judgement for an account's identity.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `reg_index`.", + "", + "- `reg_index`: the index of the registrar whose judgement is being made.", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "- `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "- `identity`: The hash of the [`IdentityInfo`] for that the judgement is provided.", + "", + "Emits `JudgementGiven` if successful.", + "", + "## Complexity", + "- `O(R + X)`.", + " - where `R` registrar-count (governance-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "kill_identity", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 10, + "docs": [ + "Remove an account's identity and sub-account information and slash the deposits.", + "", + "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + "`Slash`. Verification request deposits are not returned; they should be cancelled", + "manually using `cancel_request`.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`.", + "", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + "Emits `IdentityKilled` if successful.", + "", + "## Complexity", + "- `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "add_sub", + "fields": [ + { + "name": "sub", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "data", + "type": 258, + "typeName": "Data" + } + ], + "index": 11, + "docs": [ + "Add the given account to the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "fields": [ + { + "name": "sub", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "data", + "type": 258, + "typeName": "Data" + } + ], + "index": 12, + "docs": [ + "Alter the associated name of the given sub-account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "fields": [ + { + "name": "sub", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Remove the given account from the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "index": 14, + "docs": [ + "Remove the sender as a sub-account.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender (*not* the original depositor).", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "super-identity.", + "", + "NOTE: This should not normally be used, but is provided in the case that the non-", + "controller of an account is maliciously registered as a sub-account." + ] + } + ] + } + }, + "docs": [ + "Identity pallet declaration." + ] + } + }, + { + "id": 255, + "type": { + "path": [ + "pallet_identity", + "types", + "IdentityInfo" + ], + "params": [ + { + "name": "FieldLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "additional", + "type": 256, + "typeName": "BoundedVec<(Data, Data), FieldLimit>" + }, + { + "name": "display", + "type": 258, + "typeName": "Data" + }, + { + "name": "legal", + "type": 258, + "typeName": "Data" + }, + { + "name": "web", + "type": 258, + "typeName": "Data" + }, + { + "name": "riot", + "type": 258, + "typeName": "Data" + }, + { + "name": "email", + "type": 258, + "typeName": "Data" + }, + { + "name": "pgp_fingerprint", + "type": 289, + "typeName": "Option<[u8; 20]>" + }, + { + "name": "image", + "type": 258, + "typeName": "Data" + }, + { + "name": "twitter", + "type": 258, + "typeName": "Data" + } + ] + } + } + } + }, + { + "id": 256, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 257 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 288, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 257, + "type": { + "def": { + "tuple": [ + 258, + 258 + ] + } + } + }, + { + "id": 258, + "type": { + "path": [ + "pallet_identity", + "types", + "Data" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Raw0", + "fields": [ + { + "type": 259 + } + ], + "index": 1 + }, + { + "name": "Raw1", + "fields": [ + { + "type": 260 + } + ], + "index": 2 + }, + { + "name": "Raw2", + "fields": [ + { + "type": 261 + } + ], + "index": 3 + }, + { + "name": "Raw3", + "fields": [ + { + "type": 262 + } + ], + "index": 4 + }, + { + "name": "Raw4", + "fields": [ + { + "type": 16 + } + ], + "index": 5 + }, + { + "name": "Raw5", + "fields": [ + { + "type": 263 + } + ], + "index": 6 + }, + { + "name": "Raw6", + "fields": [ + { + "type": 264 + } + ], + "index": 7 + }, + { + "name": "Raw7", + "fields": [ + { + "type": 265 + } + ], + "index": 8 + }, + { + "name": "Raw8", + "fields": [ + { + "type": 266 + } + ], + "index": 9 + }, + { + "name": "Raw9", + "fields": [ + { + "type": 267 + } + ], + "index": 10 + }, + { + "name": "Raw10", + "fields": [ + { + "type": 268 + } + ], + "index": 11 + }, + { + "name": "Raw11", + "fields": [ + { + "type": 269 + } + ], + "index": 12 + }, + { + "name": "Raw12", + "fields": [ + { + "type": 270 + } + ], + "index": 13 + }, + { + "name": "Raw13", + "fields": [ + { + "type": 271 + } + ], + "index": 14 + }, + { + "name": "Raw14", + "fields": [ + { + "type": 272 + } + ], + "index": 15 + }, + { + "name": "Raw15", + "fields": [ + { + "type": 273 + } + ], + "index": 16 + }, + { + "name": "Raw16", + "fields": [ + { + "type": 80 + } + ], + "index": 17 + }, + { + "name": "Raw17", + "fields": [ + { + "type": 274 + } + ], + "index": 18 + }, + { + "name": "Raw18", + "fields": [ + { + "type": 275 + } + ], + "index": 19 + }, + { + "name": "Raw19", + "fields": [ + { + "type": 276 + } + ], + "index": 20 + }, + { + "name": "Raw20", + "fields": [ + { + "type": 148 + } + ], + "index": 21 + }, + { + "name": "Raw21", + "fields": [ + { + "type": 277 + } + ], + "index": 22 + }, + { + "name": "Raw22", + "fields": [ + { + "type": 278 + } + ], + "index": 23 + }, + { + "name": "Raw23", + "fields": [ + { + "type": 279 + } + ], + "index": 24 + }, + { + "name": "Raw24", + "fields": [ + { + "type": 280 + } + ], + "index": 25 + }, + { + "name": "Raw25", + "fields": [ + { + "type": 281 + } + ], + "index": 26 + }, + { + "name": "Raw26", + "fields": [ + { + "type": 282 + } + ], + "index": 27 + }, + { + "name": "Raw27", + "fields": [ + { + "type": 283 + } + ], + "index": 28 + }, + { + "name": "Raw28", + "fields": [ + { + "type": 284 + } + ], + "index": 29 + }, + { + "name": "Raw29", + "fields": [ + { + "type": 285 + } + ], + "index": 30 + }, + { + "name": "Raw30", + "fields": [ + { + "type": 286 + } + ], + "index": 31 + }, + { + "name": "Raw31", + "fields": [ + { + "type": 287 + } + ], + "index": 32 + }, + { + "name": "Raw32", + "fields": [ + { + "type": 1 + } + ], + "index": 33 + }, + { + "name": "BlakeTwo256", + "fields": [ + { + "type": 1 + } + ], + "index": 34 + }, + { + "name": "Sha256", + "fields": [ + { + "type": 1 + } + ], + "index": 35 + }, + { + "name": "Keccak256", + "fields": [ + { + "type": 1 + } + ], + "index": 36 + }, + { + "name": "ShaThree256", + "fields": [ + { + "type": 1 + } + ], + "index": 37 + } + ] + } + } + } + }, + { + "id": 259, + "type": { + "def": { + "array": { + "len": 0, + "type": 2 + } + } + } + }, + { + "id": 260, + "type": { + "def": { + "array": { + "len": 1, + "type": 2 + } + } + } + }, + { + "id": 261, + "type": { + "def": { + "array": { + "len": 2, + "type": 2 + } + } + } + }, + { + "id": 262, + "type": { + "def": { + "array": { + "len": 3, + "type": 2 + } + } + } + }, + { + "id": 263, + "type": { + "def": { + "array": { + "len": 5, + "type": 2 + } + } + } + }, + { + "id": 264, + "type": { + "def": { + "array": { + "len": 6, + "type": 2 + } + } + } + }, + { + "id": 265, + "type": { + "def": { + "array": { + "len": 7, + "type": 2 + } + } + } + }, + { + "id": 266, + "type": { + "def": { + "array": { + "len": 8, + "type": 2 + } + } + } + }, + { + "id": 267, + "type": { + "def": { + "array": { + "len": 9, + "type": 2 + } + } + } + }, + { + "id": 268, + "type": { + "def": { + "array": { + "len": 10, + "type": 2 + } + } + } + }, + { + "id": 269, + "type": { + "def": { + "array": { + "len": 11, + "type": 2 + } + } + } + }, + { + "id": 270, + "type": { + "def": { + "array": { + "len": 12, + "type": 2 + } + } + } + }, + { + "id": 271, + "type": { + "def": { + "array": { + "len": 13, + "type": 2 + } + } + } + }, + { + "id": 272, + "type": { + "def": { + "array": { + "len": 14, + "type": 2 + } + } + } + }, + { + "id": 273, + "type": { + "def": { + "array": { + "len": 15, + "type": 2 + } + } + } + }, + { + "id": 274, + "type": { + "def": { + "array": { + "len": 17, + "type": 2 + } + } + } + }, + { + "id": 275, + "type": { + "def": { + "array": { + "len": 18, + "type": 2 + } + } + } + }, + { + "id": 276, + "type": { + "def": { + "array": { + "len": 19, + "type": 2 + } + } + } + }, + { + "id": 277, + "type": { + "def": { + "array": { + "len": 21, + "type": 2 + } + } + } + }, + { + "id": 278, + "type": { + "def": { + "array": { + "len": 22, + "type": 2 + } + } + } + }, + { + "id": 279, + "type": { + "def": { + "array": { + "len": 23, + "type": 2 + } + } + } + }, + { + "id": 280, + "type": { + "def": { + "array": { + "len": 24, + "type": 2 + } + } + } + }, + { + "id": 281, + "type": { + "def": { + "array": { + "len": 25, + "type": 2 + } + } + } + }, + { + "id": 282, + "type": { + "def": { + "array": { + "len": 26, + "type": 2 + } + } + } + }, + { + "id": 283, + "type": { + "def": { + "array": { + "len": 27, + "type": 2 + } + } + } + }, + { + "id": 284, + "type": { + "def": { + "array": { + "len": 28, + "type": 2 + } + } + } + }, + { + "id": 285, + "type": { + "def": { + "array": { + "len": 29, + "type": 2 + } + } + } + }, + { + "id": 286, + "type": { + "def": { + "array": { + "len": 30, + "type": 2 + } + } + } + }, + { + "id": 287, + "type": { + "def": { + "array": { + "len": 31, + "type": 2 + } + } + } + }, + { + "id": 288, + "type": { + "def": { + "sequence": { + "type": 257 + } + } + } + }, + { + "id": 289, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 148 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 148 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 290, + "type": { + "def": { + "sequence": { + "type": 291 + } + } + } + }, + { + "id": 291, + "type": { + "def": { + "tuple": [ + 0, + 258 + ] + } + } + }, + { + "id": 292, + "type": { + "path": [ + "pallet_identity", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 293 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "IdentityField" + } + ] + } + } + } + }, + { + "id": 293, + "type": { + "path": [ + "pallet_identity", + "types", + "IdentityField" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Display", + "index": 1 + }, + { + "name": "Legal", + "index": 2 + }, + { + "name": "Web", + "index": 4 + }, + { + "name": "Riot", + "index": 8 + }, + { + "name": "Email", + "index": 16 + }, + { + "name": "PgpFingerprint", + "index": 32 + }, + { + "name": "Image", + "index": 64 + }, + { + "name": "Twitter", + "index": 128 + } + ] + } + } + } + }, + { + "id": 294, + "type": { + "path": [ + "pallet_identity", + "types", + "Judgement" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unknown", + "index": 0 + }, + { + "name": "FeePaid", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + }, + { + "name": "Reasonable", + "index": 2 + }, + { + "name": "KnownGood", + "index": 3 + }, + { + "name": "OutOfDate", + "index": 4 + }, + { + "name": "LowQuality", + "index": 5 + }, + { + "name": "Erroneous", + "index": 6 + } + ] + } + } + } + }, + { + "id": 295, + "type": { + "path": [ + "pallet_society", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bid", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "A user outside of the society can make a bid for entry.", + "", + "Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", + "when the bid becomes a member, or if the bid calls `unbid`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `value`: A one time payment the bid would like to receive when joining the society.", + "", + "## Complexity", + "- O(M + B + C + logM + logB + X)", + "\t - B (len of bids)", + " - C (len of candidates)", + " - M (len of members)", + " - X (balance reserve)" + ] + }, + { + "name": "unbid", + "fields": [ + { + "name": "pos", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "A bidder can remove their bid for entry into society.", + "By doing so, they will have their candidate deposit returned or", + "they will unvouch their voucher.", + "", + "Payment: The bid deposit is unreserved if the user made a bid.", + "", + "The dispatch origin for this call must be _Signed_ and a bidder.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who wants to unbid.", + "", + "## Complexity", + "- O(B + X)", + " - B (len of bids)", + " - X (balance unreserve)" + ] + }, + { + "name": "vouch", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + "There is no deposit required to vouch for a new bid, but a member can only vouch for", + "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + "the suspension judgement origin, the member will be banned from vouching again.", + "", + "As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + "be paid as a portion of the reward the member will receive for joining the society.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `who`: The user who you would like to vouch for.", + "- `value`: The total reward to be paid between you and the candidate if they become", + "a member in the society.", + "- `tip`: Your cut of the total `value` payout when the candidate is inducted into", + "the society. Tips larger than `value` will be saturated upon payout.", + "", + "## Complexity", + "- O(M + B + C + logM + logB + X)", + " - B (len of bids)", + " - C (len of candidates)", + " - M (len of members)", + " - X (balance reserve)" + ] + }, + { + "name": "unvouch", + "fields": [ + { + "name": "pos", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "As a vouching member, unvouch a bid. This only works while vouched user is", + "only a bidder (and not a candidate).", + "", + "The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who should be unvouched.", + "", + "## Complexity", + "- O(B)", + " - B (len of bids)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "candidate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "As a member, vote on a candidate.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `candidate`: The candidate that the member would like to bid on.", + "- `approve`: A boolean which says if the candidate should be approved (`true`) or", + " rejected (`false`).", + "", + "## Complexity", + "- O(M + logM + C)", + " - C (len of candidates)", + " - M (len of members)" + ] + }, + { + "name": "defender_vote", + "fields": [ + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 5, + "docs": [ + "As a member, vote on the defender.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `approve`: A boolean which says if the candidate should be", + "approved (`true`) or rejected (`false`).", + "", + "## Complexity", + "- O(M + logM)", + " - M (len of members)" + ] + }, + { + "name": "payout", + "index": 6, + "docs": [ + "Transfer the first matured payout for the sender and remove it from the records.", + "", + "NOTE: This extrinsic needs to be called multiple times to claim multiple matured", + "payouts.", + "", + "Payment: The member will receive a payment equal to their first matured", + "payout to their free balance.", + "", + "The dispatch origin for this call must be _Signed_ and a member with", + "payouts remaining.", + "", + "## Complexity", + "- O(M + logM + P + X)", + " - M (len of members)", + " - P (number of payouts for a particular member)", + " - X (currency transfer call)" + ] + }, + { + "name": "found", + "fields": [ + { + "name": "founder", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "max_members", + "type": 4, + "typeName": "u32" + }, + { + "name": "rules", + "type": 12, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Found the society.", + "", + "This is done as a discrete action in order to allow for the", + "pallet to be included into a running chain and can only be done once.", + "", + "The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + "Parameters:", + "- `founder` - The first member and head of the newly founded society.", + "- `max_members` - The initial max number of members for the society.", + "- `rules` - The rules of this society concerning membership.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "unfound", + "index": 8, + "docs": [ + "Annul the founding of the society.", + "", + "The dispatch origin for this call must be Signed, and the signing account must be both", + "the `Founder` and the `Head`. This implies that it may only be done when there is one", + "member.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "judge_suspended_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "forgive", + "type": 41, + "typeName": "bool" + } + ], + "index": 9, + "docs": [ + "Allow suspension judgement origin to make judgement on a suspended member.", + "", + "If a suspended member is forgiven, we simply add them back as a member, not affecting", + "any of the existing storage items for that member.", + "", + "If a suspended member is rejected, remove all associated storage items, including", + "their payouts, and remove any vouched bids they currently have.", + "", + "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + "Parameters:", + "- `who` - The suspended member to be judged.", + "- `forgive` - A boolean representing whether the suspension judgement origin forgives", + " (`true`) or rejects (`false`) a suspended member.", + "", + "## Complexity", + "- O(M + logM + B)", + " - B (len of bids)", + " - M (len of members)" + ] + }, + { + "name": "judge_suspended_candidate", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "judgement", + "type": 296, + "typeName": "Judgement" + } + ], + "index": 10, + "docs": [ + "Allow suspended judgement origin to make judgement on a suspended candidate.", + "", + "If the judgement is `Approve`, we add them to society as a member with the appropriate", + "payment for joining society.", + "", + "If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", + "to the society treasury, or we ban the voucher from vouching again.", + "", + "If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", + "through the induction process again.", + "", + "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + "Parameters:", + "- `who` - The suspended candidate to be judged.", + "- `judgement` - `Approve`, `Reject`, or `Rebid`.", + "", + "## Complexity", + "- O(M + logM + B + X)", + " - B (len of bids)", + " - M (len of members)", + " - X (balance action)" + ] + }, + { + "name": "set_max_members", + "fields": [ + { + "name": "max", + "type": 4, + "typeName": "u32" + } + ], + "index": 11, + "docs": [ + "Allows root origin to change the maximum number of members in society.", + "Max membership count must be greater than 1.", + "", + "The dispatch origin for this call must be from _ROOT_.", + "", + "Parameters:", + "- `max` - The maximum number of members for the society.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 296, + "type": { + "path": [ + "pallet_society", + "Judgement" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebid", + "index": 0 + }, + { + "name": "Reject", + "index": 1 + }, + { + "name": "Approve", + "index": 2 + } + ] + } + } + } + }, + { + "id": 297, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_recovered", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Send a call through a recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you want to make a call on-behalf-of.", + "- `call`: The call you want to make with the recovered account." + ] + }, + { + "name": "set_recovered", + "fields": [ + { + "name": "lost", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "rescuer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Allow ROOT to bypass the recovery process and set an a rescuer account", + "for a lost account directly.", + "", + "The dispatch origin for this call must be _ROOT_.", + "", + "Parameters:", + "- `lost`: The \"lost account\" to be recovered.", + "- `rescuer`: The \"rescuer account\" which can call as the lost account." + ] + }, + { + "name": "create_recovery", + "fields": [ + { + "name": "friends", + "type": 83, + "typeName": "Vec" + }, + { + "name": "threshold", + "type": 93, + "typeName": "u16" + }, + { + "name": "delay_period", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 2, + "docs": [ + "Create a recovery configuration for your account. This makes your account recoverable.", + "", + "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + "will be reserved for storing the recovery configuration. This deposit is returned", + "in full when the user calls `remove_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + "- `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + "- `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered." + ] + }, + { + "name": "initiate_recovery", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Initiate the process for recovering a recoverable account.", + "", + "Payment: `RecoveryDeposit` balance will be reserved for initiating the", + "recovery process. This deposit will always be repatriated to the account", + "trying to be recovered. See `close_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration)." + ] + }, + { + "name": "vouch_recovery", + "fields": [ + { + "name": "lost", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "rescuer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Allow a \"friend\" of a recoverable account to vouch for an active recovery", + "process for that account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + "for the recoverable account.", + "", + "Parameters:", + "- `lost`: The lost account that you want to recover.", + "- `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + "The combination of these two parameters must point to an active recovery", + "process." + ] + }, + { + "name": "claim_recovery", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Allow a successful rescuer to claim their recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + "who has successfully completed the account recovery process: collected", + "`threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + "Parameters:", + "- `account`: The lost account that you want to claim has been successfully recovered by", + " you." + ] + }, + { + "name": "close_recovery", + "fields": [ + { + "name": "rescuer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 6, + "docs": [ + "As the controller of a recoverable account, close an active recovery", + "process for your account.", + "", + "Payment: By calling this function, the recoverable account will receive", + "the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account with an active recovery process for it.", + "", + "Parameters:", + "- `rescuer`: The account trying to rescue this recoverable account." + ] + }, + { + "name": "remove_recovery", + "index": 7, + "docs": [ + "Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + "NOTE: The user must make sure to call `close_recovery` on all active", + "recovery attempts before calling this function else it will fail.", + "", + "Payment: By calling this function the recoverable account will unreserve", + "their recovery configuration deposit.", + "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account (i.e. has a recovery configuration)." + ] + }, + { + "name": "cancel_recovered", + "fields": [ + { + "name": "account", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 8, + "docs": [ + "Cancel the ability to use `as_recovered` for `account`.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you are able to call on-behalf-of." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 298, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "schedule", + "type": 299, + "typeName": "VestingInfo, T::BlockNumber>" + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "schedule", + "type": 299, + "typeName": "VestingInfo, T::BlockNumber>" + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32" + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 299, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance" + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance" + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 300, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName" + }, + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName" + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName" + }, + { + "name": "after", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 301, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 87 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 87 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 302, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "initialize_pallet", + "fields": [ + { + "name": "new_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "witness_count", + "type": 37, + "typeName": "Option" + } + ], + "index": 0, + "docs": [ + "Initializes the pallet by writing into `TrashData`.", + "", + "Only callable by Root. A good default for `trash_count` is `5_000`." + ] + }, + { + "name": "set_compute", + "fields": [ + { + "name": "compute", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 1, + "docs": [ + "Set the `Compute` storage value that determines how much of the", + "block's weight `ref_time` to use during `on_idle`.", + "", + "Only callable by Root." + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "storage", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 2, + "docs": [ + "Set the `Storage` storage value that determines the PoV size usage", + "for each block.", + "", + "Only callable by Root." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 303, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 304, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "force_proxy_type", + "type": 305, + "typeName": "Option" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 93, + "typeName": "u16" + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "T::ProxyType" + }, + { + "name": "index", + "type": 93, + "typeName": "u16" + }, + { + "name": "height", + "type": 138, + "typeName": "T::BlockNumber" + }, + { + "name": "ext_index", + "type": 138, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `pure` to create this account.", + "- `index`: The disambiguation index originally passed to `pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `pure`.", + "- `height`: The height of the chain when the call to `pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "CallHashOf" + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "CallHashOf" + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "CallHashOf" + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "real", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "force_proxy_type", + "type": 305, + "typeName": "Option" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 305, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 92 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 92 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 306, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 83, + "typeName": "Vec" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 93, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 83, + "typeName": "Vec" + }, + { + "name": "maybe_timepoint", + "type": 307, + "typeName": "Option>" + }, + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "max_weight", + "type": 8, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 93, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 83, + "typeName": "Vec" + }, + { + "name": "maybe_timepoint", + "type": 307, + "typeName": "Option>" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]" + }, + { + "name": "max_weight", + "type": 8, + "typeName": "Weight" + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 93, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 83, + "typeName": "Vec" + }, + { + "name": "timepoint", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]" + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 307, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 95 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 95 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 308, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "description", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "curator", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "fee", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Assign a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "remark", + "type": 12, + "typeName": "Vec" + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 309, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_awesome", + "fields": [ + { + "name": "reason", + "type": 12, + "typeName": "Vec" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'" + ] + }, + { + "name": "retract_tip", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + "If successful, the original deposit will be unreserved.", + "", + "The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + "must have been reported by the signing account through `report_awesome` (and not", + "through `tip_new`).", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "Emits `TipRetracted` if successful.", + "", + "## Complexity", + "- `O(1)`", + " - Depends on the length of `T::Hash` which is fixed." + ] + }, + { + "name": "tip_new", + "fields": [ + { + "name": "reason", + "type": 12, + "typeName": "Vec" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "tip_value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Give a tip for something new; no finder's fee will be taken.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of", + " `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`" + ] + }, + { + "name": "tip", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "tip_value", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "Declare a tip value for an already-open tip.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + "has started.", + "", + "## Complexity", + "- `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`, insert", + " tip and check closing, `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`." + ] + }, + { + "name": "close_tip", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 4, + "docs": [ + "Close and payout a tip.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The tip identified by `hash` must have finished its countdown period.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "## Complexity", + "- : `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`. `T`", + " is charged as upper bound given by `ContainsLengthBound`. The actual cost depends on", + " the implementation of `T::Tippers`." + ] + }, + { + "name": "slash_tip", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Remove and slash an already-open tip.", + "", + "May only be called from `T::RejectOrigin`.", + "", + "As a result, the finder is slashed and the deposits are lost.", + "", + "Emits `TipSlashed` if successful.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 310, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "is_sufficient", + "type": 41, + "typeName": "bool" + }, + { + "name": "min_balance", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "The asset class must be frozen before calling `start_destroy`." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "source", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers from an account.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "name", + "type": 12, + "typeName": "Vec" + }, + { + "name": "symbol", + "type": 12, + "typeName": "Vec" + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8" + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "name", + "type": 12, + "typeName": "Vec" + }, + { + "name": "symbol", + "type": 12, + "typeName": "Vec" + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "min_balance", + "type": 76, + "typeName": "T::Balance" + }, + { + "name": "is_sufficient", + "type": 41, + "typeName": "bool" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "destination", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 76, + "typeName": "T::Balance" + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 138, + "typeName": "T::AssetIdParameter" + }, + { + "name": "allow_burn", + "type": 41, + "typeName": "bool" + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for the account to be created.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "Emits `Refunded` event when successful." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 311, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "buy_ticket", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Buy a ticket to enter the lottery.", + "", + "This extrinsic acts as a passthrough function for `call`. In all", + "situations where `call` alone would succeed, this extrinsic should", + "succeed.", + "", + "If `call` is successful, then we will attempt to purchase a ticket,", + "which may fail silently. To detect success of a ticket purchase, you", + "should listen for the `TicketBought` event.", + "", + "This extrinsic must be called by a signed origin." + ] + }, + { + "name": "set_calls", + "fields": [ + { + "name": "calls", + "type": 127, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 1, + "docs": [ + "Set calls in storage which can be used to purchase a lottery ticket.", + "", + "This function only matters if you use the `ValidateCall` implementation", + "provided by this pallet, which uses storage to determine the valid calls.", + "", + "This extrinsic must be called by the Manager origin." + ] + }, + { + "name": "start_lottery", + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "length", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "repeat", + "type": 41, + "typeName": "bool" + } + ], + "index": 2, + "docs": [ + "Start a lottery using the provided configuration.", + "", + "This extrinsic must be called by the `ManagerOrigin`.", + "", + "Parameters:", + "", + "* `price`: The cost of a single ticket.", + "* `length`: How long the lottery should run for starting at the current block.", + "* `delay`: How long after the lottery end we should wait before picking a winner.", + "* `repeat`: If the lottery should repeat when completed." + ] + }, + { + "name": "stop_repeat", + "index": 3, + "docs": [ + "If a lottery is repeating, you can use this to stop the repeat.", + "The lottery will continue to run to completion.", + "", + "This extrinsic must be called by the `ManagerOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 312, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_bid", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Place a bid.", + "", + "Origin must be Signed, and account must have at least `amount` in free balance.", + "", + "- `amount`: The amount of the bid; these funds will be reserved, and if/when", + " consolidated, removed. Must be at least `MinBid`.", + "- `duration`: The number of periods before which the newly consolidated bid may be", + " thawed. Must be greater than 1 and no more than `QueueCount`.", + "", + "Complexities:", + "- `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Retract a previously placed bid.", + "", + "Origin must be Signed, and the account should have previously issued a still-active bid", + "of `amount` for `duration`.", + "", + "- `amount`: The amount of the previous bid.", + "- `duration`: The duration of the previous bid." + ] + }, + { + "name": "fund_deficit", + "index": 2, + "docs": [ + "Ensure we have sufficient funding for all potential payouts.", + "", + "- `origin`: Must be accepted by `FundOrigin`." + ] + }, + { + "name": "thaw_private", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "ReceiptIndex" + }, + { + "name": "maybe_proportion", + "type": 313, + "typeName": "Option" + } + ], + "index": 3, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as", + " well as any fungible counterpart.", + "- `index`: The index of the receipt.", + "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If", + " `None`, then all of it should be." + ] + }, + { + "name": "thaw_communal", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "ReceiptIndex" + } + ], + "index": 4, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart", + " for receipt `index`.", + "- `index`: The index of the receipt." + ] + }, + { + "name": "communify", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "ReceiptIndex" + } + ], + "index": 5, + "docs": [ + "Make a private receipt communal and create fungible counterparts for its owner." + ] + }, + { + "name": "privatize", + "fields": [ + { + "name": "index", + "type": 138, + "typeName": "ReceiptIndex" + } + ], + "index": 6, + "docs": [ + "Make a communal receipt private and burn fungible counterparts from its owner." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 313, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 102 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 102 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 314, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `collection`: The identifier of the new collection. This must not be currently in use.", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "free_holding", + "type": 41, + "typeName": "bool" + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `collection`: The identifier of the new item. This must not be currently in use.", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions", + "over this item, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "witness", + "type": 315, + "typeName": "DestroyWitness" + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: The item value of the item to be minted.", + "- `beneficiary`: The initial owner of the minted item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "check_owner", + "type": 316, + "typeName": "Option>" + } + ], + "index": 4, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item of the item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Move an item from the sender account to another.", + "", + "This resets the approved account of the item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item of the item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "items", + "type": 105, + "typeName": "Vec" + } + ], + "index": 6, + "docs": [ + "Reevaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown of the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 7, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be frozen.", + "- `item`: The item of the item to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 8, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be thawed.", + "- `item`: The item of the item to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 9, + "docs": [ + "Disallow further unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "", + "Emits `CollectionFrozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 10, + "docs": [ + "Re-allow unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Admin of the `collection`.", + "", + "- `collection`: The collection to be thawed.", + "", + "Emits `CollectionThawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be", + "either the owner of the `item` or the admin of the collection.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item of the item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "", + "Important NOTE: The `approved` account gets reset after each transfer.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "maybe_check_delegate", + "type": 316, + "typeName": "Option>" + } + ], + "index": 14, + "docs": [ + "Cancel the prior approval for the transfer of an item by a delegate.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the item of whose approval will be cancelled.", + "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", + " which permission of transfer is delegated.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_item_status", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "free_holding", + "type": 41, + "typeName": "bool" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 15, + "docs": [ + "Alter the attributes of a given item.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the item.", + "- `owner`: The new Owner of this item.", + "- `issuer`: The new Issuer of this item.", + "- `admin`: The new Admin of this item.", + "- `freezer`: The new Freezer of this item.", + "- `free_holding`: Whether a deposit is taken for holding an item of this collection.", + "- `is_frozen`: Whether this collection is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `ItemStatusChanged` with the identity of the item.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + } + ], + "index": 16, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + } + ], + "index": 17, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 18, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 19, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ], + "index": 20, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 21, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 37, + "typeName": "Option" + } + ], + "index": 22, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 23, + "docs": [ + "Set the maximum amount of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Note: This function can only succeed once per collection.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum amount of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 317, + "typeName": "Option>" + }, + { + "name": "whitelisted_buyer", + "type": 316, + "typeName": "Option>" + } + ], + "index": 24, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice" + } + ], + "index": 25, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 315, + "type": { + "path": [ + "pallet_uniques", + "types", + "DestroyWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 138, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 138, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 138, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 316, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 147 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 147 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 317, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 6 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 318, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "config", + "type": 319, + "typeName": "CollectionConfigFor" + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must be Signed and the sender must have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "config", + "type": 319, + "typeName": "CollectionConfigFor" + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions over this item, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "witness", + "type": 326, + "typeName": "DestroyWitness" + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "mint_to", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "witness_data", + "type": 327, + "typeName": "Option>" + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned", + " item_id from that collection needs to be provided within the witness data object.", + "", + "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "mint_to", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "item_config", + "type": 329, + "typeName": "ItemConfig" + } + ], + "index": 4, + "docs": [ + "Mint an item of a particular collection from a privileged origin.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `item_config`: A config of the new item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "check_owner", + "type": 316, + "typeName": "Option>" + } + ], + "index": 5, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "dest", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 6, + "docs": [ + "Move an item from the sender account to another.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "items", + "type": 105, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Re-evaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection of the items to be reevaluated.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown or the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "lock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 8, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become non-transferable.", + "", + "Emits `ItemTransferLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "unlock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 9, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become transferable.", + "", + "Emits `ItemTransferUnlocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "lock_settings", + "type": 320, + "typeName": "CollectionSettings" + } + ], + "index": 10, + "docs": [ + "Disallows specified settings for the whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be locked.", + "- `lock_settings`: The settings to be locked.", + "", + "Note: it's possible to only lock(set) the setting, but not to unset it.", + "Emits `CollectionLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_owner", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `owner`: The new Owner of this collection.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_config", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "config", + "type": 319, + "typeName": "CollectionConfigFor" + } + ], + "index": 14, + "docs": [ + "Change the config of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `config`: The new config of this collection.", + "", + "Emits `CollectionConfigChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "maybe_deadline", + "type": 37, + "typeName": "Option<::BlockNumber>" + } + ], + "index": 15, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the", + "\tnumber of blocks after which the approval will expire", + "", + "Emits `TransferApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 16, + "docs": [ + "Cancel one of the transfer approvals for a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the collection of whose approval will be cancelled.", + "- `delegate`: The account that is going to loose their approval.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_all_transfer_approvals", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 17, + "docs": [ + "Cancel all the approvals of a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approvals will be cleared.", + "- `item`: The item of the collection of whose approvals will be cleared.", + "", + "Emits `AllApprovalsCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_item_properties", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "lock_metadata", + "type": 41, + "typeName": "bool" + }, + { + "name": "lock_attributes", + "type": 41, + "typeName": "bool" + } + ], + "index": 18, + "docs": [ + "Disallows changing the metadata or attributes of the item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "- `collection`: The collection if the `item`.", + "- `item`: An item to be locked.", + "- `lock_metadata`: Specifies whether the metadata should be locked.", + "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace", + " should be locked.", + "", + "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace", + "only. When the metadata or attributes are locked, it won't be possible the unlock them.", + "", + "Emits `ItemPropertiesLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + } + ], + "index": 19, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be Signed and must conform to the namespace ruleset:", + "- `CollectionOwner` namespace could be modified by the `collection` owner only;", + "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`", + " should be set in that case;", + "- `Account(AccountId)` namespace could be modified only when the `origin` was given a", + " permission to do so;", + "", + "The funds of `origin` are reserved according to the formula:", + "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_attribute", + "fields": [ + { + "name": "set_as", + "type": 40, + "typeName": "Option" + }, + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 107, + "typeName": "BoundedVec" + } + ], + "index": 20, + "docs": [ + "Force-set an attribute for a collection or item.", + "", + "Origin must be `ForceOrigin`.", + "", + "If the attribute already exists and it was set by another account, the deposit", + "will be returned to the previous owner.", + "", + "- `set_as`: An optional owner of the attribute.", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + }, + { + "name": "key", + "type": 106, + "typeName": "BoundedVec" + } + ], + "index": 21, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "attribute.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_item_attributes", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 22, + "docs": [ + "Approve item's attributes to be changed by a delegated third-party account.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: A collection of the item.", + "- `item`: The item that holds attributes.", + "- `delegate`: The account to delegate permission to change attributes of the item.", + "", + "Emits `ItemAttributesApprovalAdded` on success." + ] + }, + { + "name": "cancel_item_attributes_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "witness", + "type": 330, + "typeName": "CancelAttributesApprovalWitness" + } + ], + "index": 23, + "docs": [ + "Cancel the previously provided approval to change item's attributes.", + "All the previously set attributes by the `delegate` will be removed.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: Collection that the item is contained within.", + "- `item`: The item that holds attributes.", + "- `delegate`: The previously approved account to remove.", + "", + "Emits `ItemAttributesApprovalRemoved` on success." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ], + "index": 24, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `ItemMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 25, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `ItemMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ], + "index": 26, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 27, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 37, + "typeName": "Option" + } + ], + "index": 28, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 29, + "docs": [ + "Set the maximum number of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum number of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "update_mint_settings", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "mint_settings", + "type": 322, + "typeName": "MintSettings,::BlockNumber, T::\nCollectionId,>" + } + ], + "index": 30, + "docs": [ + "Update mint settings.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `mint_settings`: The new mint settings.", + "", + "Emits `CollectionMintSettingsUpdated` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 317, + "typeName": "Option>" + }, + { + "name": "whitelisted_buyer", + "type": 316, + "typeName": "Option>" + } + ], + "index": 31, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice" + } + ], + "index": 32, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + }, + { + "name": "pay_tips", + "fields": [ + { + "name": "tips", + "type": 331, + "typeName": "BoundedVec, T::MaxTips>" + } + ], + "index": 33, + "docs": [ + "Allows to pay the tips.", + "", + "Origin must be Signed.", + "", + "- `tips`: Tips array.", + "", + "Emits `TipSent` on every tip transfer." + ] + }, + { + "name": "create_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_desired_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "maybe_price", + "type": 110, + "typeName": "Option>>" + }, + { + "name": "duration", + "type": 4, + "typeName": "::BlockNumber" + } + ], + "index": 34, + "docs": [ + "Register a new atomic swap, declaring an intention to send an `item` in exchange for", + "`desired_item` from origin to target on the current blockchain.", + "The target can execute the swap during the specified `duration` of blocks (if set).", + "Additionally, the price could be set for the desired `item`.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "- `desired_collection`: The collection of the desired item.", + "- `desired_item`: The desired item an owner wants to receive.", + "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`.", + "- `duration`: A deadline for the swap. Specified by providing the number of blocks", + "\tafter which the swap will expire.", + "", + "Emits `SwapCreated` on success." + ] + }, + { + "name": "cancel_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 35, + "docs": [ + "Cancel an atomic swap.", + "", + "Origin must be Signed.", + "Origin must be an owner of the `item` if the deadline hasn't expired.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "", + "Emits `SwapCancelled` on success." + ] + }, + { + "name": "claim_swap", + "fields": [ + { + "name": "send_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "send_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "receive_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "receive_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "witness_price", + "type": 110, + "typeName": "Option>>" + } + ], + "index": 36, + "docs": [ + "Claim an atomic swap.", + "This method executes a pending swap, that was created by a counterpart before.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `send_collection`: The collection of the item to be sent.", + "- `send_item`: The item to be sent.", + "- `receive_collection`: The collection of the item to be received.", + "- `receive_item`: The item to be received.", + "- `witness_price`: A price that was previously agreed on.", + "", + "Emits `SwapClaimed` on success." + ] + }, + { + "name": "mint_pre_signed", + "fields": [ + { + "name": "mint_data", + "type": 334, + "typeName": "PreSignedMintOf" + }, + { + "name": "signature", + "type": 335, + "typeName": "T::OffchainSignature" + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 37, + "docs": [ + "Mint an item by providing the pre-signed approval.", + "", + "Origin must be Signed.", + "", + "- `mint_data`: The pre-signed approval that consists of the information about the item,", + " its metadata, attributes, who can mint it (`None` for anyone) and until what block", + " number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an owner of the collection.", + "", + "Emits `Issued` on success.", + "Emits `AttributeSet` if the attributes were provided.", + "Emits `ItemMetadataSet` if the metadata was not empty." + ] + }, + { + "name": "set_attributes_pre_signed", + "fields": [ + { + "name": "data", + "type": 338, + "typeName": "PreSignedAttributesOf" + }, + { + "name": "signature", + "type": 335, + "typeName": "T::OffchainSignature" + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 38, + "docs": [ + "Set attributes for an item by providing the pre-signed approval.", + "", + "Origin must be Signed and must be an owner of the `data.item`.", + "", + "- `data`: The pre-signed approval that consists of the information about the item,", + " attributes to update and until what block number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an owner of the collection for the", + " `CollectionOwner` namespace.", + "", + "Emits `AttributeSet` for each provided attribute.", + "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before.", + "Emits `PreSignedAttributesSet` on success." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 319, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionConfig" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 320, + "typeName": "CollectionSettings" + }, + { + "name": "max_supply", + "type": 37, + "typeName": "Option" + }, + { + "name": "mint_settings", + "type": 322, + "typeName": "MintSettings" + } + ] + } + } + } + }, + { + "id": 320, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 321 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "CollectionSetting" + } + ] + } + } + } + }, + { + "id": 321, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionSetting" + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransferableItems", + "index": 1 + }, + { + "name": "UnlockedMetadata", + "index": 2 + }, + { + "name": "UnlockedAttributes", + "index": 4 + }, + { + "name": "UnlockedMaxSupply", + "index": 8 + }, + { + "name": "DepositRequired", + "index": 16 + } + ] + } + } + } + }, + { + "id": 322, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintSettings" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mint_type", + "type": 323, + "typeName": "MintType" + }, + { + "name": "price", + "type": 317, + "typeName": "Option" + }, + { + "name": "start_block", + "type": 37, + "typeName": "Option" + }, + { + "name": "end_block", + "type": 37, + "typeName": "Option" + }, + { + "name": "default_item_settings", + "type": 324, + "typeName": "ItemSettings" + } + ] + } + } + } + }, + { + "id": 323, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintType" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "index": 0 + }, + { + "name": "Public", + "index": 1 + }, + { + "name": "HolderOf", + "fields": [ + { + "type": 4, + "typeName": "CollectionId" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 324, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 325 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "ItemSetting" + } + ] + } + } + } + }, + { + "id": 325, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemSetting" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Transferable", + "index": 1 + }, + { + "name": "UnlockedMetadata", + "index": 2 + }, + { + "name": "UnlockedAttributes", + "index": 4 + } + ] + } + } + } + }, + { + "id": 326, + "type": { + "path": [ + "pallet_nfts", + "types", + "DestroyWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 138, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 138, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 138, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 327, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 328 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 328 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 328, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintWitness" + ], + "params": [ + { + "name": "ItemId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner_of_item", + "type": 4, + "typeName": "ItemId" + } + ] + } + } + } + }, + { + "id": 329, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemConfig" + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 324, + "typeName": "ItemSettings" + } + ] + } + } + } + }, + { + "id": 330, + "type": { + "path": [ + "pallet_nfts", + "types", + "CancelAttributesApprovalWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "account_attributes", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 331, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 332 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 333, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 332, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemTip" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId" + }, + { + "name": "receiver", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "Amount" + } + ] + } + } + } + }, + { + "id": 333, + "type": { + "def": { + "sequence": { + "type": 332 + } + } + } + }, + { + "id": 334, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedMint" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId" + }, + { + "name": "attributes", + "type": 123, + "typeName": "Vec<(Vec, Vec)>" + }, + { + "name": "metadata", + "type": 12, + "typeName": "Vec" + }, + { + "name": "only_account", + "type": 40, + "typeName": "Option" + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline" + } + ] + } + } + } + }, + { + "id": 335, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "type": 235, + "typeName": "ed25519::Signature" + } + ], + "index": 0 + }, + { + "name": "Sr25519", + "fields": [ + { + "type": 253, + "typeName": "sr25519::Signature" + } + ], + "index": 1 + }, + { + "name": "Ecdsa", + "fields": [ + { + "type": 336, + "typeName": "ecdsa::Signature" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 336, + "type": { + "path": [ + "sp_core", + "ecdsa", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 337, + "typeName": "[u8; 65]" + } + ] + } + } + } + }, + { + "id": 337, + "type": { + "def": { + "array": { + "len": 65, + "type": 2 + } + } + } + }, + { + "id": 338, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId" + }, + { + "name": "attributes", + "type": 123, + "typeName": "Vec<(Vec, Vec)>" + }, + { + "name": "namespace", + "type": 109, + "typeName": "AttributeNamespace" + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline" + } + ] + } + } + } + }, + { + "id": 339, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "data", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Index and store data off chain. Minimum data size is 1 bytes, maximum is", + "`MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`", + "is called.", + "## Complexity", + "- O(n*log(n)) of data size, as all data is pushed to an in-memory trie." + ] + }, + { + "name": "renew", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Renew previously stored data. Parameters are the block number that contains", + "previous `store` or `renew` call and transaction index within that block.", + "Transaction index is emitted in the `Stored` or `Renewed` event.", + "Applies same fees as `store`.", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "check_proof", + "fields": [ + { + "name": "proof", + "type": 340, + "typeName": "TransactionStorageProof" + } + ], + "index": 2, + "docs": [ + "Check storage proof for block number `block_number() - StoragePeriod`.", + "If such block does not exist the proof is expected to be `None`.", + "## Complexity", + "- Linear w.r.t the number of indexed transactions in the proved block for random", + " probing.", + "There's a DB read for each transaction." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 340, + "type": { + "path": [ + "sp_transaction_storage_proof", + "TransactionStorageProof" + ], + "def": { + "composite": { + "fields": [ + { + "name": "chunk", + "type": 12, + "typeName": "Vec" + }, + { + "name": "proof", + "type": 125, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 341, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`.", + "", + "Only works if", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 342, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 343, + "typeName": "Option" + } + ], + "index": 0, + "docs": [ + "Control the automatic migration.", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 344, + "typeName": "MigrationLimits" + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32" + }, + { + "name": "witness_task", + "type": 345, + "typeName": "MigrationTask" + } + ], + "index": 1, + "docs": [ + "Continue the migration for the given `limits`.", + "", + "The dispatch origin of this call can be any signed account.", + "", + "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,", + "Upon successful execution, the transaction fee is returned.", + "", + "The (potentially over-estimated) of the byte length of all the data read must be", + "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing", + "that executing the current `MigrationTask` with the given `limits` will not exceed", + "`real_size_upper` bytes of read data.", + "", + "The `witness_task` is merely a helper to prevent the caller from being slashed or", + "generally trigger a migration that they do not intend. This parameter is just a message", + "from caller, saying that they believed `witness_task` was the last state of the", + "migration, and they only wish for their transaction to do anything, if this assumption", + "holds. In case `witness_task` does not match, the transaction fails.", + "", + "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the", + "recommended way of doing this is to pass a `limit` that only bounds `count`, as the", + "`size` limit can always be overwritten." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 125, + "typeName": "Vec>" + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Migrate the list of top keys by iterating each of them one by one.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 12, + "typeName": "Vec" + }, + { + "name": "child_keys", + "type": 125, + "typeName": "Vec>" + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "Migrate the list of child keys by iterating each of them one by one.", + "", + "All of the given child keys must be present under one `child_root`.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 344, + "typeName": "MigrationLimits" + } + ], + "index": 4, + "docs": [ + "Set the maximum limit of the signed migration." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 346, + "typeName": "ProgressOf" + }, + { + "name": "progress_child", + "type": 346, + "typeName": "ProgressOf" + } + ], + "index": 5, + "docs": [ + "Forcefully set the progress the running migration.", + "", + "This is only useful in one case: the next key to migrate is too big to be migrated with", + "a signed account, in a parachain context, and we simply want to skip it. A reasonable", + "example of this would be `:code:`, which is both very expensive to migrate, and commonly", + "used, so probably it is already migrated.", + "", + "In case you mess things up, you can also, in principle, use this to reset the migration", + "process." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 343, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 344 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 344 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 344, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32" + }, + { + "name": "item", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 345, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 346, + "typeName": "ProgressOf" + }, + { + "name": "progress_child", + "type": 346, + "typeName": "ProgressOf" + }, + { + "name": "size", + "type": 4, + "typeName": "u32" + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32" + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 346, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "index": 0 + }, + { + "name": "LastKey", + "fields": [ + { + "type": 347, + "typeName": "BoundedVec" + } + ], + "index": 1 + }, + { + "name": "Complete", + "index": 2 + } + ] + } + } + } + }, + { + "id": 347, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 348, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "value", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "description", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "curator", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "fee", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 138, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 138, + "typeName": "BountyIndex" + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 349, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 128, + "typeName": "Box>" + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + }, + { + "name": "enactment_moment", + "type": 350, + "typeName": "DispatchTime" + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf" + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "maybe_hash", + "type": 221, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 350, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 0 + }, + { + "name": "After", + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 351, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "remark", + "type": 12, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Index and store data off chain." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 352, + "type": { + "path": [ + "pallet_root_testing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fill_block", + "fields": [ + { + "name": "ratio", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 0, + "docs": [ + "A dispatch that will fill the block weight up to the given ratio." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 353, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 138, + "typeName": "PollIndexOf" + }, + { + "name": "vote", + "type": 354, + "typeName": "AccountVote>" + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 93, + "typeName": "ClassOf" + }, + { + "name": "to", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "conviction", + "type": 356, + "typeName": "Conviction" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 93, + "typeName": "ClassOf" + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 93, + "typeName": "ClassOf" + }, + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 357, + "typeName": "Option>" + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf" + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "class", + "type": 93, + "typeName": "ClassOf" + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf" + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 354, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 355, + "typeName": "Vote" + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance" + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 355, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2 + } + ] + } + } + } + }, + { + "id": 356, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Locked1x", + "index": 1 + }, + { + "name": "Locked2x", + "index": 2 + }, + { + "name": "Locked3x", + "index": 3 + }, + { + "name": "Locked4x", + "index": 4 + }, + { + "name": "Locked5x", + "index": 5 + }, + { + "name": "Locked6x", + "index": 6 + } + ] + } + } + } + }, + { + "id": 357, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 93 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 93 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 358, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + } + ], + "index": 0 + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + } + ], + "index": 1 + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32" + }, + { + "name": "call_weight_witness", + "type": 8, + "typeName": "Weight" + } + ], + "index": 2 + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 121, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3 + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 359, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 83, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 40, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 138, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 8, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 360, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 138, + "typeName": "u32" + }, + { + "name": "proposal", + "type": 121, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Add a new proposal to be voted on.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 41, + "typeName": "bool" + } + ], + "index": 1, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 223, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Close a vote that is either approved, disapproved, or whose voting period has ended.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "init_members", + "fields": [ + { + "name": "fellows", + "type": 83, + "typeName": "Vec" + }, + { + "name": "allies", + "type": 83, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Initialize the Alliance, onboard fellows and allies.", + "", + "The Alliance must be empty, and the call must provide some founding members.", + "", + "Must be called by the Root origin." + ] + }, + { + "name": "disband", + "fields": [ + { + "name": "witness", + "type": 361, + "typeName": "DisbandWitness" + } + ], + "index": 4, + "docs": [ + "Disband the Alliance, remove all active members and unreserve deposits.", + "", + "Witness data must be set." + ] + }, + { + "name": "set_rule", + "fields": [ + { + "name": "rule", + "type": 362, + "typeName": "Cid" + } + ], + "index": 5, + "docs": [ + "Set a new IPFS CID to the alliance rule." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "announcement", + "type": 362, + "typeName": "Cid" + } + ], + "index": 6, + "docs": [ + "Make an announcement of a new IPFS CID about alliance issues." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "announcement", + "type": 362, + "typeName": "Cid" + } + ], + "index": 7, + "docs": [ + "Remove an announcement." + ] + }, + { + "name": "join_alliance", + "index": 8, + "docs": [ + "Submit oneself for candidacy. A fixed deposit is reserved." + ] + }, + { + "name": "nominate_ally", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 9, + "docs": [ + "A Fellow can nominate someone to join the alliance as an Ally. There is no deposit", + "required from the nominator or nominee." + ] + }, + { + "name": "elevate_ally", + "fields": [ + { + "name": "ally", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 10, + "docs": [ + "Elevate an Ally to Fellow." + ] + }, + { + "name": "give_retirement_notice", + "index": 11, + "docs": [ + "As a member, give a retirement notice and start a retirement period required to pass in", + "order to retire." + ] + }, + { + "name": "retire", + "index": 12, + "docs": [ + "As a member, retire from the Alliance and unreserve the deposit.", + "", + "This can only be done once you have called `give_retirement_notice` and the", + "`RetirementPeriod` has passed." + ] + }, + { + "name": "kick_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Kick a member from the Alliance and slash its deposit." + ] + }, + { + "name": "add_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 366, + "typeName": "Vec>" + } + ], + "index": 14, + "docs": [ + "Add accounts or websites to the list of unscrupulous items." + ] + }, + { + "name": "remove_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 366, + "typeName": "Vec>" + } + ], + "index": 15, + "docs": [ + "Deem some items no longer unscrupulous." + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 138, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 8, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 138, + "typeName": "u32" + } + ], + "index": 16, + "docs": [ + "Close a vote that is either approved, disapproved, or whose voting period has ended.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "abdicate_fellow_status", + "index": 17, + "docs": [ + "Abdicate one's position as a voting member and just be an Ally. May be used by Fellows", + "who do not want to leave the Alliance but do not have the capacity to participate", + "operationally for some time." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 361, + "type": { + "path": [ + "pallet_alliance", + "types", + "DisbandWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "fellow_members", + "type": 138, + "typeName": "u32" + }, + { + "name": "ally_members", + "type": 138, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 362, + "type": { + "path": [ + "pallet_alliance", + "types", + "Cid" + ], + "def": { + "composite": { + "fields": [ + { + "name": "version", + "type": 363, + "typeName": "Version" + }, + { + "name": "codec", + "type": 10, + "typeName": "u64" + }, + { + "name": "hash", + "type": 364, + "typeName": "Multihash" + } + ] + } + } + } + }, + { + "id": 363, + "type": { + "path": [ + "pallet_alliance", + "types", + "Version" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "index": 0 + }, + { + "name": "V1", + "index": 1 + } + ] + } + } + } + }, + { + "id": 364, + "type": { + "path": [ + "pallet_alliance", + "types", + "Multihash" + ], + "def": { + "composite": { + "fields": [ + { + "name": "code", + "type": 10, + "typeName": "u64" + }, + { + "name": "digest", + "type": 365, + "typeName": "BoundedVec>" + } + ] + } + } + } + }, + { + "id": 365, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 366, + "type": { + "def": { + "sequence": { + "type": 367 + } + } + } + }, + { + "id": 367, + "type": { + "path": [ + "pallet_alliance", + "UnscrupulousItem" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Url", + "type": 368 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AccountId", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + } + ], + "index": 0 + }, + { + "name": "Website", + "fields": [ + { + "type": 368, + "typeName": "Url" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 368, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 369, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is transferred from the member to the", + "pools account and immediately increases the pools bond.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 370, + "typeName": "BondExtra>" + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is there first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to caim rewards on bahalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "unbonding_points", + "type": 76, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if their are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "If the target is the depositor, the pool will be destroyed." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "root", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "nominator", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "bouncer", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferrable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "root", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "nominator", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "bouncer", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "validators", + "type": 83, + "typeName": "Vec" + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "state", + "type": 371, + "typeName": "PoolState" + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "metadata", + "type": 12, + "typeName": "Vec" + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role", + "of the pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 372, + "typeName": "ConfigOp>" + }, + { + "name": "min_create_bond", + "type": 372, + "typeName": "ConfigOp>" + }, + { + "name": "max_pools", + "type": 373, + "typeName": "ConfigOp" + }, + { + "name": "max_members", + "type": 373, + "typeName": "ConfigOp" + }, + { + "name": "max_members_per_pool", + "type": 373, + "typeName": "ConfigOp" + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "Root.", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "new_root", + "type": 374, + "typeName": "ConfigOp" + }, + { + "name": "new_nominator", + "type": 374, + "typeName": "ConfigOp" + }, + { + "name": "new_bouncer", + "type": 374, + "typeName": "ConfigOp" + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "extra", + "type": 370, + "typeName": "BondExtra>" + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessAll` or `PermissionlessCompound`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 375, + "typeName": "ClaimPermission" + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "By default, this is `Permissioned`, which implies only the pool member themselves can", + "claim their pending rewards. If a pool member wishes so, they can set this to", + "`PermissionlessAll` to allow any account to claim their rewards and bond extra to the", + "pool.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `actor` - Account to claim reward. // improve this" + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessAll` or `PermissionlessWithdraw` in order", + "for this call to be successful." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 370, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Rewards", + "index": 1 + } + ] + } + } + } + }, + { + "id": 371, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "index": 0 + }, + { + "name": "Blocked", + "index": 1 + }, + { + "name": "Destroying", + "index": 2 + } + ] + } + } + } + }, + { + "id": 372, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 6, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 373, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 4, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 374, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 0, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 375, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "index": 0 + }, + { + "name": "PermissionlessCompound", + "index": 1 + }, + { + "name": "PermissionlessWithdraw", + "index": 2 + }, + { + "name": "PermissionlessAll", + "index": 3 + } + ] + } + } + } + }, + { + "id": 376, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 128, + "typeName": "Box>" + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf" + }, + { + "name": "enactment_moment", + "type": 350, + "typeName": "DispatchTime" + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf" + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "maybe_hash", + "type": 221, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 377, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Introduce a new member.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of non-member which will become a member.", + "- `rank`: The rank to give the new member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "promote_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Increment the rank of an existing member by one.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of existing member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "demote_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Decrement the rank of an existing member by one. If the member is already at rank zero,", + "then they are removed entirely.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "", + "Weight: `O(1)`, less if the member's index is highest in its rank." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 147, + "typeName": "AccountIdLookupOf" + }, + { + "name": "min_rank", + "type": 93, + "typeName": "Rank" + } + ], + "index": 3, + "docs": [ + "Remove the member entirely.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "- `min_rank`: The rank of the member or greater.", + "", + "Weight: `O(min_rank)`." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf" + }, + { + "name": "aye", + "type": 41, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "- `origin`: Must be `Signed` by a member account.", + "- `poll`: Index of a poll which is ongoing.", + "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise.", + "", + "Transaction fees are be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "", + "Weight: `O(1)`, less if there was no previous vote on the poll by the member." + ] + }, + { + "name": "cleanup_poll", + "fields": [ + { + "name": "poll_index", + "type": 4, + "typeName": "PollIndexOf" + }, + { + "name": "max", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Remove votes from the given poll. It must have ended.", + "", + "- `origin`: Must be `Signed` by any account.", + "- `poll_index`: Index of a poll which is completed and for which votes continue to", + " exist.", + "- `max`: Maximum number of vote items from remove in this call.", + "", + "Transaction fees are waived if the operation is successful.", + "", + "Weight `O(max)` (less if there are fewer items to remove than `max`)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 378, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "index": 0, + "docs": [ + "Register oneself for fast-unstake.", + "", + "The dispatch origin of this call must be signed by the controller account, similar to", + "`staking::unbond`.", + "", + "The stash associated with the origin must have no ongoing unlocking chunks. If", + "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash", + "to be checked in further blocks.", + "", + "If by the time this is called, the stash is actually eligible for fast-unstake, then", + "they are guaranteed to remain eligible, because the call will chill them as well.", + "", + "If the check works, the entire staking data is removed, i.e. the stash is fully", + "unstaked.", + "", + "If the check fails, the stash remains chilled and waiting for being unbonded as in with", + "the normal staking system, but they lose part of their unbonding chunks due to consuming", + "the chain's resources." + ] + }, + { + "name": "deregister", + "index": 1, + "docs": [ + "Deregister oneself from the fast-unstake.", + "", + "This is useful if one is registered, they are still waiting, and they change their mind.", + "", + "Note that the associated stash is still fully unbonded and chilled as a consequence of", + "calling `register_fast_unstake`. This should probably be followed by a call to", + "`Staking::rebond`." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 2, + "docs": [ + "Control the operation of this pallet.", + "", + "Dispatch origin must be signed by the [`Config::ControlOrigin`]." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 379, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex" + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size" + }, + { + "name": "weight_limit", + "type": 8, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 380, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "emit_event", + "index": 0 + }, + { + "name": "noop", + "index": 1 + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 381, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 382, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes" + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes" + }, + { + "name": "support", + "type": 6, + "typeName": "Votes" + } + ] + } + } + } + }, + { + "id": 383, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "content_hash", + "type": 11, + "typeName": "sp_core::H256" + } + ], + "index": 0, + "docs": [ + "Stored data off chain." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 384, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "type": 0, + "typeName": "T::AccountId" + }, + { + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 385, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + } + ], + "index": 0 + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + } + ], + "index": 1 + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 11, + "typeName": "PreimageHash" + }, + { + "name": "result", + "type": 386, + "typeName": "DispatchResultWithPostInfo" + } + ], + "index": 2 + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 386, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 387 + }, + { + "name": "E", + "type": 389 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "type": 387 + } + ], + "index": 0 + }, + { + "name": "Err", + "fields": [ + { + "type": 389 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 387, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 388, + "typeName": "Option" + }, + { + "name": "pays_fee", + "type": 23, + "typeName": "Pays" + } + ] + } + } + } + }, + { + "id": 388, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 8 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 8 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 389, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 387 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 387, + "typeName": "Info" + }, + { + "name": "error", + "type": 24, + "typeName": "DispatchError" + } + ] + } + } + } + }, + { + "id": 390, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "voted", + "type": 41, + "typeName": "bool" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 391, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewRuleSet", + "fields": [ + { + "name": "rule", + "type": 362, + "typeName": "Cid" + } + ], + "index": 0, + "docs": [ + "A new rule has been set." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "announcement", + "type": 362, + "typeName": "Cid" + } + ], + "index": 1, + "docs": [ + "A new announcement has been proposed." + ] + }, + { + "name": "AnnouncementRemoved", + "fields": [ + { + "name": "announcement", + "type": 362, + "typeName": "Cid" + } + ], + "index": 2, + "docs": [ + "An on-chain announcement has been removed." + ] + }, + { + "name": "MembersInitialized", + "fields": [ + { + "name": "fellows", + "type": 83, + "typeName": "Vec" + }, + { + "name": "allies", + "type": 83, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Some accounts have been initialized as members (fellows/allies)." + ] + }, + { + "name": "NewAllyJoined", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "nominator", + "type": 40, + "typeName": "Option" + }, + { + "name": "reserved", + "type": 317, + "typeName": "Option>" + } + ], + "index": 4, + "docs": [ + "An account has been added as an Ally and reserved its deposit." + ] + }, + { + "name": "AllyElevated", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 5, + "docs": [ + "An ally has been elevated to Fellow." + ] + }, + { + "name": "MemberRetirementPeriodStarted", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 6, + "docs": [ + "A member gave retirement notice and their retirement period started." + ] + }, + { + "name": "MemberRetired", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "unreserved", + "type": 317, + "typeName": "Option>" + } + ], + "index": 7, + "docs": [ + "A member has retired with its deposit unreserved." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "slashed", + "type": 317, + "typeName": "Option>" + } + ], + "index": 8, + "docs": [ + "A member has been kicked out with its deposit slashed." + ] + }, + { + "name": "UnscrupulousItemAdded", + "fields": [ + { + "name": "items", + "type": 366, + "typeName": "Vec>" + } + ], + "index": 9, + "docs": [ + "Accounts or websites have been added into the list of unscrupulous items." + ] + }, + { + "name": "UnscrupulousItemRemoved", + "fields": [ + { + "name": "items", + "type": 366, + "typeName": "Vec>" + } + ], + "index": 10, + "docs": [ + "Accounts or websites have been removed from the list of unscrupulous items." + ] + }, + { + "name": "AllianceDisbanded", + "fields": [ + { + "name": "fellow_members", + "type": 4, + "typeName": "u32" + }, + { + "name": "ally_members", + "type": 4, + "typeName": "u32" + }, + { + "name": "unreserved", + "type": 4, + "typeName": "u32" + } + ], + "index": 11, + "docs": [ + "Alliance disbanded. Includes number deleted members and unreserved deposits." + ] + }, + { + "name": "FellowAbdicated", + "fields": [ + { + "name": "fellow", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 12, + "docs": [ + "A Fellow abdicated their voting rights. They are now an Ally." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 392, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "joined", + "type": 41, + "typeName": "bool" + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "new_state", + "type": 371, + "typeName": "PoolState" + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked)." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 40, + "typeName": "Option" + }, + { + "name": "bouncer", + "type": 40, + "typeName": "Option" + }, + { + "name": "nominator", + "type": 40, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 393, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashaed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 93, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 120, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5 + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6 + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 394, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 11, + "typeName": "PreimageHash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 394, + "type": { + "path": [ + "pallet_ranked_collective", + "Tally" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + }, + { + "name": "M", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bare_ayes", + "type": 4, + "typeName": "MemberIndex" + }, + { + "name": "ayes", + "type": 4, + "typeName": "Votes" + }, + { + "name": "nays", + "type": 4, + "typeName": "Votes" + } + ] + } + } + } + }, + { + "id": 395, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + } + ], + "index": 0, + "docs": [ + "A member `who` has been added." + ] + }, + { + "name": "RankChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rank", + "type": 93, + "typeName": "Rank" + } + ], + "index": 1, + "docs": [ + "The member `who`se rank has been changed to the given `rank`." + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "rank", + "type": 93, + "typeName": "Rank" + } + ], + "index": 2, + "docs": [ + "The member `who` of given `rank` has been removed from the collective." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf" + }, + { + "name": "vote", + "type": 396, + "typeName": "VoteRecord" + }, + { + "name": "tally", + "type": 394, + "typeName": "TallyOf" + } + ], + "index": 3, + "docs": [ + "The member `who` has voted for the `poll` with the given `vote` leading to an updated", + "`tally`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 396, + "type": { + "path": [ + "pallet_ranked_collective", + "VoteRecord" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Aye", + "fields": [ + { + "type": 4, + "typeName": "Votes" + } + ], + "index": 0 + }, + { + "name": "Nay", + "fields": [ + { + "type": 4, + "typeName": "Votes" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 397, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unstaked", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "result", + "type": 30, + "typeName": "DispatchResult" + } + ], + "index": 0, + "docs": [ + "A staker was unstaked." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "A staker was slashed for requesting fast-unstake whilst being exposed." + ] + }, + { + "name": "InternalError", + "index": 2, + "docs": [ + "An internal error happened. Operations will be paused now." + ] + }, + { + "name": "BatchChecked", + "fields": [ + { + "name": "eras", + "type": 105, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "A batch was partially checked for the given eras, but the process did not finish." + ] + }, + { + "name": "BatchFinished", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "A batch of a given size was terminated.", + "", + "This is always follows by a number of `Unstaked` or `Slashed` events, marking the end", + "of the batch. A new batch will be created upon next block." + ] + } + ] + } + }, + "docs": [ + "The events of this pallet." + ] + } + }, + { + "id": 398, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Discarded", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + } + ], + "index": 0, + "docs": [ + "Message discarded due to an inability to decode the item. Usually caused by state", + "corruption." + ] + }, + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "error", + "type": 399, + "typeName": "ProcessMessageError" + } + ], + "index": 1, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "weight_used", + "type": 8, + "typeName": "Weight" + }, + { + "name": "success", + "type": 41, + "typeName": "bool" + } + ], + "index": 2, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "hash", + "type": 11, + "typeName": "T::Hash" + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size" + } + ], + "index": 3, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex" + } + ], + "index": 4, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 399, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "index": 0 + }, + { + "name": "Corrupt", + "index": 1 + }, + { + "name": "Unsupported", + "index": 2 + }, + { + "name": "Overweight", + "fields": [ + { + "type": 8, + "typeName": "Weight" + } + ], + "index": 3 + }, + { + "name": "Yield", + "index": 4 + } + ] + } + } + } + }, + { + "id": 400, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TestEvent", + "index": 0 + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 401, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "Finalization", + "index": 1 + }, + { + "name": "Initialization", + "index": 2 + } + ] + } + } + } + }, + { + "id": 402, + "type": { + "def": { + "sequence": { + "type": 11 + } + } + } + }, + { + "id": 403, + "type": { + "def": { + "sequence": { + "type": 87 + } + } + } + }, + { + "id": 404, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 138, + "typeName": "codec::Compact" + }, + { + "name": "spec_name", + "type": 405, + "typeName": "sp_runtime::RuntimeString" + } + ] + } + } + } + }, + { + "id": 405, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 406, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 8, + "typeName": "Weight" + }, + { + "name": "max_block", + "type": 8, + "typeName": "Weight" + }, + { + "name": "per_class", + "type": 407, + "typeName": "PerDispatchClass" + } + ] + } + } + } + }, + { + "id": 407, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 408 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 408, + "typeName": "T" + }, + { + "name": "operational", + "type": 408, + "typeName": "T" + }, + { + "name": "mandatory", + "type": 408, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 408, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 8, + "typeName": "Weight" + }, + { + "name": "max_extrinsic", + "type": 388, + "typeName": "Option" + }, + { + "name": "max_total", + "type": 388, + "typeName": "Option" + }, + { + "name": "reserved", + "type": 388, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 409, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 410, + "typeName": "PerDispatchClass" + } + ] + } + } + } + }, + { + "id": 410, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T" + }, + { + "name": "operational", + "type": 4, + "typeName": "T" + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 411, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 10, + "typeName": "u64" + }, + { + "name": "write", + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 412, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 405, + "typeName": "RuntimeString" + }, + { + "name": "impl_name", + "type": 405, + "typeName": "RuntimeString" + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "apis", + "type": 413, + "typeName": "ApisVec" + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32" + }, + { + "name": "state_version", + "type": 2, + "typeName": "u8" + } + ] + } + } + } + }, + { + "id": 413, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 414 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 414 + } + ] + } + } + } + }, + { + "id": 414, + "type": { + "def": { + "sequence": { + "type": 415 + } + } + } + }, + { + "id": 415, + "type": { + "def": { + "tuple": [ + 266, + 4 + ] + } + } + }, + { + "id": 416, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 417, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 418, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 419 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 420, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 419, + "type": { + "def": { + "tuple": [ + 139, + 10 + ] + } + } + }, + { + "id": 420, + "type": { + "def": { + "sequence": { + "type": 419 + } + } + } + }, + { + "id": 421, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 422, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 422, + "type": { + "def": { + "sequence": { + "type": 1 + } + } + } + }, + { + "id": 423, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 424 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 424 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 424, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PreDigest" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Primary", + "fields": [ + { + "type": 425, + "typeName": "PrimaryPreDigest" + } + ], + "index": 1 + }, + { + "name": "SecondaryPlain", + "fields": [ + { + "type": 426, + "typeName": "SecondaryPlainPreDigest" + } + ], + "index": 2 + }, + { + "name": "SecondaryVRF", + "fields": [ + { + "type": 427, + "typeName": "SecondaryVRFPreDigest" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 425, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PrimaryPreDigest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex" + }, + { + "name": "slot", + "type": 140, + "typeName": "Slot" + }, + { + "name": "vrf_output", + "type": 1, + "typeName": "VRFOutput" + }, + { + "name": "vrf_proof", + "type": 236, + "typeName": "VRFProof" + } + ] + } + } + } + }, + { + "id": 426, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryPlainPreDigest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex" + }, + { + "name": "slot", + "type": 140, + "typeName": "Slot" + } + ] + } + } + } + }, + { + "id": 427, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryVRFPreDigest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex" + }, + { + "name": "slot", + "type": 140, + "typeName": "Slot" + }, + { + "name": "vrf_output", + "type": 1, + "typeName": "VRFOutput" + }, + { + "name": "vrf_proof", + "type": 236, + "typeName": "VRFProof" + } + ] + } + } + } + }, + { + "id": 428, + "type": { + "path": [ + "sp_consensus_babe", + "BabeEpochConfiguration" + ], + "def": { + "composite": { + "fields": [ + { + "name": "c", + "type": 143, + "typeName": "(u64, u64)" + }, + { + "name": "allowed_slots", + "type": 144, + "typeName": "AllowedSlots" + } + ] + } + } + } + }, + { + "id": 429, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 430 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 431, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 430, + "type": { + "def": { + "tuple": [ + 10, + 4 + ] + } + } + }, + { + "id": 431, + "type": { + "def": { + "sequence": { + "type": 430 + } + } + } + }, + { + "id": 432, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEquivocationProof", + "index": 0, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "index": 1, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 433, + "type": { + "def": { + "tuple": [ + 0, + 6, + 41 + ] + } + } + }, + { + "id": 434, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 435, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 436 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 438, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 436, + "type": { + "path": [ + "pallet_balances", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 266, + "typeName": "LockIdentifier" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "reasons", + "type": 437, + "typeName": "Reasons" + } + ] + } + } + } + }, + { + "id": 437, + "type": { + "path": [ + "pallet_balances", + "Reasons" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "index": 0 + }, + { + "name": "Misc", + "index": 1 + }, + { + "name": "All", + "index": 2 + } + ] + } + } + } + }, + { + "id": 438, + "type": { + "def": { + "sequence": { + "type": 436 + } + } + } + }, + { + "id": 439, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 440 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 441, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 440, + "type": { + "path": [ + "pallet_balances", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 266 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 266, + "typeName": "ReserveIdentifier" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 441, + "type": { + "def": { + "sequence": { + "type": 440 + } + } + } + }, + { + "id": 442, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "index": 0, + "docs": [ + "Vesting balance too high to send value" + ] + }, + { + "name": "LiquidityRestrictions", + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal" + ] + }, + { + "name": "InsufficientBalance", + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit" + ] + }, + { + "name": "KeepAlive", + "index": 4, + "docs": [ + "Transfer/payment would kill account" + ] + }, + { + "name": "ExistingVestingSchedule", + "index": 5, + "docs": [ + "A vesting schedule already exists for this account" + ] + }, + { + "name": "DeadAccount", + "index": 6, + "docs": [ + "Beneficiary account must pre-exist" + ] + }, + { + "name": "TooManyReserves", + "index": 7, + "docs": [ + "Number of named reserves exceed MaxReserves" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 443, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "u128" + } + ] + } + } + } + }, + { + "id": 444, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "index": 0 + }, + { + "name": "V2", + "index": 1 + } + ] + } + } + } + }, + { + "id": 445, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ReadySolution" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "supports", + "type": 446, + "typeName": "BoundedSupports" + }, + { + "name": "score", + "type": 42, + "typeName": "ElectionScore" + }, + { + "name": "compute", + "type": 39, + "typeName": "ElectionCompute" + } + ] + } + } + } + }, + { + "id": 446, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 206 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 205, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 447, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RoundSnapshot" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 448, + "typeName": "Vec>" + }, + { + "name": "targets", + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 448, + "type": { + "def": { + "sequence": { + "type": 449 + } + } + } + }, + { + "id": 449, + "type": { + "def": { + "tuple": [ + 0, + 10, + 450 + ] + } + } + }, + { + "id": 450, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 451, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 452 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 453, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 452, + "type": { + "def": { + "tuple": [ + 42, + 4, + 4 + ] + } + } + }, + { + "id": 453, + "type": { + "def": { + "sequence": { + "type": 452 + } + } + } + }, + { + "id": 454, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "signed", + "SignedSubmission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Solution", + "type": 152 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "raw_solution", + "type": 151, + "typeName": "RawSolution" + }, + { + "name": "call_fee", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 455, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreDispatchEarlySubmission", + "index": 0, + "docs": [ + "Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "index": 1, + "docs": [ + "Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "index": 2, + "docs": [ + "Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "index": 3, + "docs": [ + "The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "index": 4, + "docs": [ + "The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "index": 5, + "docs": [ + "Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "index": 6, + "docs": [ + "The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "index": 7, + "docs": [ + "OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "index": 8, + "docs": [ + "Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "index": 9, + "docs": [ + "`Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "index": 10, + "docs": [ + "The call is not allowed at this point." + ] + }, + { + "name": "FallbackFailed", + "index": 11, + "docs": [ + "The fallback failed" + ] + }, + { + "name": "BoundNotMet", + "index": 12, + "docs": [ + "Some bound not met" + ] + }, + { + "name": "TooManyWinners", + "index": 13, + "docs": [ + "Submitted solution has too many winners" + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 456, + "type": { + "path": [ + "pallet_staking", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "total", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "active", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "unlocking", + "type": 457, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>" + }, + { + "name": "claimed_rewards", + "type": 460, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 457, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 458 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 459, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 458, + "type": { + "path": [ + "pallet_staking", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 76, + "typeName": "Balance" + }, + { + "name": "era", + "type": 138, + "typeName": "EraIndex" + } + ] + } + } + } + }, + { + "id": 459, + "type": { + "def": { + "sequence": { + "type": 458 + } + } + } + }, + { + "id": 460, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 105, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 461, + "type": { + "path": [ + "pallet_staking", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 450, + "typeName": "BoundedVec" + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "suppressed", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 462, + "type": { + "path": [ + "pallet_staking", + "ActiveEraInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "start", + "type": 463, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 463, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 10 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 464, + "type": { + "def": { + "tuple": [ + 4, + 0 + ] + } + } + }, + { + "id": 465, + "type": { + "path": [ + "pallet_staking", + "EraRewardPoints" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint" + }, + { + "name": "individual", + "type": 466, + "typeName": "BTreeMap" + } + ] + } + } + } + }, + { + "id": 466, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 467 + } + ] + } + } + } + }, + { + "id": 467, + "type": { + "def": { + "sequence": { + "type": 468 + } + } + } + }, + { + "id": 468, + "type": { + "def": { + "tuple": [ + 0, + 4 + ] + } + } + }, + { + "id": 469, + "type": { + "def": { + "sequence": { + "type": 470 + } + } + } + }, + { + "id": 470, + "type": { + "path": [ + "pallet_staking", + "UnappliedSlash" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "own", + "type": 6, + "typeName": "Balance" + }, + { + "name": "others", + "type": 59, + "typeName": "Vec<(AccountId, Balance)>" + }, + { + "name": "reporters", + "type": 83, + "typeName": "Vec" + }, + { + "name": "payout", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 471, + "type": { + "def": { + "tuple": [ + 46, + 6 + ] + } + } + }, + { + "id": 472, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SlashingSpans" + ], + "def": { + "composite": { + "fields": [ + { + "name": "span_index", + "type": 4, + "typeName": "SpanIndex" + }, + { + "name": "last_start", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "last_nonzero_slash", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "prior", + "type": 105, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 473, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SpanRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "slashed", + "type": 6, + "typeName": "Balance" + }, + { + "name": "paid_out", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 474, + "type": { + "def": { + "sequence": { + "type": 475 + } + } + } + }, + { + "id": 475, + "type": { + "def": { + "tuple": [ + 4, + 41 + ] + } + } + }, + { + "id": 476, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "index": 6, + "docs": [ + "Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "index": 7, + "docs": [ + "Cannot have a validator or nominator role, with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "index": 13, + "docs": [ + "Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "index": 14, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "IncorrectHistoryDepth", + "index": 15, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "index": 16, + "docs": [ + "Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "index": 17, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "index": 18, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "index": 19, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "index": 20, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "index": 21, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "index": 22, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "index": 23, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "index": 24, + "docs": [ + "Some bound is not met." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 477, + "type": { + "def": { + "sequence": { + "type": 478 + } + } + } + }, + { + "id": 478, + "type": { + "def": { + "tuple": [ + 0, + 217 + ] + } + } + }, + { + "id": 479, + "type": { + "def": { + "tuple": [ + 480, + 12 + ] + } + } + }, + { + "id": 480, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 16, + "typeName": "[u8; 4]" + } + ] + } + } + } + }, + { + "id": 481, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 482, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 483 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 484, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 483, + "type": { + "def": { + "tuple": [ + 4, + 120, + 0 + ] + } + } + }, + { + "id": 484, + "type": { + "def": { + "sequence": { + "type": 483 + } + } + } + }, + { + "id": 485, + "type": { + "def": { + "tuple": [ + 486, + 6 + ] + } + } + }, + { + "id": 486, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 487, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "type": 488, + "typeName": "ReferendumStatus" + } + ], + "index": 0 + }, + { + "name": "Finished", + "fields": [ + { + "name": "approved", + "type": 41, + "typeName": "bool" + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 488, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "proposal", + "type": 120, + "typeName": "Proposal" + }, + { + "name": "threshold", + "type": 52, + "typeName": "VoteThreshold" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "tally", + "type": 489, + "typeName": "Tally" + } + ] + } + } + } + }, + { + "id": 489, + "type": { + "path": [ + "pallet_democracy", + "types", + "Tally" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Balance" + }, + { + "name": "nays", + "type": 6, + "typeName": "Balance" + }, + { + "name": "turnout", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 490, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Direct", + "fields": [ + { + "name": "votes", + "type": 491, + "typeName": "BoundedVec<(ReferendumIndex, AccountVote), MaxVotes>" + }, + { + "name": "delegations", + "type": 494, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 495, + "typeName": "PriorLock" + } + ], + "index": 0 + }, + { + "name": "Delegating", + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "conviction", + "type": 220, + "typeName": "Conviction" + }, + { + "name": "delegations", + "type": 494, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 495, + "typeName": "PriorLock" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 491, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 492 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 493, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 492, + "type": { + "def": { + "tuple": [ + 4, + 53 + ] + } + } + }, + { + "id": 493, + "type": { + "def": { + "sequence": { + "type": 492 + } + } + } + }, + { + "id": 494, + "type": { + "path": [ + "pallet_democracy", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance" + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 495, + "type": { + "path": [ + "pallet_democracy", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + }, + { + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 496, + "type": { + "def": { + "tuple": [ + 120, + 52 + ] + } + } + }, + { + "id": 497, + "type": { + "def": { + "tuple": [ + 4, + 486 + ] + } + } + }, + { + "id": 498, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValueLow", + "index": 0, + "docs": [ + "Value too low" + ] + }, + { + "name": "ProposalMissing", + "index": 1, + "docs": [ + "Proposal does not exist" + ] + }, + { + "name": "AlreadyCanceled", + "index": 2, + "docs": [ + "Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "index": 3, + "docs": [ + "Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "index": 4, + "docs": [ + "Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "index": 5, + "docs": [ + "Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "index": 6, + "docs": [ + "Invalid hash" + ] + }, + { + "name": "NoProposal", + "index": 7, + "docs": [ + "No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "index": 8, + "docs": [ + "Identity may not veto a proposal twice" + ] + }, + { + "name": "ReferendumInvalid", + "index": 9, + "docs": [ + "Vote given for invalid referendum" + ] + }, + { + "name": "NoneWaiting", + "index": 10, + "docs": [ + "No proposals waiting" + ] + }, + { + "name": "NotVoter", + "index": 11, + "docs": [ + "The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "index": 12, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "index": 13, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "InsufficientFunds", + "index": 14, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "index": 15, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "index": 16, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "index": 17, + "docs": [ + "The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "index": 18, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "index": 19, + "docs": [ + "Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "index": 20, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "TooMany", + "index": 21, + "docs": [ + "Maximum number of items reached." + ] + }, + { + "name": "VotingPeriodLow", + "index": 22, + "docs": [ + "Voting period too low" + ] + }, + { + "name": "PreimageNotExist", + "index": 23, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 499, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 11 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 500, + "type": { + "path": [ + "pallet_collective", + "Votes" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ProposalIndex" + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount" + }, + { + "name": "ayes", + "type": 83, + "typeName": "Vec" + }, + { + "name": "nays", + "type": 83, + "typeName": "Vec" + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 501, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 502, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 11 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 503, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 504, + "type": { + "def": { + "sequence": { + "type": 505 + } + } + } + }, + { + "id": 505, + "type": { + "path": [ + "pallet_elections_phragmen", + "SeatHolder" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 506, + "type": { + "path": [ + "pallet_elections_phragmen", + "Voter" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 83, + "typeName": "Vec" + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 507, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnableToVote", + "index": 0, + "docs": [ + "Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "index": 1, + "docs": [ + "Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "index": 2, + "docs": [ + "Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "index": 3, + "docs": [ + "Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "index": 4, + "docs": [ + "Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "index": 5, + "docs": [ + "Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "index": 6, + "docs": [ + "Must be a voter." + ] + }, + { + "name": "DuplicatedCandidate", + "index": 7, + "docs": [ + "Duplicated candidate submission." + ] + }, + { + "name": "TooManyCandidates", + "index": 8, + "docs": [ + "Too many candidates have been created." + ] + }, + { + "name": "MemberSubmit", + "index": 9, + "docs": [ + "Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "index": 10, + "docs": [ + "Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "index": 11, + "docs": [ + "Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "index": 12, + "docs": [ + "Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "index": 13, + "docs": [ + "The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "index": 14, + "docs": [ + "The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "index": 15, + "docs": [ + "The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "index": 16, + "docs": [ + "Prediction regarding replacement after member removal is wrong." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 508, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 509, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "index": 0, + "docs": [ + "Already a member." + ] + }, + { + "name": "NotMember", + "index": 1, + "docs": [ + "Not a member." + ] + }, + { + "name": "TooManyMembers", + "index": 2, + "docs": [ + "Too many members." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 510, + "type": { + "path": [ + "pallet_grandpa", + "StoredState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "index": 0 + }, + { + "name": "PendingPause", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N" + }, + { + "name": "delay", + "type": 4, + "typeName": "N" + } + ], + "index": 1 + }, + { + "name": "Paused", + "index": 2 + }, + { + "name": "PendingResume", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N" + }, + { + "name": "delay", + "type": 4, + "typeName": "N" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 511, + "type": { + "path": [ + "pallet_grandpa", + "StoredPendingChange" + ], + "params": [ + { + "name": "N", + "type": 4 + }, + { + "name": "Limit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N" + }, + { + "name": "delay", + "type": 4, + "typeName": "N" + }, + { + "name": "next_authorities", + "type": 512, + "typeName": "BoundedAuthorityList" + }, + { + "name": "forced", + "type": 37, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 512, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 64 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 63, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 513, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PauseFailed", + "index": 0, + "docs": [ + "Attempt to signal GRANDPA pause when the authority set isn't live", + "(either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "index": 1, + "docs": [ + "Attempt to signal GRANDPA resume when the authority set isn't paused", + "(either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "index": 2, + "docs": [ + "Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "index": 3, + "docs": [ + "Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "index": 4, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "index": 5, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "index": 6, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 514, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "Balance" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 515, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 105, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 516, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 517, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 266, + "typeName": "[u8; 8]" + } + ] + } + } + } + }, + { + "id": 518, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "TooManyApprovals", + "index": 2, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "index": 3, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "index": 4, + "docs": [ + "Proposal has not been approved." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 519, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 520, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "PrefabWasmModule" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "instruction_weights_version", + "type": 138, + "typeName": "u32" + }, + { + "name": "initial", + "type": 138, + "typeName": "u32" + }, + { + "name": "maximum", + "type": 138, + "typeName": "u32" + }, + { + "name": "code", + "type": 521, + "typeName": "RelaxedCodeVec" + }, + { + "name": "determinism", + "type": 244, + "typeName": "Determinism" + } + ] + } + } + } + }, + { + "id": 521, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 522, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "OwnerInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountIdOf" + }, + { + "name": "deposit", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "refcount", + "type": 9, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 523, + "type": { + "path": [ + "pallet_contracts", + "storage", + "ContractInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 381, + "typeName": "TrieId" + }, + { + "name": "deposit_account", + "type": 524, + "typeName": "DepositAccount" + }, + { + "name": "code_hash", + "type": 11, + "typeName": "CodeHash" + }, + { + "name": "storage_bytes", + "type": 4, + "typeName": "u32" + }, + { + "name": "storage_items", + "type": 4, + "typeName": "u32" + }, + { + "name": "storage_byte_deposit", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "storage_item_deposit", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "storage_base_deposit", + "type": 6, + "typeName": "BalanceOf" + } + ] + } + } + } + }, + { + "id": 524, + "type": { + "path": [ + "pallet_contracts", + "storage", + "DepositAccount" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 0, + "typeName": "AccountIdOf" + } + ] + } + } + } + }, + { + "id": 525, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 526 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 527, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 526, + "type": { + "path": [ + "pallet_contracts", + "storage", + "DeletedContract" + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 381, + "typeName": "TrieId" + } + ] + } + } + } + }, + { + "id": 527, + "type": { + "def": { + "sequence": { + "type": 526 + } + } + } + }, + { + "id": 528, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Schedule" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "limits", + "type": 529, + "typeName": "Limits" + }, + { + "name": "instruction_weights", + "type": 530, + "typeName": "InstructionWeights" + }, + { + "name": "host_fn_weights", + "type": 531, + "typeName": "HostFnWeights" + } + ] + } + } + } + }, + { + "id": 529, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Limits" + ], + "def": { + "composite": { + "fields": [ + { + "name": "event_topics", + "type": 4, + "typeName": "u32" + }, + { + "name": "globals", + "type": 4, + "typeName": "u32" + }, + { + "name": "locals", + "type": 4, + "typeName": "u32" + }, + { + "name": "parameters", + "type": 4, + "typeName": "u32" + }, + { + "name": "memory_pages", + "type": 4, + "typeName": "u32" + }, + { + "name": "table_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "br_table_size", + "type": 4, + "typeName": "u32" + }, + { + "name": "subject_len", + "type": 4, + "typeName": "u32" + }, + { + "name": "payload_len", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 530, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "InstructionWeights" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "version", + "type": 4, + "typeName": "u32" + }, + { + "name": "fallback", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64const", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64load", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64store", + "type": 4, + "typeName": "u32" + }, + { + "name": "select", + "type": 4, + "typeName": "u32" + }, + { + "name": "r#if", + "type": 4, + "typeName": "u32" + }, + { + "name": "br", + "type": 4, + "typeName": "u32" + }, + { + "name": "br_if", + "type": 4, + "typeName": "u32" + }, + { + "name": "br_table", + "type": 4, + "typeName": "u32" + }, + { + "name": "br_table_per_entry", + "type": 4, + "typeName": "u32" + }, + { + "name": "call", + "type": 4, + "typeName": "u32" + }, + { + "name": "call_indirect", + "type": 4, + "typeName": "u32" + }, + { + "name": "call_indirect_per_param", + "type": 4, + "typeName": "u32" + }, + { + "name": "call_per_local", + "type": 4, + "typeName": "u32" + }, + { + "name": "local_get", + "type": 4, + "typeName": "u32" + }, + { + "name": "local_set", + "type": 4, + "typeName": "u32" + }, + { + "name": "local_tee", + "type": 4, + "typeName": "u32" + }, + { + "name": "global_get", + "type": 4, + "typeName": "u32" + }, + { + "name": "global_set", + "type": 4, + "typeName": "u32" + }, + { + "name": "memory_current", + "type": 4, + "typeName": "u32" + }, + { + "name": "memory_grow", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64clz", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64ctz", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64popcnt", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64eqz", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64extendsi32", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64extendui32", + "type": 4, + "typeName": "u32" + }, + { + "name": "i32wrapi64", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64eq", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64ne", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64lts", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64ltu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64gts", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64gtu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64les", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64leu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64ges", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64geu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64add", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64sub", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64mul", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64divs", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64divu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64rems", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64remu", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64and", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64or", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64xor", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64shl", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64shrs", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64shru", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64rotl", + "type": 4, + "typeName": "u32" + }, + { + "name": "i64rotr", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 531, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "HostFnWeights" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "caller", + "type": 8, + "typeName": "Weight" + }, + { + "name": "is_contract", + "type": 8, + "typeName": "Weight" + }, + { + "name": "code_hash", + "type": 8, + "typeName": "Weight" + }, + { + "name": "own_code_hash", + "type": 8, + "typeName": "Weight" + }, + { + "name": "caller_is_origin", + "type": 8, + "typeName": "Weight" + }, + { + "name": "address", + "type": 8, + "typeName": "Weight" + }, + { + "name": "gas_left", + "type": 8, + "typeName": "Weight" + }, + { + "name": "balance", + "type": 8, + "typeName": "Weight" + }, + { + "name": "value_transferred", + "type": 8, + "typeName": "Weight" + }, + { + "name": "minimum_balance", + "type": 8, + "typeName": "Weight" + }, + { + "name": "block_number", + "type": 8, + "typeName": "Weight" + }, + { + "name": "now", + "type": 8, + "typeName": "Weight" + }, + { + "name": "weight_to_fee", + "type": 8, + "typeName": "Weight" + }, + { + "name": "gas", + "type": 8, + "typeName": "Weight" + }, + { + "name": "input", + "type": 8, + "typeName": "Weight" + }, + { + "name": "input_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "r#return", + "type": 8, + "typeName": "Weight" + }, + { + "name": "return_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "terminate", + "type": 8, + "typeName": "Weight" + }, + { + "name": "random", + "type": 8, + "typeName": "Weight" + }, + { + "name": "deposit_event", + "type": 8, + "typeName": "Weight" + }, + { + "name": "deposit_event_per_topic", + "type": 8, + "typeName": "Weight" + }, + { + "name": "deposit_event_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "debug_message", + "type": 8, + "typeName": "Weight" + }, + { + "name": "debug_message_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "set_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "set_storage_per_new_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "set_storage_per_old_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "set_code_hash", + "type": 8, + "typeName": "Weight" + }, + { + "name": "clear_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "clear_storage_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "contains_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "contains_storage_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "get_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "get_storage_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "take_storage", + "type": 8, + "typeName": "Weight" + }, + { + "name": "take_storage_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "transfer", + "type": 8, + "typeName": "Weight" + }, + { + "name": "call", + "type": 8, + "typeName": "Weight" + }, + { + "name": "delegate_call", + "type": 8, + "typeName": "Weight" + }, + { + "name": "call_transfer_surcharge", + "type": 8, + "typeName": "Weight" + }, + { + "name": "call_per_cloned_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiate", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiate_transfer_surcharge", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiate_per_input_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiate_per_salt_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_sha2_256", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_sha2_256_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_keccak_256", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_keccak_256_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_blake2_256", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_blake2_256_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_blake2_128", + "type": 8, + "typeName": "Weight" + }, + { + "name": "hash_blake2_128_per_byte", + "type": 8, + "typeName": "Weight" + }, + { + "name": "ecdsa_recover", + "type": 8, + "typeName": "Weight" + }, + { + "name": "ecdsa_to_eth_address", + "type": 8, + "typeName": "Weight" + }, + { + "name": "reentrance_count", + "type": 8, + "typeName": "Weight" + }, + { + "name": "account_reentrance_count", + "type": 8, + "typeName": "Weight" + }, + { + "name": "instantiation_nonce", + "type": 8, + "typeName": "Weight" + } + ] + } + } + } + }, + { + "id": 532, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidScheduleVersion", + "index": 0, + "docs": [ + "A new schedule must have a greater version than the current one." + ] + }, + { + "name": "InvalidCallFlags", + "index": 1, + "docs": [ + "Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`." + ] + }, + { + "name": "OutOfGas", + "index": 2, + "docs": [ + "The executed contract exhausted its gas limit." + ] + }, + { + "name": "OutputBufferTooSmall", + "index": 3, + "docs": [ + "The output buffer supplied to a contract API call was too small." + ] + }, + { + "name": "TransferFailed", + "index": 4, + "docs": [ + "Performing the requested transfer failed. Probably because there isn't enough", + "free balance in the sender's account." + ] + }, + { + "name": "MaxCallDepthReached", + "index": 5, + "docs": [ + "Performing a call was denied because the calling depth reached the limit", + "of what is specified in the schedule." + ] + }, + { + "name": "ContractNotFound", + "index": 6, + "docs": [ + "No contract was found at the specified address." + ] + }, + { + "name": "CodeTooLarge", + "index": 7, + "docs": [ + "The code supplied to `instantiate_with_code` exceeds the limit specified in the", + "current schedule." + ] + }, + { + "name": "CodeNotFound", + "index": 8, + "docs": [ + "No code could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "index": 9, + "docs": [ + "A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "index": 10, + "docs": [ + "Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "index": 11, + "docs": [ + "Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "index": 12, + "docs": [ + "The size defined in `T::MaxValueSize` was exceeded." + ] + }, + { + "name": "TerminatedWhileReentrant", + "index": 13, + "docs": [ + "Termination of a contract is not allowed while the contract is already", + "on the call stack. Can be triggered by `seal_terminate`." + ] + }, + { + "name": "InputForwarded", + "index": 14, + "docs": [ + "`seal_call` forwarded this contracts input. It therefore is no longer available." + ] + }, + { + "name": "RandomSubjectTooLong", + "index": 15, + "docs": [ + "The subject passed to `seal_random` exceeds the limit." + ] + }, + { + "name": "TooManyTopics", + "index": 16, + "docs": [ + "The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "NoChainExtension", + "index": 17, + "docs": [ + "The chain does not provide a chain extension. Calling the chain extension results", + "in this error. Note that this usually shouldn't happen as deploying such contracts", + "is rejected." + ] + }, + { + "name": "DeletionQueueFull", + "index": 18, + "docs": [ + "Removal of a contract failed because the deletion queue is full.", + "", + "This can happen when calling `seal_terminate`.", + "The queue is filled by deleting contracts and emptied by a fixed amount each block.", + "Trying again during another block is the only way to resolve this issue." + ] + }, + { + "name": "DuplicateContract", + "index": 19, + "docs": [ + "A contract with the same AccountId already exists." + ] + }, + { + "name": "TerminatedInConstructor", + "index": 20, + "docs": [ + "A contract self destructed in its constructor.", + "", + "This can be triggered by a call to `seal_terminate`." + ] + }, + { + "name": "ReentranceDenied", + "index": 21, + "docs": [ + "A call tried to invoke a contract that is flagged as non-reentrant." + ] + }, + { + "name": "StorageDepositNotEnoughFunds", + "index": 22, + "docs": [ + "Origin doesn't have enough balance to pay the required storage deposits." + ] + }, + { + "name": "StorageDepositLimitExhausted", + "index": 23, + "docs": [ + "More storage was created than allowed by the storage deposit limit." + ] + }, + { + "name": "CodeInUse", + "index": 24, + "docs": [ + "Code removal was denied because the code is still in use by at least one contract." + ] + }, + { + "name": "ContractReverted", + "index": 25, + "docs": [ + "The contract ran to completion but decided to revert its storage changes.", + "Please note that this error is only returned from extrinsics. When called directly", + "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags", + "to determine whether a reversion has taken place." + ] + }, + { + "name": "CodeRejected", + "index": 26, + "docs": [ + "The contract's code was found to be invalid during validation or instrumentation.", + "", + "The most likely cause of this is that an API was used which is not supported by the", + "node. This hapens if an older node is used with a new version of ink!. Try updating", + "your node to the newest available version.", + "", + "A more detailed error can be found on the node console if debug messages are enabled", + "by supplying `-lruntime::contracts=debug`." + ] + }, + { + "name": "Indeterministic", + "index": 27, + "docs": [ + "An indetermistic code was used in a context where this is not permitted." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 533, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RequireSudo", + "index": 0, + "docs": [ + "Sender must be the Sudo account" + ] + } + ] + } + }, + "docs": [ + "Error for the Sudo pallet" + ] + } + }, + { + "id": 534, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 71 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 535, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 535, + "type": { + "def": { + "sequence": { + "type": 71 + } + } + } + }, + { + "id": 536, + "type": { + "path": [ + "frame_support", + "traits", + "misc", + "WrapperOpaque" + ], + "params": [ + { + "name": "T", + "type": 537 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 138 + }, + { + "type": 537, + "typeName": "T" + } + ] + } + } + } + }, + { + "id": 537, + "type": { + "path": [ + "pallet_im_online", + "BoundedOpaqueNetworkState" + ], + "params": [ + { + "name": "PeerIdEncodingLimit", + "type": null + }, + { + "name": "MultiAddrEncodingLimit", + "type": null + }, + { + "name": "AddressesLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "peer_id", + "type": 538, + "typeName": "WeakBoundedVec" + }, + { + "name": "external_addresses", + "type": 539, + "typeName": "WeakBoundedVec, AddressesLimit\n>" + } + ] + } + } + } + }, + { + "id": 538, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 539, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 538 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 540, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 540, + "type": { + "def": { + "sequence": { + "type": 538 + } + } + } + }, + { + "id": 541, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKey", + "index": 0, + "docs": [ + "Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "index": 1, + "docs": [ + "Duplicated heartbeat." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 542, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 218 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 543, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 543, + "type": { + "def": { + "sequence": { + "type": 218 + } + } + } + }, + { + "id": 544, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceDetails" + ], + "params": [ + { + "name": "Reporter", + "type": 0 + }, + { + "name": "Offender", + "type": 74 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 74, + "typeName": "Offender" + }, + { + "name": "reporters", + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 545, + "type": { + "def": { + "tuple": [ + 80, + 12 + ] + } + } + }, + { + "id": 546, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 11 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 547, + "type": { + "path": [ + "pallet_identity", + "types", + "Registration" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "MaxJudgements", + "type": null + }, + { + "name": "MaxAdditionalFields", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "judgements", + "type": 548, + "typeName": "BoundedVec<(RegistrarIndex, Judgement), MaxJudgements>" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "info", + "type": 255, + "typeName": "IdentityInfo" + } + ] + } + } + } + }, + { + "id": 548, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 549 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 550, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 549, + "type": { + "def": { + "tuple": [ + 4, + 294 + ] + } + } + }, + { + "id": 550, + "type": { + "def": { + "sequence": { + "type": 549 + } + } + } + }, + { + "id": 551, + "type": { + "def": { + "tuple": [ + 6, + 552 + ] + } + } + }, + { + "id": 552, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 553, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 554 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 556, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 554, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 555 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 555 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 555, + "type": { + "path": [ + "pallet_identity", + "types", + "RegistrarInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance" + }, + { + "name": "fields", + "type": 292, + "typeName": "IdentityFields" + } + ] + } + } + } + }, + { + "id": 556, + "type": { + "def": { + "sequence": { + "type": 554 + } + } + } + }, + { + "id": 557, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManySubAccounts", + "index": 0, + "docs": [ + "Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "index": 1, + "docs": [ + "Account isn't found." + ] + }, + { + "name": "NotNamed", + "index": 2, + "docs": [ + "Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "index": 3, + "docs": [ + "Empty index." + ] + }, + { + "name": "FeeChanged", + "index": 4, + "docs": [ + "Fee is changed." + ] + }, + { + "name": "NoIdentity", + "index": 5, + "docs": [ + "No identity found." + ] + }, + { + "name": "StickyJudgement", + "index": 6, + "docs": [ + "Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "index": 7, + "docs": [ + "Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "index": 8, + "docs": [ + "Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "index": 9, + "docs": [ + "The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "index": 10, + "docs": [ + "The target is invalid." + ] + }, + { + "name": "TooManyFields", + "index": 11, + "docs": [ + "Too many additional fields." + ] + }, + { + "name": "TooManyRegistrars", + "index": 12, + "docs": [ + "Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "index": 13, + "docs": [ + "Account ID is already named." + ] + }, + { + "name": "NotSub", + "index": 14, + "docs": [ + "Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "index": 15, + "docs": [ + "Sub-account isn't owned by sender." + ] + }, + { + "name": "JudgementForDifferentIdentity", + "index": 16, + "docs": [ + "The provided judgement was for a different identity." + ] + }, + { + "name": "JudgementPaymentFailed", + "index": 17, + "docs": [ + "Error that occurs when there is an issue paying for judgement." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 558, + "type": { + "def": { + "sequence": { + "type": 559 + } + } + } + }, + { + "id": 559, + "type": { + "path": [ + "pallet_society", + "Bid" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "kind", + "type": 560, + "typeName": "BidKind" + }, + { + "name": "value", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 560, + "type": { + "path": [ + "pallet_society", + "BidKind" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deposit", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Vouch", + "fields": [ + { + "type": 0, + "typeName": "AccountId" + }, + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 561, + "type": { + "def": { + "tuple": [ + 6, + 560 + ] + } + } + }, + { + "id": 562, + "type": { + "path": [ + "pallet_society", + "VouchingStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Vouching", + "index": 0 + }, + { + "name": "Banned", + "index": 1 + } + ] + } + } + } + }, + { + "id": 563, + "type": { + "def": { + "sequence": { + "type": 564 + } + } + } + }, + { + "id": 564, + "type": { + "def": { + "tuple": [ + 4, + 6 + ] + } + } + }, + { + "id": 565, + "type": { + "def": { + "tuple": [ + 0, + 0 + ] + } + } + }, + { + "id": 566, + "type": { + "path": [ + "pallet_society", + "Vote" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Skeptic", + "index": 0 + }, + { + "name": "Reject", + "index": 1 + }, + { + "name": "Approve", + "index": 2 + } + ] + } + } + } + }, + { + "id": 567, + "type": { + "path": [ + "pallet_society", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadPosition", + "index": 0, + "docs": [ + "An incorrect position was provided." + ] + }, + { + "name": "NotMember", + "index": 1, + "docs": [ + "User is not a member." + ] + }, + { + "name": "AlreadyMember", + "index": 2, + "docs": [ + "User is already a member." + ] + }, + { + "name": "Suspended", + "index": 3, + "docs": [ + "User is suspended." + ] + }, + { + "name": "NotSuspended", + "index": 4, + "docs": [ + "User is not suspended." + ] + }, + { + "name": "NoPayout", + "index": 5, + "docs": [ + "Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "index": 6, + "docs": [ + "Society already founded." + ] + }, + { + "name": "InsufficientPot", + "index": 7, + "docs": [ + "Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "index": 8, + "docs": [ + "Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouching", + "index": 9, + "docs": [ + "Member is not vouching." + ] + }, + { + "name": "Head", + "index": 10, + "docs": [ + "Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "index": 11, + "docs": [ + "Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "index": 12, + "docs": [ + "User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "index": 13, + "docs": [ + "User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "index": 14, + "docs": [ + "User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "index": 15, + "docs": [ + "Too many members in the society." + ] + }, + { + "name": "NotFounder", + "index": 16, + "docs": [ + "The caller is not the founder." + ] + }, + { + "name": "NotHead", + "index": 17, + "docs": [ + "The caller is not the head." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 568, + "type": { + "path": [ + "pallet_recovery", + "RecoveryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 569 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "friends", + "type": 569, + "typeName": "Friends" + }, + { + "name": "threshold", + "type": 93, + "typeName": "u16" + } + ] + } + } + } + }, + { + "id": 569, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 570, + "type": { + "path": [ + "pallet_recovery", + "ActiveRecovery" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 569 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "created", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "friends", + "type": 569, + "typeName": "Friends" + } + ] + } + } + } + }, + { + "id": 571, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "index": 0, + "docs": [ + "User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "index": 1, + "docs": [ + "Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "index": 2, + "docs": [ + "Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "index": 3, + "docs": [ + "Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "index": 4, + "docs": [ + "Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "index": 5, + "docs": [ + "This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "index": 6, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "index": 7, + "docs": [ + "A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "index": 8, + "docs": [ + "A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "index": 9, + "docs": [ + "This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "index": 10, + "docs": [ + "The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "index": 11, + "docs": [ + "This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "index": 12, + "docs": [ + "The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "index": 13, + "docs": [ + "There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "index": 14, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "index": 15, + "docs": [ + "Some internal state is broken." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 572, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 299 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 573, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 573, + "type": { + "def": { + "sequence": { + "type": 299 + } + } + } + }, + { + "id": 574, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "index": 0 + }, + { + "name": "V1", + "index": 1 + } + ] + } + } + } + }, + { + "id": 575, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 576, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 577 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 579, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 577, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 578 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 578 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 578, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 128 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 88, + "typeName": "Option" + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 120, + "typeName": "Call" + }, + { + "name": "maybe_periodic", + "type": 301, + "typeName": "Option>" + }, + { + "name": "origin", + "type": 128, + "typeName": "PalletsOrigin" + } + ] + } + } + } + }, + { + "id": 579, + "type": { + "def": { + "sequence": { + "type": 577 + } + } + } + }, + { + "id": 580, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 581, + "type": { + "def": { + "array": { + "len": 1024, + "type": 2 + } + } + } + }, + { + "id": 582, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyInitialized", + "index": 0, + "docs": [ + "The pallet was already initialized.", + "", + "Set `witness_count` to `Some` to bypass this error." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 583, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 60, + "typeName": "(AccountId, Balance)" + }, + { + "name": "len", + "type": 4, + "typeName": "u32" + } + ], + "index": 0 + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 584, + "typeName": "Option<(AccountId, Balance)>" + }, + { + "name": "count", + "type": 4, + "typeName": "u32" + }, + { + "name": "len", + "type": 37, + "typeName": "Option" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 584, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 60 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 60 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 585, + "type": { + "def": { + "tuple": [ + 11, + 4 + ] + } + } + }, + { + "id": 586, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 587, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 588, + "type": { + "def": { + "tuple": [ + 589, + 6 + ] + } + } + }, + { + "id": 589, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 590 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 591, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 590, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 92 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "proxy_type", + "type": 92, + "typeName": "ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 591, + "type": { + "def": { + "sequence": { + "type": 590 + } + } + } + }, + { + "id": 592, + "type": { + "def": { + "tuple": [ + 593, + 6 + ] + } + } + }, + { + "id": 593, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 594 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 595, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 594, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 11 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "call_hash", + "type": 11, + "typeName": "Hash" + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 595, + "type": { + "def": { + "sequence": { + "type": 594 + } + } + } + }, + { + "id": 596, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 597, + "type": { + "def": { + "tuple": [ + 0, + 1 + ] + } + } + }, + { + "id": 598, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 95, + "typeName": "Timepoint" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "approvals", + "type": 486, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 599, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "index": 7, + "docs": [ + "Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 600, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "value", + "type": 6, + "typeName": "Balance" + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance" + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance" + }, + { + "name": "status", + "type": 601, + "typeName": "BountyStatus" + } + ] + } + } + } + }, + { + "id": 601, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "index": 0 + }, + { + "name": "Approved", + "index": 1 + }, + { + "name": "Funded", + "index": 2 + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + } + ], + "index": 3 + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 4 + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 602, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 603, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 604, + "type": { + "path": [ + "pallet_tips", + "OpenTip" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Hash", + "type": 11 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "reason", + "type": 11, + "typeName": "Hash" + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "finder", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "closes", + "type": 37, + "typeName": "Option" + }, + { + "name": "tips", + "type": 59, + "typeName": "Vec<(AccountId, Balance)>" + }, + { + "name": "finders_fee", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 605, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ReasonTooBig", + "index": 0, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "index": 1, + "docs": [ + "The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "index": 2, + "docs": [ + "The tip hash is unknown." + ] + }, + { + "name": "NotFinder", + "index": 3, + "docs": [ + "The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "index": 4, + "docs": [ + "The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "index": 5, + "docs": [ + "The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 606, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "supply", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "min_balance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "is_sufficient", + "type": 41, + "typeName": "bool" + }, + { + "name": "accounts", + "type": 4, + "typeName": "u32" + }, + { + "name": "sufficients", + "type": 4, + "typeName": "u32" + }, + { + "name": "approvals", + "type": 4, + "typeName": "u32" + }, + { + "name": "status", + "type": 607, + "typeName": "AssetStatus" + } + ] + } + } + } + }, + { + "id": 607, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "index": 0 + }, + { + "name": "Frozen", + "index": 1 + }, + { + "name": "Destroying", + "index": 2 + } + ] + } + } + } + }, + { + "id": 608, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetAccount" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "Extra", + "type": 31 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + }, + { + "name": "reason", + "type": 609, + "typeName": "ExistenceReason" + }, + { + "name": "extra", + "type": 31, + "typeName": "Extra" + } + ] + } + } + } + }, + { + "id": 609, + "type": { + "path": [ + "pallet_assets", + "types", + "ExistenceReason" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Consumer", + "index": 0 + }, + { + "name": "Sufficient", + "index": 1 + }, + { + "name": "DepositHeld", + "fields": [ + { + "type": 6, + "typeName": "Balance" + } + ], + "index": 2 + }, + { + "name": "DepositRefunded", + "index": 3 + } + ] + } + } + } + }, + { + "id": 610, + "type": { + "def": { + "tuple": [ + 4, + 0, + 0 + ] + } + } + }, + { + "id": 611, + "type": { + "path": [ + "pallet_assets", + "types", + "Approval" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 612, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 104 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "name", + "type": 104, + "typeName": "BoundedString" + }, + { + "name": "symbol", + "type": 104, + "typeName": "BoundedString" + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 613, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "NoProvider", + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or the", + "maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 614, + "type": { + "path": [ + "pallet_lottery", + "LotteryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "Balance" + }, + { + "name": "start", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "length", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "repeat", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 615, + "type": { + "def": { + "tuple": [ + 4, + 616 + ] + } + } + }, + { + "id": 616, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 100 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 617, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 617, + "type": { + "def": { + "sequence": { + "type": 100 + } + } + } + }, + { + "id": 618, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotConfigured", + "index": 0, + "docs": [ + "A lottery has not been configured." + ] + }, + { + "name": "InProgress", + "index": 1, + "docs": [ + "A lottery is already in progress." + ] + }, + { + "name": "AlreadyEnded", + "index": 2, + "docs": [ + "A lottery has already ended." + ] + }, + { + "name": "InvalidCall", + "index": 3, + "docs": [ + "The call is not valid for an open lottery." + ] + }, + { + "name": "AlreadyParticipating", + "index": 4, + "docs": [ + "You are already participating in the lottery with this call." + ] + }, + { + "name": "TooManyCalls", + "index": 5, + "docs": [ + "Too many calls for a single lottery." + ] + }, + { + "name": "EncodingFailed", + "index": 6, + "docs": [ + "Failed to encode calls" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 619, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 564 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 563, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 620, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 621 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 622, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 621, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Bid" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance" + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId" + } + ] + } + } + } + }, + { + "id": 622, + "type": { + "def": { + "sequence": { + "type": 621 + } + } + } + }, + { + "id": 623, + "type": { + "path": [ + "pallet_nis", + "pallet", + "SummaryRecord" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion_owed", + "type": 102, + "typeName": "Perquintill" + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex" + }, + { + "name": "thawed", + "type": 102, + "typeName": "Perquintill" + }, + { + "name": "last_period", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "receipts_on_hold", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 624, + "type": { + "path": [ + "pallet_nis", + "pallet", + "ReceiptRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion", + "type": 102, + "typeName": "Perquintill" + }, + { + "name": "owner", + "type": 584, + "typeName": "Option<(AccountId, Balance)>" + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 625, + "type": { + "def": { + "tuple": [ + 102, + 4 + ] + } + } + }, + { + "id": 626, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DurationTooSmall", + "index": 0, + "docs": [ + "The duration of the bid is less than one." + ] + }, + { + "name": "DurationTooBig", + "index": 1, + "docs": [ + "The duration is the bid is greater than the number of queues." + ] + }, + { + "name": "AmountTooSmall", + "index": 2, + "docs": [ + "The amount of the bid is less than the minimum allowed." + ] + }, + { + "name": "BidTooLow", + "index": 3, + "docs": [ + "The queue for the bid's duration is full and the amount bid is too low to get in", + "through replacing an existing bid." + ] + }, + { + "name": "UnknownReceipt", + "index": 4, + "docs": [ + "Receipt index is unknown." + ] + }, + { + "name": "NotOwner", + "index": 5, + "docs": [ + "Not the owner of the receipt." + ] + }, + { + "name": "NotExpired", + "index": 6, + "docs": [ + "Bond not yet at expiry date." + ] + }, + { + "name": "UnknownBid", + "index": 7, + "docs": [ + "The given bid for retraction is not found." + ] + }, + { + "name": "PortionTooBig", + "index": 8, + "docs": [ + "The portion supplied is beyond the value of the receipt." + ] + }, + { + "name": "Unfunded", + "index": 9, + "docs": [ + "Not enough funds are held to pay out." + ] + }, + { + "name": "AlreadyFunded", + "index": 10, + "docs": [ + "There are enough funds for what is required." + ] + }, + { + "name": "Throttled", + "index": 11, + "docs": [ + "The thaw throttle has been reached for this period." + ] + }, + { + "name": "MakesDust", + "index": 12, + "docs": [ + "The operation would result in a receipt worth an insignficant value." + ] + }, + { + "name": "AlreadyCommunal", + "index": 13, + "docs": [ + "The receipt is already communal." + ] + }, + { + "name": "AlreadyPrivate", + "index": 14, + "docs": [ + "The receipt is already private." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 627, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "total_deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "free_holding", + "type": 41, + "typeName": "bool" + }, + { + "name": "items", + "type": 4, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 628, + "type": { + "def": { + "tuple": [ + 0, + 4, + 4 + ] + } + } + }, + { + "id": 629, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "approved", + "type": 40, + "typeName": "Option" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 630, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 631, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 41, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 632, + "type": { + "def": { + "tuple": [ + 4, + 37, + 106 + ] + } + } + }, + { + "id": 633, + "type": { + "def": { + "tuple": [ + 107, + 6 + ] + } + } + }, + { + "id": 634, + "type": { + "def": { + "tuple": [ + 6, + 40 + ] + } + } + }, + { + "id": 635, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "WrongOwner", + "index": 3, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "index": 4, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "InUse", + "index": 5, + "docs": [ + "The item ID is already taken." + ] + }, + { + "name": "Frozen", + "index": 6, + "docs": [ + "The item or collection is frozen." + ] + }, + { + "name": "WrongDelegate", + "index": 7, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "NoDelegate", + "index": 8, + "docs": [ + "There is no delegate approved." + ] + }, + { + "name": "Unapproved", + "index": 9, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "index": 10, + "docs": [ + "The named owner has not signed ownership of the collection is acceptable." + ] + }, + { + "name": "Locked", + "index": 11, + "docs": [ + "The item is locked." + ] + }, + { + "name": "MaxSupplyReached", + "index": 12, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyAlreadySet", + "index": 13, + "docs": [ + "The max supply has already been set." + ] + }, + { + "name": "MaxSupplyTooSmall", + "index": 14, + "docs": [ + "The provided max supply is less to the amount of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "index": 15, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "NotForSale", + "index": 16, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "index": 17, + "docs": [ + "The provided bid is too low." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 636, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "owner_deposit", + "type": 6, + "typeName": "DepositBalance" + }, + { + "name": "items", + "type": 4, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 637, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 638 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "CollectionRole" + } + ] + } + } + } + }, + { + "id": 638, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionRole" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "index": 1 + }, + { + "name": "Freezer", + "index": 2 + }, + { + "name": "Admin", + "index": 4 + } + ] + } + } + } + }, + { + "id": 639, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deposit", + "type": 640 + }, + { + "name": "Approvals", + "type": 641 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "approvals", + "type": 641, + "typeName": "Approvals" + }, + { + "name": "deposit", + "type": 640, + "typeName": "Deposit" + } + ] + } + } + } + }, + { + "id": 640, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 641, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 37 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 642, + "typeName": "BTreeMap" + } + ] + } + } + } + }, + { + "id": 642, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 37 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 643 + } + ] + } + } + } + }, + { + "id": 643, + "type": { + "def": { + "sequence": { + "type": 644 + } + } + } + }, + { + "id": 644, + "type": { + "def": { + "tuple": [ + 0, + 37 + ] + } + } + }, + { + "id": 645, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "Deposit" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 646, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 647 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 647, + "typeName": "Deposit" + }, + { + "name": "data", + "type": 104, + "typeName": "BoundedVec" + } + ] + } + } + } + }, + { + "id": 647, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadataDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 40, + "typeName": "Option" + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 648, + "type": { + "def": { + "tuple": [ + 4, + 37, + 109, + 106 + ] + } + } + }, + { + "id": 649, + "type": { + "def": { + "tuple": [ + 107, + 650 + ] + } + } + }, + { + "id": 650, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 40, + "typeName": "Option" + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance" + } + ] + } + } + } + }, + { + "id": 651, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 652, + "typeName": "BTreeSet" + } + ] + } + } + } + }, + { + "id": 652, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83 + } + ] + } + } + } + }, + { + "id": 653, + "type": { + "path": [ + "pallet_nfts", + "types", + "PendingSwap" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "ItemPriceWithDirection", + "type": 111 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "desired_collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "desired_item", + "type": 37, + "typeName": "Option" + }, + { + "name": "price", + "type": 110, + "typeName": "Option" + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline" + } + ] + } + } + } + }, + { + "id": 654, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 655 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "PalletFeature" + } + ] + } + } + } + }, + { + "id": 655, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletFeature" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Trading", + "index": 1 + }, + { + "name": "Attributes", + "index": 2 + }, + { + "name": "Approvals", + "index": 4 + }, + { + "name": "Swaps", + "index": 8 + } + ] + } + } + } + }, + { + "id": 656, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "ApprovalExpired", + "index": 3, + "docs": [ + "The approval had a deadline that expired, so the approval isn't valid anymore." + ] + }, + { + "name": "WrongOwner", + "index": 4, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "index": 5, + "docs": [ + "The witness data given does not match the current state of the chain." + ] + }, + { + "name": "CollectionIdInUse", + "index": 6, + "docs": [ + "Collection ID is already taken." + ] + }, + { + "name": "ItemsNonTransferable", + "index": 7, + "docs": [ + "Items within that collection are non-transferable." + ] + }, + { + "name": "NotDelegate", + "index": 8, + "docs": [ + "The provided account is not a delegate." + ] + }, + { + "name": "WrongDelegate", + "index": 9, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "Unapproved", + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "index": 11, + "docs": [ + "The named owner has not signed ownership acceptance of the collection." + ] + }, + { + "name": "ItemLocked", + "index": 12, + "docs": [ + "The item is locked (non-transferable)." + ] + }, + { + "name": "LockedItemAttributes", + "index": 13, + "docs": [ + "Item's attributes are locked." + ] + }, + { + "name": "LockedCollectionAttributes", + "index": 14, + "docs": [ + "Collection's attributes are locked." + ] + }, + { + "name": "LockedItemMetadata", + "index": 15, + "docs": [ + "Item's metadata is locked." + ] + }, + { + "name": "LockedCollectionMetadata", + "index": 16, + "docs": [ + "Collection's metadata is locked." + ] + }, + { + "name": "MaxSupplyReached", + "index": 17, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyLocked", + "index": 18, + "docs": [ + "The max supply is locked and can't be changed." + ] + }, + { + "name": "MaxSupplyTooSmall", + "index": 19, + "docs": [ + "The provided max supply is less than the number of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "index": 20, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "UnknownSwap", + "index": 21, + "docs": [ + "Swap doesn't exist." + ] + }, + { + "name": "MetadataNotFound", + "index": 22, + "docs": [ + "The given item has no metadata set." + ] + }, + { + "name": "AttributeNotFound", + "index": 23, + "docs": [ + "The provided attribute can't be found." + ] + }, + { + "name": "NotForSale", + "index": 24, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "index": 25, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "ReachedApprovalLimit", + "index": 26, + "docs": [ + "The item has reached its approval limit." + ] + }, + { + "name": "DeadlineExpired", + "index": 27, + "docs": [ + "The deadline has already expired." + ] + }, + { + "name": "WrongDuration", + "index": 28, + "docs": [ + "The duration provided should be less than or equal to `MaxDeadlineDuration`." + ] + }, + { + "name": "MethodDisabled", + "index": 29, + "docs": [ + "The method is disabled by system settings." + ] + }, + { + "name": "WrongSetting", + "index": 30, + "docs": [ + "The provided setting can't be set." + ] + }, + { + "name": "InconsistentItemConfig", + "index": 31, + "docs": [ + "Item's config already exists and should be equal to the provided one." + ] + }, + { + "name": "NoConfig", + "index": 32, + "docs": [ + "Config for a collection or an item can't be found." + ] + }, + { + "name": "RolesNotCleared", + "index": 33, + "docs": [ + "Some roles were not cleared." + ] + }, + { + "name": "MintNotStarted", + "index": 34, + "docs": [ + "Mint has not started yet." + ] + }, + { + "name": "MintEnded", + "index": 35, + "docs": [ + "Mint has already ended." + ] + }, + { + "name": "AlreadyClaimed", + "index": 36, + "docs": [ + "The provided Item was already used for claiming." + ] + }, + { + "name": "IncorrectData", + "index": 37, + "docs": [ + "The provided data is incorrect." + ] + }, + { + "name": "WrongOrigin", + "index": 38, + "docs": [ + "The extrinsic was sent by the wrong origin." + ] + }, + { + "name": "WrongSignature", + "index": 39, + "docs": [ + "The provided signature is incorrect." + ] + }, + { + "name": "IncorrectMetadata", + "index": 40, + "docs": [ + "The provided metadata might be too long." + ] + }, + { + "name": "MaxAttributesLimitReached", + "index": 41, + "docs": [ + "Can't set more attributes per one call." + ] + }, + { + "name": "WrongNamespace", + "index": 42, + "docs": [ + "The provided namespace isn't supported in this call." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 657, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 658 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 659, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 658, + "type": { + "path": [ + "pallet_transaction_storage", + "TransactionInfo" + ], + "def": { + "composite": { + "fields": [ + { + "name": "chunk_root", + "type": 11, + "typeName": "::Output" + }, + { + "name": "content_hash", + "type": 11, + "typeName": "::Output" + }, + { + "name": "size", + "type": 4, + "typeName": "u32" + }, + { + "name": "block_chunks", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 659, + "type": { + "def": { + "sequence": { + "type": 658 + } + } + } + }, + { + "id": 660, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientFunds", + "index": 0, + "docs": [ + "Insufficient account balance." + ] + }, + { + "name": "NotConfigured", + "index": 1, + "docs": [ + "Invalid configuration." + ] + }, + { + "name": "RenewedNotFound", + "index": 2, + "docs": [ + "Renewed extrinsic is not found." + ] + }, + { + "name": "EmptyTransaction", + "index": 3, + "docs": [ + "Attempting to store empty transaction" + ] + }, + { + "name": "UnexpectedProof", + "index": 4, + "docs": [ + "Proof was not expected in this block." + ] + }, + { + "name": "InvalidProof", + "index": 5, + "docs": [ + "Proof failed verification." + ] + }, + { + "name": "MissingProof", + "index": 6, + "docs": [ + "Missing storage proof." + ] + }, + { + "name": "MissingStateData", + "index": 7, + "docs": [ + "Unable to verify proof becasue state data is missing." + ] + }, + { + "name": "DoubleCheck", + "index": 8, + "docs": [ + "Double proof check in the block." + ] + }, + { + "name": "ProofNotChecked", + "index": 9, + "docs": [ + "Storage proof was not checked in the block." + ] + }, + { + "name": "TransactionTooLarge", + "index": 10, + "docs": [ + "Transaction is too large." + ] + }, + { + "name": "TooManyTransactions", + "index": 11, + "docs": [ + "Too many transactions in the block." + ] + }, + { + "name": "BadContext", + "index": 12, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 661, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId" + }, + { + "name": "prev", + "type": 40, + "typeName": "Option" + }, + { + "name": "next", + "type": 40, + "typeName": "Option" + }, + { + "name": "bag_upper", + "type": 10, + "typeName": "T::Score" + }, + { + "name": "score", + "type": 10, + "typeName": "T::Score" + } + ] + } + } + } + }, + { + "id": 662, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 40, + "typeName": "Option" + }, + { + "name": "tail", + "type": 40, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 663, + "type": { + "def": { + "sequence": { + "type": 10 + } + } + } + }, + { + "id": 664, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "type": 665, + "typeName": "ListError" + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 665, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "index": 0 + }, + { + "name": "NotHeavier", + "index": 1 + }, + { + "name": "NotInSameBag", + "index": 2 + }, + { + "name": "NodeNotFound", + "index": 3 + } + ] + } + } + } + }, + { + "id": 666, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex" + }, + { + "name": "value", + "type": 6, + "typeName": "Balance" + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance" + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "status", + "type": 667, + "typeName": "ChildBountyStatus" + } + ] + } + } + } + }, + { + "id": 667, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "index": 0 + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + } + ], + "index": 2 + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 668, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 669, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 93 + }, + { + "name": "RuntimeOrigin", + "type": 128 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 382 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 87 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "type": 670, + "typeName": "ReferendumStatus" + } + ], + "index": 0 + }, + { + "name": "Approved", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 1 + }, + { + "name": "Rejected", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 2 + }, + { + "name": "Cancelled", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 3 + }, + { + "name": "TimedOut", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 4 + }, + { + "name": "Killed", + "fields": [ + { + "type": 4, + "typeName": "Moment" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 670, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 93 + }, + { + "name": "RuntimeOrigin", + "type": 128 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 382 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 87 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 93, + "typeName": "TrackId" + }, + { + "name": "origin", + "type": 128, + "typeName": "RuntimeOrigin" + }, + { + "name": "proposal", + "type": 120, + "typeName": "Call" + }, + { + "name": "enactment", + "type": 350, + "typeName": "DispatchTime" + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment" + }, + { + "name": "submission_deposit", + "type": 671, + "typeName": "Deposit" + }, + { + "name": "decision_deposit", + "type": 672, + "typeName": "Option>" + }, + { + "name": "deciding", + "type": 673, + "typeName": "Option>" + }, + { + "name": "tally", + "type": 382, + "typeName": "Tally" + }, + { + "name": "in_queue", + "type": 41, + "typeName": "bool" + }, + { + "name": "alarm", + "type": 675, + "typeName": "Option<(Moment, ScheduleAddress)>" + } + ] + } + } + } + }, + { + "id": 671, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 672, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 671 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 671 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 673, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 674 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 674 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 674, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "confirming", + "type": 37, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 675, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 676 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 676 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 676, + "type": { + "def": { + "tuple": [ + 4, + 87 + ] + } + } + }, + { + "id": 677, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 564 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 563, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 678, + "type": { + "def": { + "sequence": { + "type": 679 + } + } + } + }, + { + "id": 679, + "type": { + "def": { + "tuple": [ + 93, + 680 + ] + } + } + }, + { + "id": 680, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 405, + "typeName": "&'static str" + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32" + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance" + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment" + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment" + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment" + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment" + }, + { + "name": "min_approval", + "type": 681, + "typeName": "Curve" + }, + { + "name": "min_support", + "type": 681, + "typeName": "Curve" + } + ] + } + } + } + }, + { + "id": 681, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "floor", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "ceil", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 0 + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "end", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "step", + "type": 46, + "typeName": "Perbill" + }, + { + "name": "period", + "type": 46, + "typeName": "Perbill" + } + ], + "index": 1 + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 682, + "typeName": "FixedI64" + }, + { + "name": "x_offset", + "type": 682, + "typeName": "FixedI64" + }, + { + "name": "y_offset", + "type": 682, + "typeName": "FixedI64" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 682, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "def": { + "composite": { + "fields": [ + { + "type": 683, + "typeName": "i64" + } + ] + } + } + } + }, + { + "id": 683, + "type": { + "def": { + "primitive": "i64" + } + } + }, + { + "id": 684, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "index": 12, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 685, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Empty", + "index": 0, + "docs": [ + "Attempting to store empty data." + ] + }, + { + "name": "BadContext", + "index": 1, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 686, + "type": { + "def": { + "tuple": [ + 0, + 93 + ] + } + } + }, + { + "id": 687, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "type": 688, + "typeName": "Casting" + } + ], + "index": 0 + }, + { + "name": "Delegating", + "fields": [ + { + "type": 694, + "typeName": "Delegating" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 688, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 689, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>" + }, + { + "name": "delegations", + "type": 692, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 693, + "typeName": "PriorLock" + } + ] + } + } + } + }, + { + "id": 689, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 690 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 691, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 690, + "type": { + "def": { + "tuple": [ + 4, + 354 + ] + } + } + }, + { + "id": 691, + "type": { + "def": { + "sequence": { + "type": 690 + } + } + } + }, + { + "id": 692, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance" + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 693, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + }, + { + "type": 6, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 694, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance" + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "conviction", + "type": 356, + "typeName": "Conviction" + }, + { + "name": "delegations", + "type": 692, + "typeName": "Delegations" + }, + { + "name": "prior", + "type": 693, + "typeName": "PriorLock" + } + ] + } + } + } + }, + { + "id": 695, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 696 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 697, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 696, + "type": { + "def": { + "tuple": [ + 93, + 6 + ] + } + } + }, + { + "id": 697, + "type": { + "def": { + "sequence": { + "type": 696 + } + } + } + }, + { + "id": 698, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InsufficientFunds", + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 699, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 700, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 11 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 402, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 701, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 702, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 362 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 703, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 703, + "type": { + "def": { + "sequence": { + "type": 362 + } + } + } + }, + { + "id": 704, + "type": { + "path": [ + "pallet_alliance", + "MemberRole" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fellow", + "index": 0 + }, + { + "name": "Ally", + "index": 1 + }, + { + "name": "Retiring", + "index": 2 + } + ] + } + } + } + }, + { + "id": 705, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 83, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 706, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 368 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 707, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 707, + "type": { + "def": { + "sequence": { + "type": 368 + } + } + } + }, + { + "id": 708, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AllianceNotYetInitialized", + "index": 0, + "docs": [ + "The Alliance has not been initialized yet, therefore accounts cannot join it." + ] + }, + { + "name": "AllianceAlreadyInitialized", + "index": 1, + "docs": [ + "The Alliance has been initialized, therefore cannot be initialized again." + ] + }, + { + "name": "AlreadyMember", + "index": 2, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "index": 3, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotAlly", + "index": 4, + "docs": [ + "Account is not an ally." + ] + }, + { + "name": "NoVotingRights", + "index": 5, + "docs": [ + "Account does not have voting rights." + ] + }, + { + "name": "AlreadyElevated", + "index": 6, + "docs": [ + "Account is already an elevated (fellow) member." + ] + }, + { + "name": "AlreadyUnscrupulous", + "index": 7, + "docs": [ + "Item is already listed as unscrupulous." + ] + }, + { + "name": "AccountNonGrata", + "index": 8, + "docs": [ + "Account has been deemed unscrupulous by the Alliance and is not welcome to join or be", + "nominated." + ] + }, + { + "name": "NotListedAsUnscrupulous", + "index": 9, + "docs": [ + "Item has not been deemed unscrupulous." + ] + }, + { + "name": "TooManyUnscrupulousItems", + "index": 10, + "docs": [ + "The number of unscrupulous items exceeds `MaxUnscrupulousItems`." + ] + }, + { + "name": "TooLongWebsiteUrl", + "index": 11, + "docs": [ + "Length of website URL exceeds `MaxWebsiteUrlLength`." + ] + }, + { + "name": "InsufficientFunds", + "index": 12, + "docs": [ + "Balance is insufficient for the required deposit." + ] + }, + { + "name": "WithoutIdentityDisplayAndWebsite", + "index": 13, + "docs": [ + "The account's identity does not have display field and website field." + ] + }, + { + "name": "WithoutGoodIdentityJudgement", + "index": 14, + "docs": [ + "The account's identity has no good judgement." + ] + }, + { + "name": "MissingProposalHash", + "index": 15, + "docs": [ + "The proposal hash is not found." + ] + }, + { + "name": "MissingAnnouncement", + "index": 16, + "docs": [ + "The announcement is not found." + ] + }, + { + "name": "TooManyMembers", + "index": 17, + "docs": [ + "Number of members exceeds `MaxMembersCount`." + ] + }, + { + "name": "TooManyAnnouncements", + "index": 18, + "docs": [ + "Number of announcements exceeds `MaxAnnouncementsCount`." + ] + }, + { + "name": "BadWitness", + "index": 19, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "AlreadyRetiring", + "index": 20, + "docs": [ + "Account already gave retirement notice" + ] + }, + { + "name": "RetirementNoticeNotGiven", + "index": 21, + "docs": [ + "Account did not give a retirement notice required to retire." + ] + }, + { + "name": "RetirementPeriodNotPassed", + "index": 22, + "docs": [ + "Retirement period has not passed." + ] + }, + { + "name": "FellowsMissing", + "index": 23, + "docs": [ + "Fellows must be provided to initialize the Alliance." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 709, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "last_recorded_reward_counter", + "type": 443, + "typeName": "T::RewardCounter" + }, + { + "name": "unbonding_eras", + "type": 710, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>" + } + ] + } + } + } + }, + { + "id": 710, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 711, + "typeName": "BTreeMap" + } + ] + } + } + } + }, + { + "id": 711, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 563 + } + ] + } + } + } + }, + { + "id": 712, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "state", + "type": 371, + "typeName": "PoolState" + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32" + }, + { + "name": "roles", + "type": 713, + "typeName": "PoolRoles" + } + ] + } + } + } + }, + { + "id": 713, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId" + }, + { + "name": "root", + "type": 40, + "typeName": "Option" + }, + { + "name": "nominator", + "type": 40, + "typeName": "Option" + }, + { + "name": "bouncer", + "type": 40, + "typeName": "Option" + } + ] + } + } + } + }, + { + "id": 714, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 443, + "typeName": "T::RewardCounter" + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf" + } + ] + } + } + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 716, + "typeName": "UnbondPool" + }, + { + "name": "with_era", + "type": 717, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>" + } + ] + } + } + } + }, + { + "id": 716, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf" + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf" + } + ] + } + } + } + }, + { + "id": 717, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 716 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 718, + "typeName": "BTreeMap" + } + ] + } + } + } + }, + { + "id": 718, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 716 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 719 + } + ] + } + } + } + }, + { + "id": 719, + "type": { + "def": { + "sequence": { + "type": 720 + } + } + } + }, + { + "id": 720, + "type": { + "def": { + "tuple": [ + 4, + 716 + ] + } + } + }, + { + "id": 721, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 722, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than", + "`Pallet::depositor_min_bond`. The caller does not have nominating", + "permissions for the pool. Members can never unbond to a value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "type": 723, + "typeName": "DefensiveError" + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "PoolIdInUse", + "index": 21, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "index": 22, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "index": 23, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 723, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "index": 0 + }, + { + "name": "PoolNotFound", + "index": 1 + }, + { + "name": "RewardPoolNotFound", + "index": 2 + }, + { + "name": "SubPoolsNotFound", + "index": 3 + }, + { + "name": "BondedStashKilledPrematurely", + "index": 4 + } + ] + } + } + } + }, + { + "id": 724, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 93 + }, + { + "name": "RuntimeOrigin", + "type": 128 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 394 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 87 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "type": 725, + "typeName": "ReferendumStatus" + } + ], + "index": 0 + }, + { + "name": "Approved", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 1 + }, + { + "name": "Rejected", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 2 + }, + { + "name": "Cancelled", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 3 + }, + { + "name": "TimedOut", + "fields": [ + { + "type": 4, + "typeName": "Moment" + }, + { + "type": 672, + "typeName": "Option>" + }, + { + "type": 672, + "typeName": "Option>" + } + ], + "index": 4 + }, + { + "name": "Killed", + "fields": [ + { + "type": 4, + "typeName": "Moment" + } + ], + "index": 5 + } + ] + } + } + } + }, + { + "id": 725, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 93 + }, + { + "name": "RuntimeOrigin", + "type": 128 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 120 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 394 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 87 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 93, + "typeName": "TrackId" + }, + { + "name": "origin", + "type": 128, + "typeName": "RuntimeOrigin" + }, + { + "name": "proposal", + "type": 120, + "typeName": "Call" + }, + { + "name": "enactment", + "type": 350, + "typeName": "DispatchTime" + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment" + }, + { + "name": "submission_deposit", + "type": 671, + "typeName": "Deposit" + }, + { + "name": "decision_deposit", + "type": 672, + "typeName": "Option>" + }, + { + "name": "deciding", + "type": 673, + "typeName": "Option>" + }, + { + "name": "tally", + "type": 394, + "typeName": "Tally" + }, + { + "name": "in_queue", + "type": 41, + "typeName": "bool" + }, + { + "name": "alarm", + "type": 675, + "typeName": "Option<(Moment, ScheduleAddress)>" + } + ] + } + } + } + }, + { + "id": 726, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 87 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 403, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 727, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "index": 12, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 728, + "type": { + "path": [ + "pallet_ranked_collective", + "MemberRecord" + ], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 93, + "typeName": "Rank" + } + ] + } + } + } + }, + { + "id": 729, + "type": { + "def": { + "tuple": [ + 93, + 0 + ] + } + } + }, + { + "id": 730, + "type": { + "def": { + "tuple": [ + 93, + 4 + ] + } + } + }, + { + "id": 731, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 732, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "index": 0, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "index": 1, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotPolling", + "index": 2, + "docs": [ + "The given poll index is unknown or has closed." + ] + }, + { + "name": "Ongoing", + "index": 3, + "docs": [ + "The given poll is still ongoing." + ] + }, + { + "name": "NoneRemaining", + "index": 4, + "docs": [ + "There are no further records to be removed." + ] + }, + { + "name": "Corruption", + "index": 5, + "docs": [ + "Unexpected error in state." + ] + }, + { + "name": "RankTooLow", + "index": 6, + "docs": [ + "The member's rank is too low to vote." + ] + }, + { + "name": "InvalidWitness", + "index": 7, + "docs": [ + "The information provided is incorrect." + ] + }, + { + "name": "NoPermission", + "index": 8, + "docs": [ + "The origin is not sufficiently privileged to do the operation." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 733, + "type": { + "path": [ + "pallet_fast_unstake", + "types", + "UnstakeRequest" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stashes", + "type": 734, + "typeName": "BoundedVec<(T::AccountId, BalanceOf), T::BatchSize>" + }, + { + "name": "checked", + "type": 735, + "typeName": "BoundedVec>" + } + ] + } + } + } + }, + { + "id": 734, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 60 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 59, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 735, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 105, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 736, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "index": 0, + "docs": [ + "The provided Controller account was not found.", + "", + "This means that the given account is not bonded." + ] + }, + { + "name": "AlreadyQueued", + "index": 1, + "docs": [ + "The bonded account has already been queued." + ] + }, + { + "name": "NotFullyBonded", + "index": 2, + "docs": [ + "The bonded account has active unlocking chunks." + ] + }, + { + "name": "NotQueued", + "index": 3, + "docs": [ + "The provided un-staker is not in the `Queue`." + ] + }, + { + "name": "AlreadyHead", + "index": 4, + "docs": [ + "The provided un-staker is already in Head, and cannot deregister." + ] + }, + { + "name": "CallNotAllowed", + "index": 5, + "docs": [ + "The call is not allowed at this point because the pallet is not active." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 737, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "ready_neighbours", + "type": 738, + "typeName": "Option>" + }, + { + "name": "message_count", + "type": 10, + "typeName": "u64" + }, + { + "name": "size", + "type": 10, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 738, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 739 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 739 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 739, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 4, + "typeName": "MessageOrigin" + }, + { + "name": "next", + "type": 4, + "typeName": "MessageOrigin" + } + ] + } + } + } + }, + { + "id": 740, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size" + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size" + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size" + }, + { + "name": "first", + "type": 4, + "typeName": "Size" + }, + { + "name": "last", + "type": 4, + "typeName": "Size" + }, + { + "name": "heap", + "type": 741, + "typeName": "BoundedVec>" + } + ] + } + } + } + }, + { + "id": 741, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 742, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + }, + { + "id": 743, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 744, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 147 + }, + { + "name": "Call", + "type": 121 + }, + { + "name": "Signature", + "type": 335 + }, + { + "name": "Extra", + "type": 745 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12 + } + ] + } + } + } + }, + { + "id": 745, + "type": { + "def": { + "tuple": [ + 746, + 747, + 748, + 749, + 750, + 752, + 753, + 754 + ] + } + } + }, + { + "id": 746, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 747, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 748, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 749, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 750, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 751, + "typeName": "Era" + } + ] + } + } + } + }, + { + "id": 751, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "index": 0 + }, + { + "name": "Mortal1", + "fields": [ + { + "type": 2 + } + ], + "index": 1 + }, + { + "name": "Mortal2", + "fields": [ + { + "type": 2 + } + ], + "index": 2 + }, + { + "name": "Mortal3", + "fields": [ + { + "type": 2 + } + ], + "index": 3 + }, + { + "name": "Mortal4", + "fields": [ + { + "type": 2 + } + ], + "index": 4 + }, + { + "name": "Mortal5", + "fields": [ + { + "type": 2 + } + ], + "index": 5 + }, + { + "name": "Mortal6", + "fields": [ + { + "type": 2 + } + ], + "index": 6 + }, + { + "name": "Mortal7", + "fields": [ + { + "type": 2 + } + ], + "index": 7 + }, + { + "name": "Mortal8", + "fields": [ + { + "type": 2 + } + ], + "index": 8 + }, + { + "name": "Mortal9", + "fields": [ + { + "type": 2 + } + ], + "index": 9 + }, + { + "name": "Mortal10", + "fields": [ + { + "type": 2 + } + ], + "index": 10 + }, + { + "name": "Mortal11", + "fields": [ + { + "type": 2 + } + ], + "index": 11 + }, + { + "name": "Mortal12", + "fields": [ + { + "type": 2 + } + ], + "index": 12 + }, + { + "name": "Mortal13", + "fields": [ + { + "type": 2 + } + ], + "index": 13 + }, + { + "name": "Mortal14", + "fields": [ + { + "type": 2 + } + ], + "index": 14 + }, + { + "name": "Mortal15", + "fields": [ + { + "type": 2 + } + ], + "index": 15 + }, + { + "name": "Mortal16", + "fields": [ + { + "type": 2 + } + ], + "index": 16 + }, + { + "name": "Mortal17", + "fields": [ + { + "type": 2 + } + ], + "index": 17 + }, + { + "name": "Mortal18", + "fields": [ + { + "type": 2 + } + ], + "index": 18 + }, + { + "name": "Mortal19", + "fields": [ + { + "type": 2 + } + ], + "index": 19 + }, + { + "name": "Mortal20", + "fields": [ + { + "type": 2 + } + ], + "index": 20 + }, + { + "name": "Mortal21", + "fields": [ + { + "type": 2 + } + ], + "index": 21 + }, + { + "name": "Mortal22", + "fields": [ + { + "type": 2 + } + ], + "index": 22 + }, + { + "name": "Mortal23", + "fields": [ + { + "type": 2 + } + ], + "index": 23 + }, + { + "name": "Mortal24", + "fields": [ + { + "type": 2 + } + ], + "index": 24 + }, + { + "name": "Mortal25", + "fields": [ + { + "type": 2 + } + ], + "index": 25 + }, + { + "name": "Mortal26", + "fields": [ + { + "type": 2 + } + ], + "index": 26 + }, + { + "name": "Mortal27", + "fields": [ + { + "type": 2 + } + ], + "index": 27 + }, + { + "name": "Mortal28", + "fields": [ + { + "type": 2 + } + ], + "index": 28 + }, + { + "name": "Mortal29", + "fields": [ + { + "type": 2 + } + ], + "index": 29 + }, + { + "name": "Mortal30", + "fields": [ + { + "type": 2 + } + ], + "index": 30 + }, + { + "name": "Mortal31", + "fields": [ + { + "type": 2 + } + ], + "index": 31 + }, + { + "name": "Mortal32", + "fields": [ + { + "type": 2 + } + ], + "index": 32 + }, + { + "name": "Mortal33", + "fields": [ + { + "type": 2 + } + ], + "index": 33 + }, + { + "name": "Mortal34", + "fields": [ + { + "type": 2 + } + ], + "index": 34 + }, + { + "name": "Mortal35", + "fields": [ + { + "type": 2 + } + ], + "index": 35 + }, + { + "name": "Mortal36", + "fields": [ + { + "type": 2 + } + ], + "index": 36 + }, + { + "name": "Mortal37", + "fields": [ + { + "type": 2 + } + ], + "index": 37 + }, + { + "name": "Mortal38", + "fields": [ + { + "type": 2 + } + ], + "index": 38 + }, + { + "name": "Mortal39", + "fields": [ + { + "type": 2 + } + ], + "index": 39 + }, + { + "name": "Mortal40", + "fields": [ + { + "type": 2 + } + ], + "index": 40 + }, + { + "name": "Mortal41", + "fields": [ + { + "type": 2 + } + ], + "index": 41 + }, + { + "name": "Mortal42", + "fields": [ + { + "type": 2 + } + ], + "index": 42 + }, + { + "name": "Mortal43", + "fields": [ + { + "type": 2 + } + ], + "index": 43 + }, + { + "name": "Mortal44", + "fields": [ + { + "type": 2 + } + ], + "index": 44 + }, + { + "name": "Mortal45", + "fields": [ + { + "type": 2 + } + ], + "index": 45 + }, + { + "name": "Mortal46", + "fields": [ + { + "type": 2 + } + ], + "index": 46 + }, + { + "name": "Mortal47", + "fields": [ + { + "type": 2 + } + ], + "index": 47 + }, + { + "name": "Mortal48", + "fields": [ + { + "type": 2 + } + ], + "index": 48 + }, + { + "name": "Mortal49", + "fields": [ + { + "type": 2 + } + ], + "index": 49 + }, + { + "name": "Mortal50", + "fields": [ + { + "type": 2 + } + ], + "index": 50 + }, + { + "name": "Mortal51", + "fields": [ + { + "type": 2 + } + ], + "index": 51 + }, + { + "name": "Mortal52", + "fields": [ + { + "type": 2 + } + ], + "index": 52 + }, + { + "name": "Mortal53", + "fields": [ + { + "type": 2 + } + ], + "index": 53 + }, + { + "name": "Mortal54", + "fields": [ + { + "type": 2 + } + ], + "index": 54 + }, + { + "name": "Mortal55", + "fields": [ + { + "type": 2 + } + ], + "index": 55 + }, + { + "name": "Mortal56", + "fields": [ + { + "type": 2 + } + ], + "index": 56 + }, + { + "name": "Mortal57", + "fields": [ + { + "type": 2 + } + ], + "index": 57 + }, + { + "name": "Mortal58", + "fields": [ + { + "type": 2 + } + ], + "index": 58 + }, + { + "name": "Mortal59", + "fields": [ + { + "type": 2 + } + ], + "index": 59 + }, + { + "name": "Mortal60", + "fields": [ + { + "type": 2 + } + ], + "index": 60 + }, + { + "name": "Mortal61", + "fields": [ + { + "type": 2 + } + ], + "index": 61 + }, + { + "name": "Mortal62", + "fields": [ + { + "type": 2 + } + ], + "index": 62 + }, + { + "name": "Mortal63", + "fields": [ + { + "type": 2 + } + ], + "index": 63 + }, + { + "name": "Mortal64", + "fields": [ + { + "type": 2 + } + ], + "index": 64 + }, + { + "name": "Mortal65", + "fields": [ + { + "type": 2 + } + ], + "index": 65 + }, + { + "name": "Mortal66", + "fields": [ + { + "type": 2 + } + ], + "index": 66 + }, + { + "name": "Mortal67", + "fields": [ + { + "type": 2 + } + ], + "index": 67 + }, + { + "name": "Mortal68", + "fields": [ + { + "type": 2 + } + ], + "index": 68 + }, + { + "name": "Mortal69", + "fields": [ + { + "type": 2 + } + ], + "index": 69 + }, + { + "name": "Mortal70", + "fields": [ + { + "type": 2 + } + ], + "index": 70 + }, + { + "name": "Mortal71", + "fields": [ + { + "type": 2 + } + ], + "index": 71 + }, + { + "name": "Mortal72", + "fields": [ + { + "type": 2 + } + ], + "index": 72 + }, + { + "name": "Mortal73", + "fields": [ + { + "type": 2 + } + ], + "index": 73 + }, + { + "name": "Mortal74", + "fields": [ + { + "type": 2 + } + ], + "index": 74 + }, + { + "name": "Mortal75", + "fields": [ + { + "type": 2 + } + ], + "index": 75 + }, + { + "name": "Mortal76", + "fields": [ + { + "type": 2 + } + ], + "index": 76 + }, + { + "name": "Mortal77", + "fields": [ + { + "type": 2 + } + ], + "index": 77 + }, + { + "name": "Mortal78", + "fields": [ + { + "type": 2 + } + ], + "index": 78 + }, + { + "name": "Mortal79", + "fields": [ + { + "type": 2 + } + ], + "index": 79 + }, + { + "name": "Mortal80", + "fields": [ + { + "type": 2 + } + ], + "index": 80 + }, + { + "name": "Mortal81", + "fields": [ + { + "type": 2 + } + ], + "index": 81 + }, + { + "name": "Mortal82", + "fields": [ + { + "type": 2 + } + ], + "index": 82 + }, + { + "name": "Mortal83", + "fields": [ + { + "type": 2 + } + ], + "index": 83 + }, + { + "name": "Mortal84", + "fields": [ + { + "type": 2 + } + ], + "index": 84 + }, + { + "name": "Mortal85", + "fields": [ + { + "type": 2 + } + ], + "index": 85 + }, + { + "name": "Mortal86", + "fields": [ + { + "type": 2 + } + ], + "index": 86 + }, + { + "name": "Mortal87", + "fields": [ + { + "type": 2 + } + ], + "index": 87 + }, + { + "name": "Mortal88", + "fields": [ + { + "type": 2 + } + ], + "index": 88 + }, + { + "name": "Mortal89", + "fields": [ + { + "type": 2 + } + ], + "index": 89 + }, + { + "name": "Mortal90", + "fields": [ + { + "type": 2 + } + ], + "index": 90 + }, + { + "name": "Mortal91", + "fields": [ + { + "type": 2 + } + ], + "index": 91 + }, + { + "name": "Mortal92", + "fields": [ + { + "type": 2 + } + ], + "index": 92 + }, + { + "name": "Mortal93", + "fields": [ + { + "type": 2 + } + ], + "index": 93 + }, + { + "name": "Mortal94", + "fields": [ + { + "type": 2 + } + ], + "index": 94 + }, + { + "name": "Mortal95", + "fields": [ + { + "type": 2 + } + ], + "index": 95 + }, + { + "name": "Mortal96", + "fields": [ + { + "type": 2 + } + ], + "index": 96 + }, + { + "name": "Mortal97", + "fields": [ + { + "type": 2 + } + ], + "index": 97 + }, + { + "name": "Mortal98", + "fields": [ + { + "type": 2 + } + ], + "index": 98 + }, + { + "name": "Mortal99", + "fields": [ + { + "type": 2 + } + ], + "index": 99 + }, + { + "name": "Mortal100", + "fields": [ + { + "type": 2 + } + ], + "index": 100 + }, + { + "name": "Mortal101", + "fields": [ + { + "type": 2 + } + ], + "index": 101 + }, + { + "name": "Mortal102", + "fields": [ + { + "type": 2 + } + ], + "index": 102 + }, + { + "name": "Mortal103", + "fields": [ + { + "type": 2 + } + ], + "index": 103 + }, + { + "name": "Mortal104", + "fields": [ + { + "type": 2 + } + ], + "index": 104 + }, + { + "name": "Mortal105", + "fields": [ + { + "type": 2 + } + ], + "index": 105 + }, + { + "name": "Mortal106", + "fields": [ + { + "type": 2 + } + ], + "index": 106 + }, + { + "name": "Mortal107", + "fields": [ + { + "type": 2 + } + ], + "index": 107 + }, + { + "name": "Mortal108", + "fields": [ + { + "type": 2 + } + ], + "index": 108 + }, + { + "name": "Mortal109", + "fields": [ + { + "type": 2 + } + ], + "index": 109 + }, + { + "name": "Mortal110", + "fields": [ + { + "type": 2 + } + ], + "index": 110 + }, + { + "name": "Mortal111", + "fields": [ + { + "type": 2 + } + ], + "index": 111 + }, + { + "name": "Mortal112", + "fields": [ + { + "type": 2 + } + ], + "index": 112 + }, + { + "name": "Mortal113", + "fields": [ + { + "type": 2 + } + ], + "index": 113 + }, + { + "name": "Mortal114", + "fields": [ + { + "type": 2 + } + ], + "index": 114 + }, + { + "name": "Mortal115", + "fields": [ + { + "type": 2 + } + ], + "index": 115 + }, + { + "name": "Mortal116", + "fields": [ + { + "type": 2 + } + ], + "index": 116 + }, + { + "name": "Mortal117", + "fields": [ + { + "type": 2 + } + ], + "index": 117 + }, + { + "name": "Mortal118", + "fields": [ + { + "type": 2 + } + ], + "index": 118 + }, + { + "name": "Mortal119", + "fields": [ + { + "type": 2 + } + ], + "index": 119 + }, + { + "name": "Mortal120", + "fields": [ + { + "type": 2 + } + ], + "index": 120 + }, + { + "name": "Mortal121", + "fields": [ + { + "type": 2 + } + ], + "index": 121 + }, + { + "name": "Mortal122", + "fields": [ + { + "type": 2 + } + ], + "index": 122 + }, + { + "name": "Mortal123", + "fields": [ + { + "type": 2 + } + ], + "index": 123 + }, + { + "name": "Mortal124", + "fields": [ + { + "type": 2 + } + ], + "index": 124 + }, + { + "name": "Mortal125", + "fields": [ + { + "type": 2 + } + ], + "index": 125 + }, + { + "name": "Mortal126", + "fields": [ + { + "type": 2 + } + ], + "index": 126 + }, + { + "name": "Mortal127", + "fields": [ + { + "type": 2 + } + ], + "index": 127 + }, + { + "name": "Mortal128", + "fields": [ + { + "type": 2 + } + ], + "index": 128 + }, + { + "name": "Mortal129", + "fields": [ + { + "type": 2 + } + ], + "index": 129 + }, + { + "name": "Mortal130", + "fields": [ + { + "type": 2 + } + ], + "index": 130 + }, + { + "name": "Mortal131", + "fields": [ + { + "type": 2 + } + ], + "index": 131 + }, + { + "name": "Mortal132", + "fields": [ + { + "type": 2 + } + ], + "index": 132 + }, + { + "name": "Mortal133", + "fields": [ + { + "type": 2 + } + ], + "index": 133 + }, + { + "name": "Mortal134", + "fields": [ + { + "type": 2 + } + ], + "index": 134 + }, + { + "name": "Mortal135", + "fields": [ + { + "type": 2 + } + ], + "index": 135 + }, + { + "name": "Mortal136", + "fields": [ + { + "type": 2 + } + ], + "index": 136 + }, + { + "name": "Mortal137", + "fields": [ + { + "type": 2 + } + ], + "index": 137 + }, + { + "name": "Mortal138", + "fields": [ + { + "type": 2 + } + ], + "index": 138 + }, + { + "name": "Mortal139", + "fields": [ + { + "type": 2 + } + ], + "index": 139 + }, + { + "name": "Mortal140", + "fields": [ + { + "type": 2 + } + ], + "index": 140 + }, + { + "name": "Mortal141", + "fields": [ + { + "type": 2 + } + ], + "index": 141 + }, + { + "name": "Mortal142", + "fields": [ + { + "type": 2 + } + ], + "index": 142 + }, + { + "name": "Mortal143", + "fields": [ + { + "type": 2 + } + ], + "index": 143 + }, + { + "name": "Mortal144", + "fields": [ + { + "type": 2 + } + ], + "index": 144 + }, + { + "name": "Mortal145", + "fields": [ + { + "type": 2 + } + ], + "index": 145 + }, + { + "name": "Mortal146", + "fields": [ + { + "type": 2 + } + ], + "index": 146 + }, + { + "name": "Mortal147", + "fields": [ + { + "type": 2 + } + ], + "index": 147 + }, + { + "name": "Mortal148", + "fields": [ + { + "type": 2 + } + ], + "index": 148 + }, + { + "name": "Mortal149", + "fields": [ + { + "type": 2 + } + ], + "index": 149 + }, + { + "name": "Mortal150", + "fields": [ + { + "type": 2 + } + ], + "index": 150 + }, + { + "name": "Mortal151", + "fields": [ + { + "type": 2 + } + ], + "index": 151 + }, + { + "name": "Mortal152", + "fields": [ + { + "type": 2 + } + ], + "index": 152 + }, + { + "name": "Mortal153", + "fields": [ + { + "type": 2 + } + ], + "index": 153 + }, + { + "name": "Mortal154", + "fields": [ + { + "type": 2 + } + ], + "index": 154 + }, + { + "name": "Mortal155", + "fields": [ + { + "type": 2 + } + ], + "index": 155 + }, + { + "name": "Mortal156", + "fields": [ + { + "type": 2 + } + ], + "index": 156 + }, + { + "name": "Mortal157", + "fields": [ + { + "type": 2 + } + ], + "index": 157 + }, + { + "name": "Mortal158", + "fields": [ + { + "type": 2 + } + ], + "index": 158 + }, + { + "name": "Mortal159", + "fields": [ + { + "type": 2 + } + ], + "index": 159 + }, + { + "name": "Mortal160", + "fields": [ + { + "type": 2 + } + ], + "index": 160 + }, + { + "name": "Mortal161", + "fields": [ + { + "type": 2 + } + ], + "index": 161 + }, + { + "name": "Mortal162", + "fields": [ + { + "type": 2 + } + ], + "index": 162 + }, + { + "name": "Mortal163", + "fields": [ + { + "type": 2 + } + ], + "index": 163 + }, + { + "name": "Mortal164", + "fields": [ + { + "type": 2 + } + ], + "index": 164 + }, + { + "name": "Mortal165", + "fields": [ + { + "type": 2 + } + ], + "index": 165 + }, + { + "name": "Mortal166", + "fields": [ + { + "type": 2 + } + ], + "index": 166 + }, + { + "name": "Mortal167", + "fields": [ + { + "type": 2 + } + ], + "index": 167 + }, + { + "name": "Mortal168", + "fields": [ + { + "type": 2 + } + ], + "index": 168 + }, + { + "name": "Mortal169", + "fields": [ + { + "type": 2 + } + ], + "index": 169 + }, + { + "name": "Mortal170", + "fields": [ + { + "type": 2 + } + ], + "index": 170 + }, + { + "name": "Mortal171", + "fields": [ + { + "type": 2 + } + ], + "index": 171 + }, + { + "name": "Mortal172", + "fields": [ + { + "type": 2 + } + ], + "index": 172 + }, + { + "name": "Mortal173", + "fields": [ + { + "type": 2 + } + ], + "index": 173 + }, + { + "name": "Mortal174", + "fields": [ + { + "type": 2 + } + ], + "index": 174 + }, + { + "name": "Mortal175", + "fields": [ + { + "type": 2 + } + ], + "index": 175 + }, + { + "name": "Mortal176", + "fields": [ + { + "type": 2 + } + ], + "index": 176 + }, + { + "name": "Mortal177", + "fields": [ + { + "type": 2 + } + ], + "index": 177 + }, + { + "name": "Mortal178", + "fields": [ + { + "type": 2 + } + ], + "index": 178 + }, + { + "name": "Mortal179", + "fields": [ + { + "type": 2 + } + ], + "index": 179 + }, + { + "name": "Mortal180", + "fields": [ + { + "type": 2 + } + ], + "index": 180 + }, + { + "name": "Mortal181", + "fields": [ + { + "type": 2 + } + ], + "index": 181 + }, + { + "name": "Mortal182", + "fields": [ + { + "type": 2 + } + ], + "index": 182 + }, + { + "name": "Mortal183", + "fields": [ + { + "type": 2 + } + ], + "index": 183 + }, + { + "name": "Mortal184", + "fields": [ + { + "type": 2 + } + ], + "index": 184 + }, + { + "name": "Mortal185", + "fields": [ + { + "type": 2 + } + ], + "index": 185 + }, + { + "name": "Mortal186", + "fields": [ + { + "type": 2 + } + ], + "index": 186 + }, + { + "name": "Mortal187", + "fields": [ + { + "type": 2 + } + ], + "index": 187 + }, + { + "name": "Mortal188", + "fields": [ + { + "type": 2 + } + ], + "index": 188 + }, + { + "name": "Mortal189", + "fields": [ + { + "type": 2 + } + ], + "index": 189 + }, + { + "name": "Mortal190", + "fields": [ + { + "type": 2 + } + ], + "index": 190 + }, + { + "name": "Mortal191", + "fields": [ + { + "type": 2 + } + ], + "index": 191 + }, + { + "name": "Mortal192", + "fields": [ + { + "type": 2 + } + ], + "index": 192 + }, + { + "name": "Mortal193", + "fields": [ + { + "type": 2 + } + ], + "index": 193 + }, + { + "name": "Mortal194", + "fields": [ + { + "type": 2 + } + ], + "index": 194 + }, + { + "name": "Mortal195", + "fields": [ + { + "type": 2 + } + ], + "index": 195 + }, + { + "name": "Mortal196", + "fields": [ + { + "type": 2 + } + ], + "index": 196 + }, + { + "name": "Mortal197", + "fields": [ + { + "type": 2 + } + ], + "index": 197 + }, + { + "name": "Mortal198", + "fields": [ + { + "type": 2 + } + ], + "index": 198 + }, + { + "name": "Mortal199", + "fields": [ + { + "type": 2 + } + ], + "index": 199 + }, + { + "name": "Mortal200", + "fields": [ + { + "type": 2 + } + ], + "index": 200 + }, + { + "name": "Mortal201", + "fields": [ + { + "type": 2 + } + ], + "index": 201 + }, + { + "name": "Mortal202", + "fields": [ + { + "type": 2 + } + ], + "index": 202 + }, + { + "name": "Mortal203", + "fields": [ + { + "type": 2 + } + ], + "index": 203 + }, + { + "name": "Mortal204", + "fields": [ + { + "type": 2 + } + ], + "index": 204 + }, + { + "name": "Mortal205", + "fields": [ + { + "type": 2 + } + ], + "index": 205 + }, + { + "name": "Mortal206", + "fields": [ + { + "type": 2 + } + ], + "index": 206 + }, + { + "name": "Mortal207", + "fields": [ + { + "type": 2 + } + ], + "index": 207 + }, + { + "name": "Mortal208", + "fields": [ + { + "type": 2 + } + ], + "index": 208 + }, + { + "name": "Mortal209", + "fields": [ + { + "type": 2 + } + ], + "index": 209 + }, + { + "name": "Mortal210", + "fields": [ + { + "type": 2 + } + ], + "index": 210 + }, + { + "name": "Mortal211", + "fields": [ + { + "type": 2 + } + ], + "index": 211 + }, + { + "name": "Mortal212", + "fields": [ + { + "type": 2 + } + ], + "index": 212 + }, + { + "name": "Mortal213", + "fields": [ + { + "type": 2 + } + ], + "index": 213 + }, + { + "name": "Mortal214", + "fields": [ + { + "type": 2 + } + ], + "index": 214 + }, + { + "name": "Mortal215", + "fields": [ + { + "type": 2 + } + ], + "index": 215 + }, + { + "name": "Mortal216", + "fields": [ + { + "type": 2 + } + ], + "index": 216 + }, + { + "name": "Mortal217", + "fields": [ + { + "type": 2 + } + ], + "index": 217 + }, + { + "name": "Mortal218", + "fields": [ + { + "type": 2 + } + ], + "index": 218 + }, + { + "name": "Mortal219", + "fields": [ + { + "type": 2 + } + ], + "index": 219 + }, + { + "name": "Mortal220", + "fields": [ + { + "type": 2 + } + ], + "index": 220 + }, + { + "name": "Mortal221", + "fields": [ + { + "type": 2 + } + ], + "index": 221 + }, + { + "name": "Mortal222", + "fields": [ + { + "type": 2 + } + ], + "index": 222 + }, + { + "name": "Mortal223", + "fields": [ + { + "type": 2 + } + ], + "index": 223 + }, + { + "name": "Mortal224", + "fields": [ + { + "type": 2 + } + ], + "index": 224 + }, + { + "name": "Mortal225", + "fields": [ + { + "type": 2 + } + ], + "index": 225 + }, + { + "name": "Mortal226", + "fields": [ + { + "type": 2 + } + ], + "index": 226 + }, + { + "name": "Mortal227", + "fields": [ + { + "type": 2 + } + ], + "index": 227 + }, + { + "name": "Mortal228", + "fields": [ + { + "type": 2 + } + ], + "index": 228 + }, + { + "name": "Mortal229", + "fields": [ + { + "type": 2 + } + ], + "index": 229 + }, + { + "name": "Mortal230", + "fields": [ + { + "type": 2 + } + ], + "index": 230 + }, + { + "name": "Mortal231", + "fields": [ + { + "type": 2 + } + ], + "index": 231 + }, + { + "name": "Mortal232", + "fields": [ + { + "type": 2 + } + ], + "index": 232 + }, + { + "name": "Mortal233", + "fields": [ + { + "type": 2 + } + ], + "index": 233 + }, + { + "name": "Mortal234", + "fields": [ + { + "type": 2 + } + ], + "index": 234 + }, + { + "name": "Mortal235", + "fields": [ + { + "type": 2 + } + ], + "index": 235 + }, + { + "name": "Mortal236", + "fields": [ + { + "type": 2 + } + ], + "index": 236 + }, + { + "name": "Mortal237", + "fields": [ + { + "type": 2 + } + ], + "index": 237 + }, + { + "name": "Mortal238", + "fields": [ + { + "type": 2 + } + ], + "index": 238 + }, + { + "name": "Mortal239", + "fields": [ + { + "type": 2 + } + ], + "index": 239 + }, + { + "name": "Mortal240", + "fields": [ + { + "type": 2 + } + ], + "index": 240 + }, + { + "name": "Mortal241", + "fields": [ + { + "type": 2 + } + ], + "index": 241 + }, + { + "name": "Mortal242", + "fields": [ + { + "type": 2 + } + ], + "index": 242 + }, + { + "name": "Mortal243", + "fields": [ + { + "type": 2 + } + ], + "index": 243 + }, + { + "name": "Mortal244", + "fields": [ + { + "type": 2 + } + ], + "index": 244 + }, + { + "name": "Mortal245", + "fields": [ + { + "type": 2 + } + ], + "index": 245 + }, + { + "name": "Mortal246", + "fields": [ + { + "type": 2 + } + ], + "index": 246 + }, + { + "name": "Mortal247", + "fields": [ + { + "type": 2 + } + ], + "index": 247 + }, + { + "name": "Mortal248", + "fields": [ + { + "type": 2 + } + ], + "index": 248 + }, + { + "name": "Mortal249", + "fields": [ + { + "type": 2 + } + ], + "index": 249 + }, + { + "name": "Mortal250", + "fields": [ + { + "type": 2 + } + ], + "index": 250 + }, + { + "name": "Mortal251", + "fields": [ + { + "type": 2 + } + ], + "index": 251 + }, + { + "name": "Mortal252", + "fields": [ + { + "type": 2 + } + ], + "index": 252 + }, + { + "name": "Mortal253", + "fields": [ + { + "type": 2 + } + ], + "index": 253 + }, + { + "name": "Mortal254", + "fields": [ + { + "type": 2 + } + ], + "index": 254 + }, + { + "name": "Mortal255", + "fields": [ + { + "type": 2 + } + ], + "index": 255 + } + ] + } + } + } + }, + { + "id": 752, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 138, + "typeName": "T::Index" + } + ] + } + } + } + }, + { + "id": 753, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 754, + "type": { + "path": [ + "pallet_asset_tx_payment", + "ChargeAssetTxPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "tip", + "type": 76, + "typeName": "BalanceOf" + }, + { + "name": "asset_id", + "type": 37, + "typeName": "Option>" + } + ] + } + } + } + }, + { + "id": 755, + "type": { + "path": [ + "kitchensink_runtime", + "Runtime" + ], + "def": { + "composite": {} + } + } + } + ] + }, + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "entries": [ + { + "name": "Account", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "ty": { + "Plain": 7 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 11 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 12 + } + }, + "default": [ + 0 + ], + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "ty": { + "Plain": 11 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "ty": { + "Plain": 13 + }, + "default": [ + 0 + ], + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "ty": { + "Plain": 17 + }, + "default": [ + 0 + ], + "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", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 11, + "value": 403 + } + }, + "default": [ + 0 + ], + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "ty": { + "Plain": 404 + }, + "default": [ + 0 + ], + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "ty": { + "Plain": 401 + }, + "default": [ + 0 + ], + "docs": [ + " The execution phase of the block." + ] + } + ] + }, + "calls": { + "ty": 122 + }, + "event": { + "ty": 20 + }, + "constants": [ + { + "name": "BlockWeights", + "ty": 406, + "value": [ + 98, + 79, + 215, + 90, + 0, + 11, + 0, + 32, + 74, + 169, + 209, + 1, + 19, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 2, + 192, + 205, + 23, + 0, + 1, + 11, + 0, + 88, + 22, + 168, + 46, + 1, + 19, + 102, + 102, + 102, + 102, + 102, + 102, + 102, + 166, + 1, + 11, + 0, + 152, + 247, + 62, + 93, + 1, + 19, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 191, + 1, + 0, + 0, + 2, + 192, + 205, + 23, + 0, + 1, + 11, + 0, + 224, + 104, + 18, + 163, + 1, + 19, + 102, + 102, + 102, + 102, + 102, + 102, + 102, + 230, + 1, + 11, + 0, + 32, + 74, + 169, + 209, + 1, + 19, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 1, + 7, + 0, + 136, + 82, + 106, + 116, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 64, + 2, + 192, + 205, + 23, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "ty": 409, + "value": [ + 0, + 0, + 60, + 0, + 0, + 0, + 80, + 0, + 0, + 0, + 80, + 0 + ], + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "ty": 4, + "value": [ + 96, + 9, + 0, + 0 + ], + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "ty": 411, + "value": [ + 64, + 120, + 125, + 1, + 0, + 0, + 0, + 0, + 0, + 225, + 245, + 5, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "ty": 412, + "value": [ + 16, + 110, + 111, + 100, + 101, + 56, + 115, + 117, + 98, + 115, + 116, + 114, + 97, + 116, + 101, + 45, + 110, + 111, + 100, + 101, + 10, + 0, + 0, + 0, + 12, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 68, + 223, + 106, + 203, + 104, + 153, + 7, + 96, + 155, + 4, + 0, + 0, + 0, + 55, + 227, + 151, + 252, + 124, + 145, + 245, + 228, + 1, + 0, + 0, + 0, + 64, + 254, + 58, + 212, + 1, + 248, + 149, + 154, + 6, + 0, + 0, + 0, + 210, + 188, + 152, + 151, + 238, + 208, + 143, + 21, + 3, + 0, + 0, + 0, + 247, + 139, + 39, + 139, + 229, + 63, + 69, + 76, + 2, + 0, + 0, + 0, + 237, + 153, + 197, + 172, + 178, + 94, + 237, + 245, + 3, + 0, + 0, + 0, + 23, + 166, + 188, + 13, + 0, + 98, + 174, + 179, + 1, + 0, + 0, + 0, + 24, + 239, + 88, + 163, + 182, + 123, + 167, + 112, + 1, + 0, + 0, + 0, + 203, + 202, + 37, + 227, + 159, + 20, + 35, + 135, + 2, + 0, + 0, + 0, + 104, + 122, + 212, + 74, + 211, + 127, + 3, + 194, + 1, + 0, + 0, + 0, + 188, + 157, + 137, + 144, + 79, + 91, + 146, + 63, + 1, + 0, + 0, + 0, + 104, + 182, + 107, + 161, + 34, + 201, + 63, + 167, + 2, + 0, + 0, + 0, + 55, + 200, + 187, + 19, + 80, + 169, + 162, + 168, + 3, + 0, + 0, + 0, + 243, + 255, + 20, + 213, + 171, + 82, + 112, + 89, + 3, + 0, + 0, + 0, + 137, + 154, + 37, + 12, + 190, + 132, + 242, + 80, + 1, + 0, + 0, + 0, + 145, + 213, + 223, + 24, + 176, + 210, + 207, + 88, + 1, + 0, + 0, + 0, + 171, + 60, + 5, + 114, + 41, + 31, + 235, + 139, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "docs": [ + " Get the chain's current version." + ] + }, + { + "name": "SS58Prefix", + "ty": 93, + "value": [ + 42, + 0 + ], + "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." + ] + } + ], + "error": { + "ty": 416 + }, + "index": 0 + }, + { + "name": "Utility", + "storage": null, + "calls": { + "ty": 126 + }, + "event": { + "ty": 29 + }, + "constants": [ + { + "name": "batched_calls_limit", + "ty": 4, + "value": [ + 170, + 42, + 0, + 0 + ], + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "error": { + "ty": 417 + }, + "index": 1 + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "entries": [ + { + "name": "EpochIndex", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "ty": { + "Plain": 418 + }, + "default": [ + 0 + ], + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "ty": { + "Plain": 140 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "ty": { + "Plain": 140 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "ty": { + "Plain": 1 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "ty": { + "Plain": 142 + }, + "default": [ + 0 + ], + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "ty": { + "Plain": 1 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "ty": { + "Plain": 418 + }, + "default": [ + 0 + ], + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Randomness under construction.", + "", + " We make a trade-off between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 421 + } + }, + "default": [ + 0 + ], + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "ty": { + "Plain": 423 + }, + "default": [ + 0 + ], + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "ty": { + "Plain": 88 + }, + "default": [ + 0 + ], + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_finalize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "ty": { + "Plain": 87 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "ty": { + "Plain": 428 + }, + "default": [ + 0 + ], + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "ty": { + "Plain": 428 + }, + "default": [ + 0 + ], + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + }, + { + "name": "SkippedEpochs", + "modifier": "Default", + "ty": { + "Plain": 429 + }, + "default": [ + 0 + ], + "docs": [ + " A list of the last 100 skipped epochs and the corresponding session index", + " when the epoch was skipped.", + "", + " This is only used for validating equivocation proofs. An equivocation proof", + " must contains a key-ownership proof for a given session, therefore we need a", + " way to tie together sessions and epoch indices, i.e. we need to validate that", + " a validator was the owner of a given key on a given session, and what the", + " active epoch index was during that session." + ] + } + ] + }, + "calls": { + "ty": 134 + }, + "event": null, + "constants": [ + { + "name": "EpochDuration", + "ty": 10, + "value": [ + 200, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "ty": 10, + "value": [ + 184, + 11, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + }, + { + "name": "MaxAuthorities", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Max number of authorities allowed" + ] + } + ], + "error": { + "ty": 432 + }, + "index": 2 + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "entries": [ + { + "name": "Now", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " Did the timestamp get updated in this block?" + ] + } + ] + }, + "calls": { + "ty": 145 + }, + "event": null, + "constants": [ + { + "name": "MinimumPeriod", + "ty": 10, + "value": [ + 220, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum period between blocks. Beware that this is different to the *expected*", + " period that the block production apparatus provides. Your chosen consensus system will", + " generally work with this to determine a sensible block time. e.g. For Aura, it will be", + " double this period on default settings." + ] + } + ], + "error": null, + "index": 3 + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "entries": [ + { + "name": "Author", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 4 + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "entries": [ + { + "name": "Accounts", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 433 + } + }, + "default": [ + 0 + ], + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "ty": 146 + }, + "event": { + "ty": 32 + }, + "constants": [ + { + "name": "Deposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "error": { + "ty": 434 + }, + "index": 5 + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "entries": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 435 + } + }, + "default": [ + 0 + ], + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock." + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 439 + } + }, + "default": [ + 0 + ], + "docs": [ + " Named reserves on some account balances." + ] + } + ] + }, + "calls": { + "ty": 149 + }, + "event": { + "ty": 33 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount required to keep an account open." + ] + }, + { + "name": "MaxLocks", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation." + ] + }, + { + "name": "MaxReserves", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of named reserves that can exist on an account." + ] + } + ], + "error": { + "ty": 442 + }, + "index": 6 + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "entries": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "ty": { + "Plain": 443 + }, + "default": [ + 0, + 0, + 100, + 167, + 179, + 182, + 224, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "ty": { + "Plain": 444 + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": null, + "event": { + "ty": 35 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "ty": 2, + "value": [ + 5 + ], + "docs": [ + " A fee mulitplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multipled 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." + ] + } + ], + "error": null, + "index": 7 + }, + { + "name": "AssetTxPayment", + "storage": null, + "calls": null, + "event": { + "ty": 36 + }, + "constants": [], + "error": null, + "index": 8 + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "entries": [ + { + "name": "Round", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 1, + 0, + 0, + 0 + ], + "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", + "ty": { + "Plain": 43 + }, + "default": [ + 0 + ], + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "ty": { + "Plain": 445 + }, + "default": [ + 0 + ], + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "ty": { + "Plain": 447 + }, + "default": [ + 0 + ], + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "ty": { + "Plain": 203 + }, + "default": [ + 0 + ], + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "ty": { + "Plain": 451 + }, + "default": [ + 0 + ], + "docs": [ + " A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a", + " value in `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 454 + } + }, + "default": [ + 0 + ], + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "ty": { + "Plain": 42 + }, + "default": [ + 0 + ], + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": { + "ty": 150 + }, + "event": { + "ty": 38 + }, + "constants": [ + { + "name": "UnsignedPhase", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " Duration of the unsigned phase." + ] + }, + { + "name": "SignedPhase", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " Duration of the signed phase." + ] + }, + { + "name": "BetterSignedThreshold", + "ty": 46, + "value": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Signed phase." + ] + }, + { + "name": "BetterUnsignedThreshold", + "ty": 46, + "value": [ + 160, + 134, + 1, + 0 + ], + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Unsigned phase." + ] + }, + { + "name": "OffchainRepeat", + "ty": 4, + "value": [ + 5, + 0, + 0, + 0 + ], + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "ty": 10, + "value": [ + 254, + 255, + 255, + 255, + 255, + 255, + 255, + 127 + ], + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "SignedMaxSubmissions", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "ty": 8, + "value": [ + 11, + 40, + 132, + 96, + 145, + 46, + 1, + 19, + 102, + 102, + 102, + 102, + 102, + 102, + 102, + 166 + ], + "docs": [ + " Maximum weight of a signed solution.", + "", + " If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of", + " this pallet), then [`MinerConfig::solution_weight`] is used to compare against", + " this value." + ] + }, + { + "name": "SignedMaxRefunds", + "ty": 4, + "value": [ + 3, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of unchecked solutions to refund the call fee for." + ] + }, + { + "name": "SignedRewardBase", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositBase", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Base deposit for a signed solution." + ] + }, + { + "name": "SignedDepositByte", + "ty": 6, + "value": [ + 0, + 16, + 165, + 212, + 232, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "ty": 6, + "value": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MaxElectingVoters", + "ty": 4, + "value": [ + 64, + 156, + 0, + 0 + ], + "docs": [ + " The maximum number of electing voters to put in the snapshot. At the moment, snapshots", + " are only over a single block, but once multi-block elections are introduced they will", + " take place over multiple blocks." + ] + }, + { + "name": "MaxElectableTargets", + "ty": 93, + "value": [ + 16, + 39 + ], + "docs": [ + " The maximum number of electable targets to put in the snapshot." + ] + }, + { + "name": "MaxWinners", + "ty": 4, + "value": [ + 232, + 3, + 0, + 0 + ], + "docs": [ + " The maximum number of winners that can be elected by this `ElectionProvider`", + " implementation.", + "", + " Note: This must always be greater or equal to `T::DataProvider::desired_targets()`." + ] + }, + { + "name": "MinerMaxLength", + "ty": 4, + "value": [ + 0, + 0, + 54, + 0 + ], + "docs": [] + }, + { + "name": "MinerMaxWeight", + "ty": 8, + "value": [ + 11, + 40, + 132, + 96, + 145, + 46, + 1, + 19, + 102, + 102, + 102, + 102, + 102, + 102, + 102, + 166 + ], + "docs": [] + }, + { + "name": "MinerMaxVotesPerVoter", + "ty": 4, + "value": [ + 16, + 0, + 0, + 0 + ], + "docs": [] + } + ], + "error": { + "ty": 455 + }, + "index": 9 + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "entries": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "ty": { + "Plain": 46 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 456 + } + }, + "default": [ + 0 + ], + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." + ] + }, + { + "name": "Payee", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 209 + } + }, + "default": [ + 0 + ], + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 47 + } + }, + "default": [ + 0, + 0 + ], + "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", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 461 + } + }, + "default": [ + 0 + ], + "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", + " [`Config::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", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "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", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "ty": { + "Plain": 462 + }, + "default": [ + 0 + ], + "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 [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " The session index at which the era start for the last `HISTORY_DEPTH` eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 75 + } + }, + "default": [ + 0, + 0, + 0 + ], + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 75 + } + }, + "default": [ + 0, + 0, + 0 + ], + "docs": [ + " Clipped Exposure of validator at era.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxNominatorRewardedPerValidator` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 47 + } + }, + "default": [ + 0, + 0 + ], + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "default": [ + 0 + ], + "docs": [ + " The total validator era payout for the last `HISTORY_DEPTH` eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 465 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Rewards for the last `HISTORY_DEPTH` eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total amount staked for the last `HISTORY_DEPTH` eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "ty": { + "Plain": 49 + }, + "default": [ + 0 + ], + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "ty": { + "Plain": 46 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "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", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 469 + } + }, + "default": [ + 0 + ], + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "ty": { + "Plain": 403 + }, + "default": [ + 0 + ], + "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": "ValidatorSlashInEra", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 471 + } + }, + "default": [ + 0 + ], + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 6 + } + }, + "default": [ + 0 + ], + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 472 + } + }, + "default": [ + 0 + ], + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 468, + "value": 473 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "OffendingValidators", + "modifier": "Default", + "ty": { + "Plain": 474 + }, + "default": [ + 0 + ], + "docs": [ + " Indices of validators that have offended in the active era and whether they are currently", + " disabled.", + "", + " This value should be a superset of disabled validators since not all offences lead to the", + " validator being disabled (if there was no slash). This is needed to track the percentage of", + " validators that have offended in the current era, ensuring a new era is forced if", + " `OffendingValidatorsThreshold` is reached. The vec is always kept sorted so that we can find", + " whether a given validator has previously offended using binary search. It gets cleared when", + " the era ends." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "ty": { + "Plain": 211 + }, + "default": [ + 0 + ], + "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`)." + ] + } + ] + }, + "calls": { + "ty": 208 + }, + "event": { + "ty": 45 + }, + "constants": [ + { + "name": "MaxNominations", + "ty": 4, + "value": [ + 16, + 0, + 0, + 0 + ], + "docs": [ + " Maximum number of nominations per nominator." + ] + }, + { + "name": "HistoryDepth", + "ty": 4, + "value": [ + 84, + 0, + 0, + 0 + ], + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`,", + " `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`,", + " `ErasTotalStake`, `ErasStartSessionIndex`,", + " `StakingLedger.claimed_rewards`.", + "", + " 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.", + "", + " Note: `HistoryDepth` is used as the upper bound for the `BoundedVec`", + " item `StakingLedger.claimed_rewards`. Setting this value lower than", + " the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a migration.", + " The test `reducing_history_depth_abrupt` shows this effect." + ] + }, + { + "name": "SessionsPerEra", + "ty": 4, + "value": [ + 6, + 0, + 0, + 0 + ], + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "ty": 4, + "value": [ + 160, + 2, + 0, + 0 + ], + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "ty": 4, + "value": [ + 168, + 0, + 0, + 0 + ], + "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": "MaxNominatorRewardedPerValidator", + "ty": 4, + "value": [ + 0, + 1, + 0, + 0 + ], + "docs": [ + " The maximum number of nominators rewarded for each validator.", + "", + " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can", + " claim their reward. This used to limit the i/o cost for the nominator payout." + ] + }, + { + "name": "MaxUnlockingChunks", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "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." + ] + } + ], + "error": { + "ty": 476 + }, + "index": 10 + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "entries": [ + { + "name": "Validators", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "ty": { + "Plain": 477 + }, + "default": [ + 0 + ], + "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", + "ty": { + "Plain": 105 + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 217 + } + }, + "default": [ + 0 + ], + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 479, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "ty": 216 + }, + "event": { + "ty": 50 + }, + "constants": [], + "error": { + "ty": 481 + }, + "index": 11 + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "entries": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "ty": { + "Plain": 482 + }, + "default": [ + 0 + ], + "docs": [ + " The public proposals. Unsorted. The second item is the proposal." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 485 + } + }, + "default": [ + 0 + ], + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 487 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 490 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "ty": { + "Plain": 496 + }, + "default": [ + 0 + ], + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 497 + } + }, + "default": [ + 0 + ], + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 41 + } + }, + "default": [ + 0 + ], + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 55, + "value": 11 + } + }, + "default": [ + 0 + ], + "docs": [ + " General information concerning any proposal or referendum.", + " The `PreimageHash` 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": { + "ty": 219 + }, + "event": { + "ty": 51 + }, + "constants": [ + { + "name": "EnactmentPeriod", + "ty": 4, + "value": [ + 0, + 47, + 13, + 0 + ], + "docs": [ + " The period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case", + " where they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "VoteLockingPeriod", + "ty": 4, + "value": [ + 0, + 47, + 13, + 0 + ], + "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." + ] + }, + { + "name": "MinimumDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "InstantAllowed", + "ty": 41, + "value": [ + 1 + ], + "docs": [ + " Indicator for whether an emergency origin is even allowed to happen. Some chains may", + " want to set this permanently to `false`, others may want to condition it on things such", + " as an upgrade having happened recently." + ] + }, + { + "name": "FastTrackVotingPeriod", + "ty": 4, + "value": [ + 128, + 81, + 1, + 0 + ], + "docs": [ + " Minimum voting period allowed for a fast-track referendum." + ] + }, + { + "name": "CooloffPeriod", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "MaxVotes", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of votes for an account.", + "", + " Also used to compute weight, an overly big value can", + " lead to extrinsic with very big weight: see `delegate` for instance." + ] + }, + { + "name": "MaxProposals", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of public proposals that can exist at any time." + ] + }, + { + "name": "MaxDeposits", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of deposits a public proposal may have at any time." + ] + }, + { + "name": "MaxBlacklisted", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of items which can be blacklisted." + ] + } + ], + "error": { + "ty": 498 + }, + "index": 12 + }, + { + "name": "Council", + "storage": { + "prefix": "Council", + "entries": [ + { + "name": "Proposals", + "modifier": "Default", + "ty": { + "Plain": 499 + }, + "default": [ + 0 + ], + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 121 + } + }, + "default": [ + 0 + ], + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 500 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": { + "ty": 222 + }, + "event": { + "ty": 56 + }, + "constants": [], + "error": { + "ty": 501 + }, + "index": 13 + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "TechnicalCommittee", + "entries": [ + { + "name": "Proposals", + "modifier": "Default", + "ty": { + "Plain": 502 + }, + "default": [ + 0 + ], + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 121 + } + }, + "default": [ + 0 + ], + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 500 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": { + "ty": 225 + }, + "event": { + "ty": 57 + }, + "constants": [], + "error": { + "ty": 503 + }, + "index": 14 + }, + { + "name": "Elections", + "storage": { + "prefix": "Elections", + "entries": [ + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 504 + }, + "default": [ + 0 + ], + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "ty": { + "Plain": 504 + }, + "default": [ + 0 + ], + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "ty": { + "Plain": 59 + }, + "default": [ + 0 + ], + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 506 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ] + } + ] + }, + "calls": { + "ty": 226 + }, + "event": { + "ty": 58 + }, + "constants": [ + { + "name": "PalletId", + "ty": 266, + "value": [ + 112, + 104, + 114, + 101, + 108, + 101, + 99, + 116 + ], + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ] + }, + { + "name": "CandidacyBond", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ] + }, + { + "name": "VotingBondBase", + "ty": 6, + "value": [ + 0, + 240, + 67, + 109, + 227, + 106, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ] + }, + { + "name": "VotingBondFactor", + "ty": 6, + "value": [ + 0, + 0, + 204, + 123, + 159, + 174, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ] + }, + { + "name": "DesiredMembers", + "ty": 4, + "value": [ + 13, + 0, + 0, + 0 + ], + "docs": [ + " Number of members to elect." + ] + }, + { + "name": "DesiredRunnersUp", + "ty": 4, + "value": [ + 7, + 0, + 0, + 0 + ], + "docs": [ + " Number of runners_up to keep." + ] + }, + { + "name": "TermDuration", + "ty": 4, + "value": [ + 128, + 19, + 3, + 0 + ], + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ] + }, + { + "name": "MaxCandidates", + "ty": 4, + "value": [ + 64, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of candidates in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When this limit is reached no more candidates are accepted in the election." + ] + }, + { + "name": "MaxVoters", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "docs": [ + " The maximum number of voters to allow in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When the limit is reached the new voters are ignored." + ] + }, + { + "name": "MaxVotesPerVoter", + "ty": 4, + "value": [ + 16, + 0, + 0, + 0 + ], + "docs": [ + " Maximum numbers of votes per voter.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`." + ] + } + ], + "error": { + "ty": 507 + }, + "index": 15 + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "TechnicalMembership", + "entries": [ + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 508 + }, + "default": [ + 0 + ], + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": { + "ty": 228 + }, + "event": { + "ty": 61 + }, + "constants": [], + "error": { + "ty": 509 + }, + "index": 16 + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "entries": [ + { + "name": "State", + "modifier": "Default", + "ty": { + "Plain": 510 + }, + "default": [ + 0 + ], + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "ty": { + "Plain": 511 + }, + "default": [ + 0 + ], + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "ty": { + "Plain": 87 + }, + "default": [ + 0 + ], + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 10, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + } + ] + }, + "calls": { + "ty": 229 + }, + "event": { + "ty": 62 + }, + "constants": [ + { + "name": "MaxAuthorities", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Max Authorities in use" + ] + }, + { + "name": "MaxSetIdSessionEntries", + "ty": 10, + "value": [ + 192, + 15, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "error": { + "ty": 513 + }, + "index": 17 + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "entries": [ + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 514 + } + }, + "default": [ + 0 + ], + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "ty": { + "Plain": 515 + }, + "default": [ + 0 + ], + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + } + ] + }, + "calls": { + "ty": 241 + }, + "event": { + "ty": 67 + }, + "constants": [ + { + "name": "ProposalBond", + "ty": 516, + "value": [ + 80, + 195, + 0, + 0 + ], + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "ProposalBondMaximum", + "ty": 317, + "value": [ + 0 + ], + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "ty": 4, + "value": [ + 128, + 112, + 0, + 0 + ], + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "ty": 516, + "value": [ + 32, + 161, + 7, + 0 + ], + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 116, + 114, + 115, + 114, + 121 + ], + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " 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." + ] + } + ], + "error": { + "ty": 518 + }, + "index": 18 + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contracts", + "entries": [ + { + "name": "PristineCode", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 519 + } + }, + "default": [ + 0 + ], + "docs": [ + " A mapping from an original code hash to the original code, untouched by instrumentation." + ] + }, + { + "name": "CodeStorage", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 520 + } + }, + "default": [ + 0 + ], + "docs": [ + " A mapping between an original code hash and instrumented wasm code, ready for execution." + ] + }, + { + "name": "OwnerInfoOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 522 + } + }, + "default": [ + 0 + ], + "docs": [ + " A mapping between an original code hash and its owner information." + ] + }, + { + "name": "Nonce", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " This is a **monotonic** counter incremented on contract instantiation.", + "", + " This is used in order to generate unique trie ids for contracts.", + " The trie id of a new contract is calculated from hash(account_id, nonce).", + " The nonce is required because otherwise the following sequence would lead to", + " a possible collision of storage:", + "", + " 1. Create a new contract.", + " 2. Terminate the contract.", + " 3. Immediately recreate the contract with the same account_id.", + "", + " This is bad because the contents of a trie are deleted lazily and there might be", + " storage of the old instantiation still in it when the new contract is created. Please", + " note that we can't replace the counter by the block number because the sequence above", + " can happen in the same block. We also can't keep the account counter in memory only", + " because storage is the only way to communicate across different extrinsics in the", + " same block.", + "", + " # Note", + "", + " Do not use it to determine the number of contracts. It won't be decremented if", + " a contract is destroyed." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 523 + } + }, + "default": [ + 0 + ], + "docs": [ + " The code associated with a given account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "DeletionQueue", + "modifier": "Default", + "ty": { + "Plain": 525 + }, + "default": [ + 0 + ], + "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_initialize`." + ] + } + ] + }, + "calls": { + "ty": 242 + }, + "event": { + "ty": 68 + }, + "constants": [ + { + "name": "Schedule", + "ty": 528, + "value": [ + 4, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 4, + 0, + 0, + 128, + 0, + 0, + 0, + 16, + 0, + 0, + 0, + 0, + 16, + 0, + 0, + 0, + 1, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 64, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 8, + 0, + 0, + 240, + 25, + 0, + 0, + 6, + 23, + 0, + 0, + 183, + 12, + 0, + 0, + 67, + 27, + 0, + 0, + 239, + 8, + 0, + 0, + 244, + 12, + 0, + 0, + 81, + 21, + 0, + 0, + 46, + 0, + 0, + 0, + 3, + 75, + 0, + 0, + 23, + 90, + 0, + 0, + 241, + 8, + 0, + 0, + 145, + 3, + 0, + 0, + 230, + 9, + 0, + 0, + 235, + 10, + 0, + 0, + 156, + 9, + 0, + 0, + 252, + 26, + 0, + 0, + 226, + 27, + 0, + 0, + 183, + 23, + 0, + 0, + 93, + 226, + 225, + 0, + 88, + 8, + 0, + 0, + 176, + 8, + 0, + 0, + 166, + 9, + 0, + 0, + 106, + 9, + 0, + 0, + 18, + 8, + 0, + 0, + 203, + 7, + 0, + 0, + 10, + 8, + 0, + 0, + 98, + 11, + 0, + 0, + 80, + 11, + 0, + 0, + 27, + 11, + 0, + 0, + 71, + 11, + 0, + 0, + 73, + 11, + 0, + 0, + 200, + 11, + 0, + 0, + 87, + 11, + 0, + 0, + 49, + 12, + 0, + 0, + 90, + 11, + 0, + 0, + 142, + 11, + 0, + 0, + 226, + 10, + 0, + 0, + 126, + 10, + 0, + 0, + 128, + 10, + 0, + 0, + 81, + 35, + 0, + 0, + 208, + 32, + 0, + 0, + 106, + 36, + 0, + 0, + 161, + 32, + 0, + 0, + 233, + 10, + 0, + 0, + 128, + 13, + 0, + 0, + 233, + 10, + 0, + 0, + 2, + 11, + 0, + 0, + 39, + 11, + 0, + 0, + 29, + 11, + 0, + 0, + 34, + 11, + 0, + 0, + 229, + 10, + 0, + 0, + 22, + 132, + 13, + 0, + 120, + 66, + 237, + 179, + 6, + 241, + 59, + 146, + 107, + 220, + 6, + 65, + 60, + 118, + 18, + 17, + 0, + 120, + 174, + 170, + 8, + 0, + 60, + 246, + 125, + 13, + 0, + 120, + 30, + 22, + 13, + 0, + 120, + 118, + 253, + 74, + 0, + 120, + 166, + 78, + 13, + 0, + 120, + 50, + 21, + 13, + 0, + 120, + 246, + 235, + 12, + 0, + 120, + 6, + 58, + 13, + 0, + 120, + 6, + 139, + 67, + 0, + 240, + 78, + 37, + 6, + 0, + 0, + 78, + 27, + 12, + 0, + 120, + 217, + 1, + 0, + 214, + 10, + 106, + 0, + 133, + 3, + 141, + 3, + 0, + 6, + 77, + 115, + 219, + 113, + 234, + 254, + 235, + 84, + 0, + 240, + 98, + 224, + 174, + 0, + 200, + 118, + 216, + 87, + 30, + 53, + 41, + 169, + 13, + 0, + 222, + 81, + 11, + 0, + 140, + 129, + 12, + 0, + 122, + 209, + 47, + 31, + 145, + 4, + 141, + 185, + 0, + 113, + 179, + 8, + 30, + 112, + 19, + 66, + 41, + 184, + 70, + 63, + 39, + 31, + 129, + 4, + 161, + 179, + 8, + 234, + 89, + 6, + 7, + 129, + 4, + 41, + 45, + 8, + 142, + 23, + 17, + 7, + 161, + 4, + 17, + 64, + 8, + 246, + 82, + 48, + 31, + 161, + 4, + 169, + 198, + 8, + 230, + 224, + 246, + 33, + 53, + 42, + 234, + 159, + 250, + 145, + 229, + 99, + 46, + 231, + 27, + 119, + 229, + 128, + 202, + 106, + 81, + 34, + 169, + 55, + 225, + 1, + 0, + 3, + 216, + 131, + 126, + 65, + 2, + 11, + 1, + 0, + 214, + 0, + 160, + 0, + 132, + 13, + 24, + 0, + 37, + 24, + 0, + 18, + 68, + 32, + 0, + 160, + 229, + 61, + 0, + 78, + 21, + 44, + 0, + 160, + 197, + 49, + 0, + 30, + 113, + 25, + 0, + 160, + 177, + 19, + 0, + 70, + 106, + 27, + 0, + 168, + 181, + 19, + 0, + 174, + 234, + 0, + 9, + 241, + 5, + 242, + 62, + 51, + 2, + 73, + 3, + 210, + 194, + 8, + 0, + 60, + 210, + 198, + 13, + 0, + 25, + 3, + 66, + 40, + 7, + 0, + 72 + ], + "docs": [ + " Cost schedule and limits." + ] + }, + { + "name": "DeletionQueueDepth", + "ty": 4, + "value": [ + 128, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of contracts that can be pending for deletion.", + "", + " When a contract is deleted by calling `seal_terminate` it becomes inaccessible", + " immediately, but the deletion of the storage items it has accumulated is performed", + " later. The contract is put into the deletion queue. This defines how many", + " contracts can be queued up at the same time. If that limit is reached `seal_terminate`", + " will fail. The action must be retried in a later block in that case.", + "", + " The reasons for limiting the queue depth are:", + "", + " 1. The queue is in storage in order to be persistent between blocks. We want to limit", + " \tthe amount of storage that can be consumed.", + " 2. The queue is stored in a vector and needs to be decoded as a whole when reading", + "\t\tit at the end of each block. Longer queues take more weight to decode and hence", + "\t\tlimit the amount of items that can be deleted per block." + ] + }, + { + "name": "DeletionWeightLimit", + "ty": 8, + "value": [ + 11, + 0, + 152, + 247, + 62, + 93, + 1, + 19, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 191 + ], + "docs": [ + " The maximum amount of weight that can be consumed per block for lazy trie removal.", + "", + " The amount of weight that is dedicated per block to work on the deletion queue. Larger", + " values allow more trie keys to be deleted in each block but reduce the amount of", + " weight that is left for transactions. See [`Self::DeletionQueueDepth`] for more", + " information about the deletion queue." + ] + }, + { + "name": "DepositPerByte", + "ty": 6, + "value": [ + 0, + 96, + 222, + 251, + 116, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of balance a caller has to pay for each byte of storage.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ] + }, + { + "name": "DepositPerItem", + "ty": 6, + "value": [ + 0, + 240, + 171, + 117, + 164, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of balance a caller has to pay for each storage item.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ] + }, + { + "name": "MaxCodeLen", + "ty": 4, + "value": [ + 0, + 236, + 1, + 0 + ], + "docs": [ + " The maximum length of a contract code in bytes. This limit applies to the instrumented", + " version of the code. Therefore `instantiate_with_code` can fail even when supplying", + " a wasm binary below this maximum size.", + "", + " The value should be chosen carefully taking into the account the overall memory limit", + " your runtime has, as well as the [maximum allowed callstack", + " depth](#associatedtype.CallStack). Look into the `integrity_test()` for some insights." + ] + }, + { + "name": "MaxStorageKeyLen", + "ty": 4, + "value": [ + 128, + 0, + 0, + 0 + ], + "docs": [ + " The maximum allowable length in bytes for storage keys." + ] + }, + { + "name": "UnsafeUnstableInterface", + "ty": 41, + "value": [ + 0 + ], + "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": "MaxDebugBufferLen", + "ty": 4, + "value": [ + 0, + 0, + 32, + 0 + ], + "docs": [ + " The maximum length of the debug buffer in bytes." + ] + } + ], + "error": { + "ty": 532 + }, + "index": 19 + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "entries": [ + { + "name": "Key", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": { + "ty": 245 + }, + "event": { + "ty": 69 + }, + "constants": [], + "error": { + "ty": 533 + }, + "index": 20 + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "entries": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The block number after which it's ok to send heartbeats in the current", + " session.", + "", + " At the beginning of each session we set this to a value that should fall", + " roughly in the middle of the session duration. The idea is to first wait for", + " the validators to produce a block in the current session, so that the", + " heartbeat later on will not be necessary.", + "", + " This value will only be used as a fallback if we fail to get a proper session", + " progress estimate from `NextSessionRotation`, as those estimates should be", + " more accurate then the value we calculate for `HeartbeatAfter`." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "ty": { + "Plain": 534 + }, + "default": [ + 0 + ], + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 87, + "value": 536 + } + }, + "default": [ + 0 + ], + "docs": [ + " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex` to", + " `WrapperOpaque`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 464, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " For each session index, we keep a mapping of `ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": { + "ty": 246 + }, + "event": { + "ty": 70 + }, + "constants": [ + { + "name": "UnsignedPriority", + "ty": 10, + "value": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255 + ], + "docs": [ + " A configuration for base priority of unsigned transactions.", + "", + " This is exposed so that it can be tuned for particular runtime, when", + " multiple pallets send unsigned transactions." + ] + } + ], + "error": { + "ty": 541 + }, + "index": 21 + }, + { + "name": "AuthorityDiscovery", + "storage": { + "prefix": "AuthorityDiscovery", + "entries": [ + { + "name": "Keys", + "modifier": "Default", + "ty": { + "Plain": 542 + }, + "default": [ + 0 + ], + "docs": [ + " Keys of the current authority set." + ] + }, + { + "name": "NextKeys", + "modifier": "Default", + "ty": { + "Plain": 542 + }, + "default": [ + 0 + ], + "docs": [ + " Keys of the next authority set." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 22 + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "entries": [ + { + "name": "Reports", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 11, + "value": 544 + } + }, + "default": [ + 0 + ], + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 402 + } + }, + "default": [ + 0 + ], + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + }, + { + "name": "ReportsByKindIndex", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 80, + "value": 12 + } + }, + "default": [ + 0 + ], + "docs": [ + " Enumerates all reports of a kind along with the time they happened.", + "", + " All reports are sorted by the time of offence.", + "", + " Note that the actual type of this mapping is `Vec`, this is because values of", + " different types are not supported at the moment so we are doing the manual serialization." + ] + } + ] + }, + "calls": null, + "event": { + "ty": 79 + }, + "constants": [], + "error": null, + "index": 23 + }, + { + "name": "Historical", + "storage": null, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 24 + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "entries": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "ty": { + "Plain": 546 + }, + "default": [ + 0 + ], + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 25 + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "entries": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 547 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information that is pertinent to identify the entity behind an account.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 291 + } + }, + "default": [ + 0 + ], + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 551 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "ty": { + "Plain": 553 + }, + "default": [ + 0 + ], + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + } + ] + }, + "calls": { + "ty": 254 + }, + "event": { + "ty": 81 + }, + "constants": [ + { + "name": "BasicDeposit", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for a registered identity" + ] + }, + { + "name": "FieldDeposit", + "ty": 6, + "value": [ + 0, + 160, + 49, + 169, + 95, + 227, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit per additional field for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "ty": 6, + "value": [ + 0, + 128, + 244, + 32, + 230, + 181, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxAdditionalFields", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", + " required to access an identity, but can be pretty high." + ] + }, + { + "name": "MaxRegistrars", + "ty": 4, + "value": [ + 20, + 0, + 0, + 0 + ], + "docs": [ + " Maxmimum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + } + ], + "error": { + "ty": 557 + }, + "index": 26 + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "entries": [ + { + "name": "Founder", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The first member." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "ty": { + "Plain": 11 + }, + "default": [ + 0 + ], + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "ty": { + "Plain": 558 + }, + "default": [ + 0 + ], + "docs": [ + " The current set of candidates; bidders that are attempting to become members." + ] + }, + { + "name": "SuspendedCandidates", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 561 + } + }, + "default": [ + 0 + ], + "docs": [ + " The set of suspended candidates." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The most primary from the most recently approved members." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current set of members, ordered." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 41 + } + }, + "default": [ + 0 + ], + "docs": [ + " The set of suspended members." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "ty": { + "Plain": 558 + }, + "default": [ + 0 + ], + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Vouching", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 562 + } + }, + "default": [ + 0 + ], + "docs": [ + " Members currently vouching or banned from vouching again" + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 563 + } + }, + "default": [ + 0 + ], + "docs": [ + " Pending payouts; ordered by block number, with the amount that should be paid out." + ] + }, + { + "name": "Strikes", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The ongoing number of losing votes cast by the member." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 565, + "value": 566 + } + }, + "default": [ + 0 + ], + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "Defender", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The defending member currently being challenged." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 566 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes for the defender." + ] + }, + { + "name": "MaxMembers", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The max number of members for the society at one time." + ] + } + ] + }, + "calls": { + "ty": 295 + }, + "event": { + "ty": 82 + }, + "constants": [ + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 115, + 111, + 99, + 105, + 101 + ], + "docs": [ + " The societies's pallet id" + ] + }, + { + "name": "CandidateDeposit", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount of a deposit required for a bid to be made." + ] + }, + { + "name": "WrongSideDeduction", + "ty": 6, + "value": [ + 0, + 128, + 244, + 32, + 230, + 181, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of the unpaid reward that gets deducted in the case that either a skeptic", + " doesn't vote or someone votes in the wrong way." + ] + }, + { + "name": "MaxStrikes", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The number of times a member may vote the wrong way (or not at all, when they are a", + " skeptic) before they become suspended." + ] + }, + { + "name": "PeriodSpend", + "ty": 6, + "value": [ + 0, + 0, + 197, + 46, + 188, + 162, + 177, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "RotationPeriod", + "ty": 4, + "value": [ + 0, + 119, + 1, + 0 + ], + "docs": [ + " The number of blocks between candidate/membership rotation periods." + ] + }, + { + "name": "MaxLockDuration", + "ty": 4, + "value": [ + 0, + 156, + 218, + 1 + ], + "docs": [ + " The maximum duration of the payout lock." + ] + }, + { + "name": "ChallengePeriod", + "ty": 4, + "value": [ + 128, + 19, + 3, + 0 + ], + "docs": [ + " The number of blocks between membership challenges." + ] + }, + { + "name": "MaxCandidateIntake", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of candidates that we accept per round." + ] + } + ], + "error": { + "ty": 567 + }, + "index": 27 + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "entries": [ + { + "name": "Recoverable", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 568 + } + }, + "default": [ + 0 + ], + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 565, + "value": 570 + } + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": { + "ty": 297 + }, + "event": { + "ty": 84 + }, + "constants": [ + { + "name": "ConfigDepositBase", + "ty": 6, + "value": [ + 0, + 64, + 99, + 82, + 191, + 198, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": 6, + "value": [ + 0, + 32, + 61, + 136, + 121, + 45, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": 4, + "value": [ + 9, + 0, + 0, + 0 + ], + "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", + "ty": 6, + "value": [ + 0, + 64, + 99, + 82, + 191, + 198, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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." + ] + } + ], + "error": { + "ty": 571 + }, + "index": 28 + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "entries": [ + { + "name": "Vesting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 572 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "ty": { + "Plain": 574 + }, + "default": [ + 0 + ], + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "ty": 298 + }, + "event": { + "ty": 85 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "ty": 4, + "value": [ + 28, + 0, + 0, + 0 + ], + "docs": [] + } + ], + "error": { + "ty": 575 + }, + "index": 29 + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "entries": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "Agenda", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 576 + } + }, + "default": [ + 0 + ], + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 87 + } + }, + "default": [ + 0 + ], + "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": { + "ty": 300 + }, + "event": { + "ty": 86 + }, + "constants": [ + { + "name": "MaximumWeight", + "ty": 8, + "value": [ + 11, + 0, + 128, + 110, + 135, + 116, + 1, + 19, + 204, + 204, + 204, + 204, + 204, + 204, + 204, + 204 + ], + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "docs": [ + " The maximum number of scheduled calls in the queue for a single block." + ] + } + ], + "error": { + "ty": 580 + }, + "index": 30 + }, + { + "name": "Glutton", + "storage": { + "prefix": "Glutton", + "entries": [ + { + "name": "Compute", + "modifier": "Default", + "ty": { + "Plain": 46 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Storage value used to specify what percentage of the left over `ref_time`", + " to consume during `on_idle`." + ] + }, + { + "name": "Storage", + "modifier": "Default", + "ty": { + "Plain": 46 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Storage value used the specify what percentage of left over `proof_size`", + " to consume during `on_idle`." + ] + }, + { + "name": "TrashData", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 581 + } + }, + "default": [ + 0 + ], + "docs": [ + " Storage map used for wasting proof size.", + "", + " It contains no meaningful data - hence the name \"Trash\". The maximal number of entries is", + " set to 65k, which is just below the next jump at 16^4. This is important to reduce the proof", + " size benchmarking overestimate. The assumption here is that we won't have more than 65k *", + " 1KiB = 65MiB of proof size wasting in practice. However, this limit is not enforced, so the", + " pallet would also work out of the box with more entries, but its benchmarked proof weight", + " would possibly be underestimated in that case." + ] + }, + { + "name": "TrashDataCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The current number of entries in `TrashData`." + ] + } + ] + }, + "calls": { + "ty": 302 + }, + "event": { + "ty": 89 + }, + "constants": [], + "error": { + "ty": 582 + }, + "index": 31 + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "entries": [ + { + "name": "StatusFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 583 + } + }, + "default": [ + 0 + ], + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 585, + "value": 586 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 303 + }, + "event": { + "ty": 90 + }, + "constants": [], + "error": { + "ty": 587 + }, + "index": 32 + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "entries": [ + { + "name": "Proxies", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 588 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 592 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "ty": 304 + }, + "event": { + "ty": 91 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "ty": 6, + "value": [ + 0, + 240, + 158, + 84, + 76, + 57, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": 6, + "value": [ + 0, + 96, + 170, + 119, + 20, + 180, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "ty": 6, + "value": [ + 0, + 240, + 158, + 84, + 76, + 57, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": 6, + "value": [ + 0, + 192, + 84, + 239, + 40, + 104, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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." + ] + } + ], + "error": { + "ty": 596 + }, + "index": 33 + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "entries": [ + { + "name": "Multisigs", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 597, + "value": 598 + } + }, + "default": [ + 0 + ], + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "ty": 306 + }, + "event": { + "ty": 94 + }, + "constants": [ + { + "name": "DepositBase", + "ty": 6, + "value": [ + 0, + 240, + 28, + 10, + 219, + 237, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": 6, + "value": [ + 0, + 0, + 204, + 123, + 159, + 174, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "error": { + "ty": 599 + }, + "index": 34 + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "entries": [ + { + "name": "BountyCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 600 + } + }, + "default": [ + 0 + ], + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 602 + } + }, + "default": [ + 0 + ], + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "ty": { + "Plain": 515 + }, + "default": [ + 0 + ], + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "ty": 308 + }, + "event": { + "ty": 96 + }, + "constants": [ + { + "name": "BountyDepositBase", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "ty": 4, + "value": [ + 128, + 112, + 0, + 0 + ], + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "ty": 4, + "value": [ + 0, + 39, + 6, + 0 + ], + "docs": [ + " Bounty duration in blocks." + ] + }, + { + "name": "CuratorDepositMultiplier", + "ty": 516, + "value": [ + 32, + 161, + 7, + 0 + ], + "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", + "ty": 317, + "value": [ + 1, + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "ty": 317, + "value": [ + 1, + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "ty": 6, + "value": [ + 0, + 64, + 99, + 82, + 191, + 198, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "ty": 6, + "value": [ + 0, + 16, + 165, + 212, + 232, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "ty": 4, + "value": [ + 44, + 1, + 0, + 0 + ], + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "error": { + "ty": 603 + }, + "index": 35 + }, + { + "name": "Tips", + "storage": { + "prefix": "Tips", + "entries": [ + { + "name": "Tips", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 11, + "value": 604 + } + }, + "default": [ + 0 + ], + "docs": [ + " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 12 + } + }, + "default": [ + 0 + ], + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": { + "ty": 309 + }, + "event": { + "ty": 97 + }, + "constants": [ + { + "name": "MaximumReasonLength", + "ty": 4, + "value": [ + 44, + 1, + 0, + 0 + ], + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + }, + { + "name": "DataDepositPerByte", + "ty": 6, + "value": [ + 0, + 16, + 165, + 212, + 232, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "TipCountdown", + "ty": 4, + "value": [ + 128, + 112, + 0, + 0 + ], + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "ty": 211, + "value": [ + 20 + ], + "docs": [ + " The percent of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount held on deposit for placing a tip report." + ] + } + ], + "error": { + "ty": 605 + }, + "index": 36 + }, + { + "name": "Assets", + "storage": { + "prefix": "Assets", + "entries": [ + { + "name": "Asset", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 606 + } + }, + "default": [ + 0 + ], + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 464, + "value": 608 + } + }, + "default": [ + 0 + ], + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 610, + "value": 611 + } + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 612 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Metadata of an asset." + ] + } + ] + }, + "calls": { + "ty": 310 + }, + "event": { + "ty": 98 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "ty": 4, + "value": [ + 232, + 3, + 0, + 0 + ], + "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", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "error": { + "ty": 613 + }, + "index": 37 + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "entries": [ + { + "name": "RootHash", + "modifier": "Default", + "ty": { + "Plain": 11 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "ty": { + "Plain": 10 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 10, + "value": 11 + } + }, + "default": [ + 0 + ], + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "event": null, + "constants": [], + "error": null, + "index": 38 + }, + { + "name": "Lottery", + "storage": { + "prefix": "Lottery", + "entries": [ + { + "name": "LotteryIndex", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [] + }, + { + "name": "Lottery", + "modifier": "Optional", + "ty": { + "Plain": 614 + }, + "default": [ + 0 + ], + "docs": [ + " The configuration for the current lottery." + ] + }, + { + "name": "Participants", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 615 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Users who have purchased a ticket. (Lottery Index, Tickets Purchased)" + ] + }, + { + "name": "TicketsCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Total number of tickets sold." + ] + }, + { + "name": "Tickets", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " Each ticket's owner.", + "", + " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones", + " are actually valid ticket mappings." + ] + }, + { + "name": "CallIndices", + "modifier": "Default", + "ty": { + "Plain": 616 + }, + "default": [ + 0 + ], + "docs": [ + " The calls stored in this pallet to be used in an active lottery if configured", + " by `Config::ValidateCall`." + ] + } + ] + }, + "calls": { + "ty": 311 + }, + "event": { + "ty": 99 + }, + "constants": [ + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 108, + 111, + 116, + 116, + 111 + ], + "docs": [ + " The Lottery's pallet id" + ] + }, + { + "name": "MaxCalls", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The max number of calls available in a single lottery." + ] + }, + { + "name": "MaxGenerateRandom", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " Number of time we should try to generate a random number that has no modulo bias.", + " The larger this number, the more potential computation is used for picking the winner,", + " but also the more likely that the chosen winner is done fairly." + ] + } + ], + "error": { + "ty": 618 + }, + "index": 39 + }, + { + "name": "Nis", + "storage": { + "prefix": "Nis", + "entries": [ + { + "name": "QueueTotals", + "modifier": "Default", + "ty": { + "Plain": 619 + }, + "default": [ + 177, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The totals of items and balances within each queue. Saves a lot of storage reads in the", + " case of sparsely packed queues.", + "", + " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", + " whose duration is one `Period` would be storage `0`." + ] + }, + { + "name": "Queues", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 620 + } + }, + "default": [ + 0 + ], + "docs": [ + " The queues of bids. Indexed by duration (in `Period`s)." + ] + }, + { + "name": "Summary", + "modifier": "Default", + "ty": { + "Plain": 623 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Summary information over the general state." + ] + }, + { + "name": "Receipts", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 624 + } + }, + "default": [ + 0 + ], + "docs": [ + " The currently outstanding receipts, indexed according to the order of creation." + ] + } + ] + }, + "calls": { + "ty": 312 + }, + "event": { + "ty": 101 + }, + "constants": [ + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 110, + 105, + 115, + 32, + 32 + ], + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "QueueCount", + "ty": 4, + "value": [ + 44, + 1, + 0, + 0 + ], + "docs": [ + " Number of duration queues in total. This sets the maximum duration supported, which is", + " this value multiplied by `Period`." + ] + }, + { + "name": "MaxQueueLen", + "ty": 4, + "value": [ + 232, + 3, + 0, + 0 + ], + "docs": [ + " Maximum number of items that may be in each duration queue.", + "", + " Must be larger than zero." + ] + }, + { + "name": "FifoQueueLen", + "ty": 4, + "value": [ + 244, + 1, + 0, + 0 + ], + "docs": [ + " Portion of the queue which is free from ordering and just a FIFO.", + "", + " Must be no greater than `MaxQueueLen`." + ] + }, + { + "name": "BasePeriod", + "ty": 4, + "value": [ + 0, + 47, + 13, + 0 + ], + "docs": [ + " The base period for the duration queues. This is the common multiple across all", + " supported freezing durations that can be bid upon." + ] + }, + { + "name": "MinBid", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount of funds that may be placed in a bid. Note that this", + " does not actually limit the amount which may be represented in a receipt since bids may", + " be split up by the system.", + "", + " It should be at least big enough to ensure that there is no possible storage spam attack", + " or queue-filling attack." + ] + }, + { + "name": "MinReceipt", + "ty": 102, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0 + ], + "docs": [ + " The minimum amount of funds which may intentionally be left remaining under a single", + " receipt." + ] + }, + { + "name": "IntakePeriod", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The number of blocks between consecutive attempts to dequeue bids and create receipts.", + "", + " A larger value results in fewer storage hits each block, but a slower period to get to", + " the target." + ] + }, + { + "name": "MaxIntakeWeight", + "ty": 8, + "value": [ + 7, + 0, + 208, + 237, + 144, + 46, + 19, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 25 + ], + "docs": [ + " The maximum amount of bids that can consolidated into receipts in a single intake. A", + " larger value here means less of the block available for transactions should there be a", + " glut of bids." + ] + }, + { + "name": "ThawThrottle", + "ty": 625, + "value": [ + 0, + 0, + 217, + 233, + 172, + 45, + 120, + 3, + 5, + 0, + 0, + 0 + ], + "docs": [ + " The maximum proportion which may be thawed and the period over which it is reset." + ] + }, + { + "name": "ReserveId", + "ty": 266, + "value": [ + 112, + 121, + 47, + 110, + 105, + 115, + 32, + 32 + ], + "docs": [ + " The name for the reserve ID." + ] + } + ], + "error": { + "ty": 626 + }, + "index": 40 + }, + { + "name": "Uniques", + "storage": { + "prefix": "Uniques", + "entries": [ + { + "name": "Class", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 627 + } + }, + "default": [ + 0 + ], + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 628, + "value": 31 + } + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 468, + "value": 31 + } + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 629 + } + }, + "default": [ + 0 + ], + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "ClassMetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 630 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "InstanceMetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 631 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 632, + "value": 633 + } + }, + "default": [ + 0 + ], + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 634 + } + }, + "default": [ + 0 + ], + "docs": [ + " Price of an asset instance." + ] + }, + { + "name": "CollectionMaxSupply", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " Keeps track of the number of items a collection might have." + ] + } + ] + }, + "calls": { + "ty": 314 + }, + "event": { + "ty": 103 + }, + "constants": [ + { + "name": "CollectionDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "ty": 4, + "value": [ + 0, + 1, + 0, + 0 + ], + "docs": [ + " The maximum length of an attribute value." + ] + } + ], + "error": { + "ty": 635 + }, + "index": 41 + }, + { + "name": "Nfts", + "storage": { + "prefix": "Nfts", + "entries": [ + { + "name": "Collection", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 636 + } + }, + "default": [ + 0 + ], + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 628, + "value": 31 + } + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 468, + "value": 31 + } + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 464, + "value": 637 + } + }, + "default": [ + 0 + ], + "docs": [ + " The items in existence and their ownership details.", + " Stores collection roles as per account." + ] + }, + { + "name": "Item", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 639 + } + }, + "default": [ + 0 + ], + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "CollectionMetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 645 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "ItemMetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 646 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 648, + "value": 649 + } + }, + "default": [ + 0 + ], + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 634 + } + }, + "default": [ + 0 + ], + "docs": [ + " A price of an item." + ] + }, + { + "name": "ItemAttributesApprovalsOf", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 651 + } + }, + "default": [ + 0 + ], + "docs": [ + " Item attribute approvals." + ] + }, + { + "name": "NextCollectionId", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 653 + } + }, + "default": [ + 0 + ], + "docs": [ + " Handles all the pending swaps." + ] + }, + { + "name": "CollectionConfigOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 319 + } + }, + "default": [ + 0 + ], + "docs": [ + " Config of a collection." + ] + }, + { + "name": "ItemConfigOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 87, + "value": 329 + } + }, + "default": [ + 0 + ], + "docs": [ + " Config of an item." + ] + } + ] + }, + "calls": { + "ty": 318 + }, + "event": { + "ty": 108 + }, + "constants": [ + { + "name": "CollectionDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "ty": 4, + "value": [ + 32, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "ty": 4, + "value": [ + 0, + 1, + 0, + 0 + ], + "docs": [ + " The maximum length of an attribute value." + ] + }, + { + "name": "ApprovalsLimit", + "ty": 4, + "value": [ + 20, + 0, + 0, + 0 + ], + "docs": [ + " The maximum approvals an item could have." + ] + }, + { + "name": "ItemAttributesApprovalsLimit", + "ty": 4, + "value": [ + 20, + 0, + 0, + 0 + ], + "docs": [ + " The maximum attributes approvals an item could have." + ] + }, + { + "name": "MaxTips", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The max number of tips a user could send." + ] + }, + { + "name": "MaxDeadlineDuration", + "ty": 4, + "value": [ + 0, + 52, + 158, + 0 + ], + "docs": [ + " The max duration in blocks for deadlines." + ] + }, + { + "name": "MaxAttributesPerCall", + "ty": 4, + "value": [ + 10, + 0, + 0, + 0 + ], + "docs": [ + " The max number of attributes a user could set per call." + ] + }, + { + "name": "Features", + "ty": 654, + "value": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Disables some of pallet's features." + ] + } + ], + "error": { + "ty": 656 + }, + "index": 42 + }, + { + "name": "TransactionStorage", + "storage": { + "prefix": "TransactionStorage", + "entries": [ + { + "name": "Transactions", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 657 + } + }, + "default": [ + 0 + ], + "docs": [ + " Collection of transaction metadata by block number." + ] + }, + { + "name": "ChunkCount", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Count indexed chunks for each block." + ] + }, + { + "name": "ByteFee", + "modifier": "Optional", + "ty": { + "Plain": 6 + }, + "default": [ + 0 + ], + "docs": [ + " Storage fee per byte." + ] + }, + { + "name": "EntryFee", + "modifier": "Optional", + "ty": { + "Plain": 6 + }, + "default": [ + 0 + ], + "docs": [ + " Storage fee per transaction." + ] + }, + { + "name": "StoragePeriod", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD`", + " for block authoring." + ] + }, + { + "name": "BlockTransactions", + "modifier": "Default", + "ty": { + "Plain": 657 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "ProofChecked", + "modifier": "Default", + "ty": { + "Plain": 41 + }, + "default": [ + 0 + ], + "docs": [ + " Was the proof checked in this block?" + ] + } + ] + }, + "calls": { + "ty": 339 + }, + "event": { + "ty": 113 + }, + "constants": [], + "error": { + "ty": 660 + }, + "index": 43 + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "entries": [ + { + "name": "ListNodes", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 661 + } + }, + "default": [ + 0 + ], + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 10, + "value": 662 + } + }, + "default": [ + 0 + ], + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + } + ] + }, + "calls": { + "ty": 341 + }, + "event": { + "ty": 114 + }, + "constants": [ + { + "name": "BagThresholds", + "ty": 663, + "value": [ + 33, + 3, + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 106, + 112, + 204, + 212, + 169, + 96, + 0, + 0, + 158, + 243, + 57, + 127, + 188, + 102, + 0, + 0, + 169, + 7, + 204, + 213, + 48, + 109, + 0, + 0, + 61, + 154, + 103, + 251, + 12, + 116, + 0, + 0, + 169, + 191, + 162, + 117, + 87, + 123, + 0, + 0, + 166, + 253, + 247, + 50, + 23, + 131, + 0, + 0, + 3, + 79, + 93, + 145, + 83, + 139, + 0, + 0, + 19, + 36, + 69, + 101, + 20, + 148, + 0, + 0, + 120, + 8, + 16, + 1, + 98, + 157, + 0, + 0, + 3, + 2, + 246, + 60, + 69, + 167, + 0, + 0, + 57, + 46, + 111, + 127, + 199, + 177, + 0, + 0, + 245, + 156, + 35, + 198, + 242, + 188, + 0, + 0, + 74, + 231, + 106, + 175, + 209, + 200, + 0, + 0, + 89, + 138, + 100, + 132, + 111, + 213, + 0, + 0, + 18, + 159, + 178, + 67, + 216, + 226, + 0, + 0, + 63, + 34, + 225, + 172, + 24, + 241, + 0, + 0, + 51, + 164, + 132, + 76, + 62, + 0, + 1, + 0, + 226, + 229, + 27, + 137, + 87, + 16, + 1, + 0, + 118, + 162, + 192, + 176, + 115, + 33, + 1, + 0, + 103, + 137, + 180, + 7, + 163, + 51, + 1, + 0, + 121, + 62, + 216, + 215, + 246, + 70, + 1, + 0, + 120, + 19, + 27, + 129, + 129, + 91, + 1, + 0, + 12, + 28, + 243, + 138, + 86, + 113, + 1, + 0, + 68, + 55, + 238, + 182, + 138, + 136, + 1, + 0, + 158, + 181, + 109, + 20, + 52, + 161, + 1, + 0, + 51, + 94, + 159, + 21, + 106, + 187, + 1, + 0, + 103, + 195, + 199, + 165, + 69, + 215, + 1, + 0, + 50, + 24, + 243, + 64, + 225, + 244, + 1, + 0, + 222, + 11, + 35, + 13, + 89, + 20, + 2, + 0, + 105, + 156, + 17, + 245, + 202, + 53, + 2, + 0, + 173, + 80, + 162, + 196, + 86, + 89, + 2, + 0, + 154, + 228, + 28, + 71, + 30, + 127, + 2, + 0, + 208, + 36, + 78, + 103, + 69, + 167, + 2, + 0, + 249, + 132, + 173, + 81, + 242, + 209, + 2, + 0, + 172, + 231, + 167, + 152, + 77, + 255, + 2, + 0, + 161, + 24, + 50, + 91, + 130, + 47, + 3, + 0, + 255, + 164, + 199, + 109, + 190, + 98, + 3, + 0, + 88, + 11, + 253, + 133, + 50, + 153, + 3, + 0, + 169, + 175, + 206, + 104, + 18, + 211, + 3, + 0, + 16, + 154, + 216, + 27, + 149, + 16, + 4, + 0, + 217, + 202, + 165, + 25, + 245, + 81, + 4, + 0, + 56, + 223, + 72, + 137, + 112, + 151, + 4, + 0, + 190, + 225, + 114, + 121, + 73, + 225, + 4, + 0, + 204, + 115, + 64, + 31, + 198, + 47, + 5, + 0, + 179, + 4, + 249, + 24, + 49, + 131, + 5, + 0, + 130, + 139, + 255, + 180, + 217, + 219, + 5, + 0, + 18, + 53, + 56, + 61, + 20, + 58, + 6, + 0, + 165, + 180, + 42, + 71, + 58, + 158, + 6, + 0, + 54, + 102, + 45, + 9, + 171, + 8, + 7, + 0, + 247, + 58, + 234, + 180, + 203, + 121, + 7, + 0, + 184, + 126, + 147, + 215, + 7, + 242, + 7, + 0, + 255, + 236, + 35, + 192, + 209, + 113, + 8, + 0, + 184, + 75, + 11, + 236, + 162, + 249, + 8, + 0, + 201, + 220, + 174, + 122, + 252, + 137, + 9, + 0, + 145, + 117, + 43, + 168, + 103, + 35, + 10, + 0, + 100, + 241, + 205, + 79, + 118, + 198, + 10, + 0, + 54, + 9, + 190, + 118, + 195, + 115, + 11, + 0, + 120, + 101, + 95, + 223, + 243, + 43, + 12, + 0, + 164, + 7, + 245, + 165, + 182, + 239, + 12, + 0, + 82, + 246, + 27, + 231, + 197, + 191, + 13, + 0, + 218, + 113, + 187, + 112, + 231, + 156, + 14, + 0, + 13, + 233, + 18, + 126, + 237, + 135, + 15, + 0, + 20, + 119, + 152, + 127, + 183, + 129, + 16, + 0, + 235, + 238, + 101, + 239, + 50, + 139, + 17, + 0, + 18, + 105, + 254, + 50, + 92, + 165, + 18, + 0, + 51, + 248, + 66, + 139, + 63, + 209, + 19, + 0, + 139, + 165, + 122, + 19, + 250, + 15, + 21, + 0, + 27, + 43, + 96, + 208, + 186, + 98, + 22, + 0, + 13, + 29, + 55, + 208, + 195, + 202, + 23, + 0, + 108, + 100, + 250, + 92, + 107, + 73, + 25, + 0, + 38, + 34, + 199, + 65, + 29, + 224, + 26, + 0, + 4, + 91, + 185, + 36, + 92, + 144, + 28, + 0, + 35, + 61, + 131, + 246, + 194, + 91, + 30, + 0, + 200, + 119, + 28, + 121, + 6, + 68, + 32, + 0, + 48, + 19, + 253, + 222, + 246, + 74, + 34, + 0, + 170, + 139, + 110, + 132, + 129, + 114, + 36, + 0, + 130, + 192, + 150, + 196, + 178, + 188, + 38, + 0, + 22, + 163, + 250, + 235, + 183, + 43, + 41, + 0, + 130, + 150, + 82, + 74, + 225, + 193, + 43, + 0, + 166, + 54, + 168, + 101, + 164, + 129, + 46, + 0, + 208, + 226, + 212, + 80, + 158, + 109, + 49, + 0, + 156, + 10, + 154, + 39, + 150, + 136, + 52, + 0, + 228, + 250, + 175, + 178, + 127, + 213, + 55, + 0, + 230, + 230, + 77, + 54, + 126, + 87, + 59, + 0, + 14, + 75, + 214, + 109, + 231, + 17, + 63, + 0, + 136, + 177, + 125, + 183, + 70, + 8, + 67, + 0, + 176, + 125, + 239, + 114, + 96, + 62, + 71, + 0, + 52, + 222, + 36, + 150, + 53, + 184, + 75, + 0, + 212, + 139, + 213, + 123, + 7, + 122, + 80, + 0, + 208, + 189, + 32, + 239, + 91, + 136, + 85, + 0, + 184, + 240, + 70, + 120, + 1, + 232, + 90, + 0, + 16, + 248, + 138, + 238, + 19, + 158, + 96, + 0, + 56, + 146, + 146, + 83, + 1, + 176, + 102, + 0, + 156, + 149, + 228, + 252, + 142, + 35, + 109, + 0, + 180, + 18, + 109, + 16, + 223, + 254, + 115, + 0, + 40, + 180, + 62, + 89, + 118, + 72, + 123, + 0, + 160, + 138, + 28, + 122, + 66, + 7, + 131, + 0, + 176, + 154, + 176, + 131, + 160, + 66, + 139, + 0, + 40, + 70, + 178, + 244, + 99, + 2, + 148, + 0, + 200, + 97, + 164, + 42, + 222, + 78, + 157, + 0, + 80, + 210, + 61, + 74, + 230, + 48, + 167, + 0, + 128, + 81, + 1, + 167, + 225, + 177, + 177, + 0, + 56, + 229, + 1, + 178, + 204, + 219, + 188, + 0, + 32, + 22, + 82, + 120, + 68, + 185, + 200, + 0, + 56, + 137, + 36, + 186, + 144, + 85, + 213, + 0, + 112, + 202, + 53, + 164, + 174, + 188, + 226, + 0, + 128, + 95, + 177, + 53, + 92, + 251, + 240, + 0, + 128, + 53, + 104, + 93, + 36, + 31, + 0, + 1, + 160, + 195, + 220, + 217, + 107, + 54, + 16, + 1, + 208, + 120, + 98, + 232, + 126, + 80, + 33, + 1, + 96, + 232, + 82, + 208, + 159, + 125, + 51, + 1, + 144, + 102, + 44, + 88, + 22, + 207, + 70, + 1, + 16, + 39, + 76, + 51, + 64, + 87, + 91, + 1, + 128, + 75, + 226, + 119, + 162, + 41, + 113, + 1, + 48, + 130, + 185, + 45, + 252, + 90, + 136, + 1, + 128, + 210, + 118, + 7, + 90, + 1, + 161, + 1, + 176, + 245, + 17, + 89, + 43, + 52, + 187, + 1, + 64, + 49, + 116, + 95, + 88, + 12, + 215, + 1, + 128, + 47, + 108, + 238, + 89, + 164, + 244, + 1, + 64, + 255, + 121, + 155, + 82, + 24, + 20, + 2, + 96, + 117, + 96, + 125, + 41, + 134, + 53, + 2, + 96, + 253, + 233, + 153, + 166, + 13, + 89, + 2, + 0, + 229, + 231, + 28, + 145, + 208, + 126, + 2, + 192, + 223, + 37, + 117, + 207, + 242, + 166, + 2, + 160, + 127, + 217, + 117, + 137, + 154, + 209, + 2, + 160, + 103, + 0, + 157, + 76, + 240, + 254, + 2, + 32, + 220, + 41, + 161, + 50, + 31, + 47, + 3, + 32, + 255, + 82, + 107, + 10, + 85, + 98, + 3, + 128, + 136, + 202, + 163, + 131, + 194, + 152, + 3, + 224, + 86, + 131, + 251, + 92, + 155, + 210, + 3, + 64, + 29, + 215, + 93, + 149, + 22, + 16, + 4, + 0, + 49, + 126, + 57, + 160, + 110, + 81, + 4, + 192, + 176, + 113, + 18, + 157, + 225, + 150, + 4, + 128, + 180, + 140, + 145, + 146, + 177, + 224, + 4, + 128, + 232, + 18, + 74, + 173, + 36, + 47, + 5, + 192, + 7, + 202, + 112, + 130, + 133, + 130, + 5, + 0, + 124, + 19, + 196, + 86, + 35, + 219, + 5, + 64, + 131, + 111, + 232, + 105, + 82, + 57, + 6, + 192, + 112, + 15, + 129, + 70, + 108, + 157, + 6, + 64, + 240, + 156, + 80, + 23, + 208, + 7, + 7, + 192, + 230, + 36, + 179, + 1, + 227, + 120, + 7, + 192, + 51, + 42, + 199, + 133, + 16, + 241, + 7, + 128, + 7, + 76, + 161, + 228, + 202, + 112, + 8, + 0, + 213, + 169, + 235, + 140, + 139, + 248, + 8, + 0, + 168, + 73, + 88, + 142, + 211, + 136, + 9, + 0, + 128, + 66, + 84, + 20, + 44, + 34, + 10, + 128, + 162, + 81, + 112, + 232, + 38, + 197, + 10, + 0, + 232, + 213, + 250, + 252, + 94, + 114, + 11, + 128, + 29, + 246, + 78, + 0, + 121, + 42, + 12, + 128, + 212, + 254, + 100, + 249, + 35, + 238, + 12, + 0, + 109, + 208, + 56, + 238, + 25, + 190, + 13, + 0, + 30, + 144, + 164, + 148, + 32, + 155, + 14, + 0, + 16, + 191, + 87, + 14, + 10, + 134, + 15, + 0, + 218, + 106, + 157, + 176, + 181, + 127, + 16, + 0, + 191, + 100, + 175, + 216, + 16, + 137, + 17, + 0, + 187, + 91, + 96, + 205, + 23, + 163, + 18, + 0, + 249, + 99, + 243, + 174, + 214, + 206, + 19, + 0, + 213, + 240, + 4, + 118, + 106, + 13, + 21, + 0, + 224, + 153, + 119, + 2, + 2, + 96, + 22, + 0, + 16, + 61, + 102, + 59, + 223, + 199, + 23, + 0, + 222, + 62, + 45, + 65, + 88, + 70, + 25, + 0, + 236, + 219, + 173, + 178, + 216, + 220, + 26, + 0, + 69, + 199, + 0, + 7, + 227, + 140, + 28, + 0, + 184, + 189, + 224, + 252, + 17, + 88, + 30, + 0, + 186, + 92, + 42, + 33, + 26, + 64, + 32, + 0, + 64, + 125, + 228, + 109, + 203, + 70, + 34, + 0, + 222, + 165, + 91, + 3, + 19, + 110, + 36, + 0, + 170, + 241, + 243, + 252, + 252, + 183, + 38, + 0, + 20, + 34, + 111, + 99, + 182, + 38, + 41, + 0, + 100, + 146, + 128, + 62, + 143, + 188, + 43, + 0, + 132, + 134, + 166, + 199, + 252, + 123, + 46, + 0, + 44, + 240, + 95, + 192, + 155, + 103, + 49, + 0, + 218, + 99, + 247, + 237, + 50, + 130, + 52, + 0, + 240, + 177, + 63, + 189, + 181, + 206, + 55, + 0, + 242, + 145, + 196, + 16, + 71, + 80, + 59, + 0, + 66, + 42, + 26, + 60, + 60, + 10, + 63, + 0, + 44, + 36, + 33, + 47, + 32, + 0, + 67, + 0, + 172, + 147, + 66, + 212, + 182, + 53, + 71, + 0, + 204, + 110, + 215, + 164, + 0, + 175, + 75, + 0, + 196, + 208, + 34, + 119, + 62, + 112, + 80, + 0, + 32, + 1, + 125, + 137, + 245, + 125, + 85, + 0, + 248, + 99, + 135, + 206, + 243, + 220, + 90, + 0, + 140, + 76, + 127, + 126, + 84, + 146, + 96, + 0, + 32, + 98, + 7, + 242, + 132, + 163, + 102, + 0, + 204, + 30, + 5, + 203, + 73, + 22, + 109, + 0, + 180, + 42, + 122, + 112, + 196, + 240, + 115, + 0, + 212, + 58, + 144, + 226, + 120, + 57, + 123, + 0, + 56, + 244, + 97, + 236, + 83, + 247, + 130, + 0, + 160, + 114, + 100, + 185, + 177, + 49, + 139, + 0, + 72, + 201, + 179, + 212, + 100, + 240, + 147, + 0, + 0, + 127, + 233, + 152, + 189, + 59, + 157, + 0, + 16, + 5, + 143, + 23, + 146, + 28, + 167, + 0, + 0, + 223, + 175, + 127, + 70, + 156, + 177, + 0, + 232, + 12, + 136, + 11, + 214, + 196, + 188, + 0, + 88, + 189, + 203, + 125, + 220, + 160, + 200, + 0, + 56, + 209, + 141, + 55, + 160, + 59, + 213, + 0, + 48, + 213, + 91, + 240, + 28, + 161, + 226, + 0, + 112, + 74, + 192, + 26, + 15, + 222, + 240, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255 + ], + "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." + ] + } + ], + "error": { + "ty": 664 + }, + "index": 44 + }, + { + "name": "StateTrieMigration", + "storage": { + "prefix": "StateTrieMigration", + "entries": [ + { + "name": "MigrationProcess", + "modifier": "Default", + "ty": { + "Plain": 345 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": { + "Plain": 343 + }, + "default": [ + 0 + ], + "docs": [ + " The limits that are imposed on automatic migrations.", + "", + " If set to None, then no automatic migration happens." + ] + }, + { + "name": "SignedMigrationMaxLimits", + "modifier": "Optional", + "ty": { + "Plain": 344 + }, + "default": [ + 0 + ], + "docs": [ + " The maximum limits that the signed migration could use.", + "", + " If not set, no signed submission is allowed." + ] + } + ] + }, + "calls": { + "ty": 342 + }, + "event": { + "ty": 115 + }, + "constants": [ + { + "name": "MaxKeyLen", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "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: ", + "", + " 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", + " " + ] + } + ], + "error": { + "ty": 117 + }, + "index": 45 + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "entries": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of total child bounties." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 87, + "value": 666 + } + }, + "default": [ + 0 + ], + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptions", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 602 + } + }, + "default": [ + 0 + ], + "docs": [ + " The description of each child-bounty." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "ty": 348 + }, + "event": { + "ty": 118 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "ty": 4, + "value": [ + 5, + 0, + 0, + 0 + ], + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "error": { + "ty": 668 + }, + "index": 46 + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "entries": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 669 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 677 + } + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 11 + } + }, + "default": [ + 0 + ], + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `PreimageHash` 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": { + "ty": 349 + }, + "event": { + "ty": 119 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "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", + "ty": 4, + "value": [ + 1, + 0, + 0, + 0 + ], + "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", + "ty": 678, + "value": [ + 4, + 0, + 0, + 16, + 114, + 111, + 111, + 116, + 1, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 202, + 154, + 59, + 0, + 101, + 205, + 29, + 0, + 202, + 154, + 59, + 0, + 0, + 202, + 154, + 59, + 0, + 0, + 0, + 0, + 0, + 202, + 154, + 59 + ], + "docs": [ + " Information concerning the different referendum tracks." + ] + } + ], + "error": { + "ty": 684 + }, + "index": 47 + }, + { + "name": "Remark", + "storage": null, + "calls": { + "ty": 351 + }, + "event": { + "ty": 383 + }, + "constants": [], + "error": { + "ty": 685 + }, + "index": 48 + }, + { + "name": "RootTesting", + "storage": null, + "calls": { + "ty": 352 + }, + "event": null, + "constants": [], + "error": null, + "index": 49 + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "entries": [ + { + "name": "VotingFor", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 686, + "value": 687 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 695 + } + }, + "default": [ + 0 + ], + "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": { + "ty": 353 + }, + "event": { + "ty": 384 + }, + "constants": [ + { + "name": "MaxVotes", + "ty": 4, + "value": [ + 0, + 2, + 0, + 0 + ], + "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", + "ty": 4, + "value": [ + 0, + 47, + 13, + 0 + ], + "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." + ] + } + ], + "error": { + "ty": 698 + }, + "index": 50 + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "entries": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 11, + "value": 31 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 358 + }, + "event": { + "ty": 385 + }, + "constants": [], + "error": { + "ty": 699 + }, + "index": 51 + }, + { + "name": "AllianceMotion", + "storage": { + "prefix": "AllianceMotion", + "entries": [ + { + "name": "Proposals", + "modifier": "Default", + "ty": { + "Plain": 700 + }, + "default": [ + 0 + ], + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 121 + } + }, + "default": [ + 0 + ], + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 500 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Plain": 83 + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "ty": { + "Plain": 0 + }, + "default": [ + 0 + ], + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": { + "ty": 359 + }, + "event": { + "ty": 390 + }, + "constants": [], + "error": { + "ty": 701 + }, + "index": 52 + }, + { + "name": "Alliance", + "storage": { + "prefix": "Alliance", + "entries": [ + { + "name": "Rule", + "modifier": "Optional", + "ty": { + "Plain": 362 + }, + "default": [ + 0 + ], + "docs": [ + " The IPFS CID of the alliance rule.", + " Fellows can propose a new rule with a super-majority." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "ty": { + "Plain": 702 + }, + "default": [ + 0 + ], + "docs": [ + " The current IPFS CIDs of any announcements." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 6 + } + }, + "default": [ + 0 + ], + "docs": [ + " Maps members to their candidacy deposit." + ] + }, + { + "name": "Members", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 704, + "value": 705 + } + }, + "default": [ + 0 + ], + "docs": [ + " Maps member type to members of each type." + ] + }, + { + "name": "RetiringMembers", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A set of members who gave a retirement notice. They can retire after the end of retirement", + " period stored as a future block number." + ] + }, + { + "name": "UnscrupulousAccounts", + "modifier": "Default", + "ty": { + "Plain": 486 + }, + "default": [ + 0 + ], + "docs": [ + " The current list of accounts deemed unscrupulous. These accounts non grata cannot submit", + " candidacy." + ] + }, + { + "name": "UnscrupulousWebsites", + "modifier": "Default", + "ty": { + "Plain": 706 + }, + "default": [ + 0 + ], + "docs": [ + " The current list of websites deemed unscrupulous." + ] + } + ] + }, + "calls": { + "ty": 360 + }, + "event": { + "ty": 391 + }, + "constants": [ + { + "name": "MaxUnscrupulousItems", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of the unscrupulous items supported by the pallet." + ] + }, + { + "name": "MaxWebsiteUrlLength", + "ty": 4, + "value": [ + 255, + 0, + 0, + 0 + ], + "docs": [ + " The maximum length of a website URL." + ] + }, + { + "name": "AllyDeposit", + "ty": 6, + "value": [ + 0, + 128, + 198, + 164, + 126, + 141, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The deposit required for submitting candidacy." + ] + }, + { + "name": "MaxAnnouncementsCount", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of announcements." + ] + }, + { + "name": "MaxMembersCount", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of members per member role." + ] + } + ], + "error": { + "ty": 708 + }, + "index": 53 + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "entries": [ + { + "name": "MinJoinBond", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "ty": { + "Plain": 6 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "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", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "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", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "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": "PoolMembers", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 709 + } + }, + "default": [ + 0 + ], + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 712 + } + }, + "default": [ + 0 + ], + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 714 + } + }, + "default": [ + 0 + ], + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout", + " is claimed, the balance comes out fo the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 715 + } + }, + "default": [ + 0 + ], + "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", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 721 + } + }, + "default": [ + 0 + ], + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing. In all other instances, the pool id is used, and the", + " accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 375 + } + }, + "default": [ + 0 + ], + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "ty": 369 + }, + "event": { + "ty": 392 + }, + "constants": [ + { + "name": "PalletId", + "ty": 517, + "value": [ + 112, + 121, + 47, + 110, + 111, + 112, + 108, + 115 + ], + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "ty": 2, + "value": [ + 10 + ], + "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." + ] + } + ], + "error": { + "ty": 722 + }, + "index": 54 + }, + { + "name": "RankedPolls", + "storage": { + "prefix": "RankedPolls", + "entries": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 724 + } + }, + "default": [ + 0 + ], + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 726 + } + }, + "default": [ + 0 + ], + "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", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 11 + } + }, + "default": [ + 0 + ], + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `PreimageHash` 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": { + "ty": 376 + }, + "event": { + "ty": 393 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "ty": 6, + "value": [ + 0, + 0, + 193, + 111, + 242, + 134, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "ty": 4, + "value": [ + 100, + 0, + 0, + 0 + ], + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "ty": 4, + "value": [ + 0, + 78, + 12, + 0 + ], + "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", + "ty": 4, + "value": [ + 1, + 0, + 0, + 0 + ], + "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", + "ty": 678, + "value": [ + 4, + 0, + 0, + 16, + 114, + 111, + 111, + 116, + 1, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 202, + 154, + 59, + 0, + 101, + 205, + 29, + 0, + 202, + 154, + 59, + 0, + 0, + 202, + 154, + 59, + 0, + 0, + 0, + 0, + 0, + 202, + 154, + 59 + ], + "docs": [ + " Information concerning the different referendum tracks." + ] + } + ], + "error": { + "ty": 727 + }, + "index": 55 + }, + { + "name": "RankedCollective", + "storage": { + "prefix": "RankedCollective", + "entries": [ + { + "name": "MemberCount", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 93, + "value": 4 + } + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " The number of members in the collective who have at least the rank according to the index", + " of the vec." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 728 + } + }, + "default": [ + 0 + ], + "docs": [ + " The current members of the collective." + ] + }, + { + "name": "IdToIndex", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 729, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " The index of each ranks's member into the group of members who have at least that rank." + ] + }, + { + "name": "IndexToId", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 730, + "value": 0 + } + }, + "default": [ + 0 + ], + "docs": [ + " The members in the collective by index. All indices in the range `0..MemberCount` will", + " return `Some`, however a member's index is not guaranteed to remain unchanged over time." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 464, + "value": 396 + } + }, + "default": [ + 0 + ], + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "VotingCleanup", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 731 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 377 + }, + "event": { + "ty": 395 + }, + "constants": [], + "error": { + "ty": 732 + }, + "index": 56 + }, + { + "name": "FastUnstake", + "storage": { + "prefix": "FastUnstake", + "entries": [ + { + "name": "Head", + "modifier": "Optional", + "ty": { + "Plain": 733 + }, + "default": [ + 0 + ], + "docs": [ + " The current \"head of the queue\" being unstaked." + ] + }, + { + "name": "Queue", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 6 + } + }, + "default": [ + 0 + ], + "docs": [ + " The map of all accounts wishing to be unstaked.", + "", + " Keeps track of `AccountId` wishing to unstake and it's corresponding deposit.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForQueue", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ErasToCheckPerBlock", + "modifier": "Default", + "ty": { + "Plain": 4 + }, + "default": [ + 0, + 0, + 0, + 0 + ], + "docs": [ + " Number of eras to check per block.", + "", + " If set to 0, this pallet does absolutely nothing.", + "", + " Based on the amount of weight available at `on_idle`, up to this many eras of a single", + " nominator might be checked." + ] + } + ] + }, + "calls": { + "ty": 378 + }, + "event": { + "ty": 397 + }, + "constants": [ + { + "name": "Deposit", + "ty": 6, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " Deposit to take for unstaking, to make sure we're able to slash the it in order to cover", + " the costs of resources on unsuccessful unstake." + ] + } + ], + "error": { + "ty": 736 + }, + "index": 57 + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "entries": [ + { + "name": "BookStateFor", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 737 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 87, + "value": 740 + } + }, + "default": [ + 0 + ], + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "ty": 379 + }, + "event": { + "ty": 398 + }, + "constants": [ + { + "name": "HeapSize", + "ty": 4, + "value": [ + 0, + 0, + 1, + 0 + ], + "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", + "ty": 4, + "value": [ + 128, + 0, + 0, + 0 + ], + "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", + "ty": 388, + "value": [ + 1, + 7, + 0, + 160, + 219, + 33, + 93, + 19, + 51, + 51, + 51, + 51, + 51, + 51, + 51, + 51 + ], + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually." + ] + } + ], + "error": { + "ty": 742 + }, + "index": 58 + }, + { + "name": "Pov", + "storage": { + "prefix": "Pov", + "entries": [ + { + "name": "Value", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "Value2", + "modifier": "Optional", + "ty": { + "Plain": 4 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "UnboundedValue", + "modifier": "Optional", + "ty": { + "Plain": 12 + }, + "default": [ + 0 + ], + "docs": [ + " A value without a MEL bound." + ] + }, + { + "name": "BoundedValue", + "modifier": "Optional", + "ty": { + "Plain": 743 + }, + "default": [ + 0 + ], + "docs": [ + " A value with a MEL bound of 32 byte." + ] + }, + { + "name": "LargeValue", + "modifier": "Optional", + "ty": { + "Plain": 586 + }, + "default": [ + 0 + ], + "docs": [ + " 4MiB value." + ] + }, + { + "name": "LargeValue2", + "modifier": "Optional", + "ty": { + "Plain": 586 + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "Map1M", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A map with a maximum of 1M entries." + ] + }, + { + "name": "Map16M", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [ + " A map with a maximum of 16M entries." + ] + }, + { + "name": "DoubleMap1M", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256", + "Blake2_256" + ], + "key": 87, + "value": 4 + } + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "UnboundedMap", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 105 + } + }, + "default": [ + 0 + ], + "docs": [] + }, + { + "name": "UnboundedMap2", + "modifier": "Optional", + "ty": { + "Map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 105 + } + }, + "default": [ + 0 + ], + "docs": [] + } + ] + }, + "calls": { + "ty": 380 + }, + "event": { + "ty": 400 + }, + "constants": [], + "error": null, + "index": 59 + } + ], + "extrinsic": { + "ty": 744, + "version": 4, + "signed_extensions": [ + { + "identifier": "CheckNonZeroSender", + "ty": 746, + "additional_signed": 31 + }, + { + "identifier": "CheckSpecVersion", + "ty": 747, + "additional_signed": 4 + }, + { + "identifier": "CheckTxVersion", + "ty": 748, + "additional_signed": 4 + }, + { + "identifier": "CheckGenesis", + "ty": 749, + "additional_signed": 11 + }, + { + "identifier": "CheckMortality", + "ty": 750, + "additional_signed": 11 + }, + { + "identifier": "CheckNonce", + "ty": 752, + "additional_signed": 31 + }, + { + "identifier": "CheckWeight", + "ty": 753, + "additional_signed": 31 + }, + { + "identifier": "ChargeAssetTxPayment", + "ty": 754, + "additional_signed": 31 + } + ] + }, + "ty": 755 + } + } +] diff --git a/artifacts/Alliance.scale b/artifacts/Alliance.scale index 24c6447b88545753af60a65a12118af2b2d5f113..0ee2c4cb699ce4ec06255511046f1529d643022c 100644 GIT binary patch delta 22898 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 delta 21759 zcmdUXdw5jE`Tx8#Cy+n_3E3o@8##dl0wk~rNgxPFxCqECNI*~_S&{`-HrcSd;i6!~ zYAY=u@u&j|B2*MCC>Z4wyi!HQf|V*(DyY;;tAz?ys;JoCJ7>-%A!yrwe$VrLSaRn5 z%$zx&xzD`sd(MSpUA7(V5?$wuc)Rq8B7FNHn%P|e_4>xaSE!{Wvk6fMVdaF7X#7W_ z7>VUC6f(E|CTBf6LcDg%oZK5+5ZhQ-N{9;+D8!BT#Af8=lMF&Ss6<6DisWD}9Wa+X z{701Nd=JUTSQqi&-*{4tv0aR348~ArBQ%r{I)aSgBZjdQ{>D%i-+we@%HKqF1Pg@4AO|>{bcx8NQmKmBR_CL=w?trgq=p9!WRA&~T`zq@=KH$dHQ0 zxdDF-Avb7824|?%W_=AT!uqPl5~xJfSFI>%WhGg_^;c+LkLn&D@zss51vRI_-Z0pLKQr`c_d9NQNg^8fEx1E`234~p#V5J5O8~q92&sP zijY9_TGdtEnp6YUKt~ec@4Hz^ZUe-s(<0vbT5qT}8sZlRBfg~&KLalWGUj>%-ufC} zgQmXVu4#abky0iQTkl=gS|*-p4FP|od~P`6_1DKjtaq8Ob^N92GrTfot2C65rGipc z7x{GTYuLxga^B-0^y#9KXmBs^`R6Z)sF2T(u7SiD6&rkD5h1r~F+(Dyw_{b0z#F2; zor-%(gQzz}sf5)K9X~l(@57k*X~8<5LRJ$3MEvd0K-Ov1gVMDFgVLMsfzhLa^r04jnP9JLjF2`1iM33 zWLbkR96zq81c#tPs#~}FLwrvs$eI4IG6Qxh(_lAtGEWHmTWwW+W8GX|$Qlf)zt&eD z@kf?D4AEE#;F{+Tg(JTOcixPAby^?nWMN-Tu)fwo$irIU`rM@LFw|Fj$)MP-)veFy z(uT)Qej*0C4=_rF&6*$ahUWVsRbr@a1Z5n7ViS?HR8S@pvKya})+=Y4e}26;(ip<_ zRLD~>&VF92h^Kg<6J#adZcSXpI1qm;hTqQJEH1Knkkb;+(=}-ZOaaK*!Jk7Coe}9wTdK)Wk!qEXFV^S~_ z@dk>F!9p!@pdm6#EH*^N5=#s*$`VTrv4bTJGQ^ISIM@)QEwRiHV~9Gb$#`&~#{fDZ zAmu_s?rh7FS*$HfYH_wKxplE+Nv^9cOLpwaI*-B-qVPAQ>iFa*-tHvSmpy z$(AL-WLuU5Q*2ohblb8dm`a+=5*JB^X?6n1Fx{3V!3fJhuX3vILwwM!Qr+n30`T-lHdqiMuKAe zm)n43IMSA76^^oHNpQ3+OM+u8d5|P{l`TtxV{KUy9B0b|l_s$~kGBEI@M>F@RXD+x zCBccdED27sWl35}axrQ7-QVlzRq#AJmNwv`dB-O=a=q07B-fQT zV6HW{Ie?`4GY61VZ+8Gm^$rJ+RDbR~ccA3@3nz)>dZz<32ar@X2ar_naR5oR>0TQ#*Pr_w zKyu{{AgQi*07-R&14yd(JAkD6fCEUX8%>}oP*@_lZgP@Ht`9nZ4g2asGJaR5p6Q3sGzw>yBOy2A#{HR&-2kW_yofhKRD zaFFD>(@7$^?s5QGt&cl^r22#dNUFOXKvLb~0FvsH4j`!F`rl$B=JNEE14yn(uiOAgR9K0Fvs9 z4j`!>Z~&w#_8-4<5Xto=2asG}b^uBBpaV#%uQ-6D`l5-?2ar_%-~f{9n+{MW_diE%#9Xod=m3)ITMi(pzU=^# z>M;k9RNrv`N%c<-AgR8KfINQ{6-uthog|X$pB+F}>w7j}E?6fVKvF&F0Fvta4j`$1 z-~h#P|Mj7RNUo(k|pV)x8V14QUlImaW{YTM2$@One63O*5 z2awhJxdTY5e|G>$^|S*>s%IQPQvHVmnESskY{Xo#&N_hPdd>kP)h``DQvIg`NUC2s zfTVif0VLIb+53;8V#)PuCyC_xjRVMPym-g@HlK75;v>yccv4gZUp^Y|_5%Qr{IG|5xl6I3C} z@F<~fB}CP39*~;Z=3XFbRmB2teI!^%P&N6n_UAE0)d7#CtgWv_HK__NRFEm8&5fw} z9xq~1-2!cr6CknIc$c7-&rvE;l2cw=8}fz2q8nFhfvZx}{$}c}iafJX$3^~z+CUc( zdd<^(My#aN_=iuA8A)X7Nq4eFF)GrrF!-r+0t(6h3i~Au;n|eA)`}pE+Gx5$J-jt!1d;T2*F;S>Gr2!HHhKf8n4wPv^ z6PEyvnmkU%8S3+-R_gNvacdlqB>3;!n|R4{*e}=X5D;6N7k91RJ1o9O@@Y+Padu5 zU{-$h<8LF2k|$nPWXg^%zvxW@-y3D)EUEW}2;|8dgvND|(sE$`6%0$M{qS6V?*f2W_e9@(Z_P4AT2jPQ z3?mA0kFOWQRv||ft>Sq#)rx`GfDdgHhB6-eVgWRtE1-p-Wx>s~477MQN4o&&$}E6w zS~lFEg=r>T30gC~h29~eSI{+}P3<&CJI#t{Gv24%MQ2fMx3ZkxAud(gny4(C2=I6y_+=uRwiT6fl!9J~` zQ8mwk(#hudO5GH7XPqa5X-2yALDV>oZGnf^`X3(h zz_7OFXb;3^(t|QXcS4$Sh`|;km%9_v=rM`Mc1u^ziCabPzv$Kr%C*P4{gRGX3`Xk{ z`zezYIEk^dwH#M}#iwAQMA9c+y{KO%8l04+G%B!5JKA}Uwl66QmTB2(RodX>e##03 zjv2{cO725f$>bALdMj%bIAY*$rSziBil~#8S?=LXH1qm&4^(Q0(r3UpP0hF#!%H)^ z;@|Yl2jE>z&n%}Upk2rukx&V-6MW0itQ2mXyU@2RthQX;y)$6S8Ckc*l;E(Xl?40C zg)9#p23k{}9xW5q$*iksP=xpz9J~d<9JI&sx>JmQGaq_t zr}OT{=$58FS5Se8d$jlab)-|F<Tmg`B?5s&zc|j^21KRZk`E)#JL;II& zhYHf*LnD;iKN;5|3{Fxe0VH58lxs)&M~n3D^zYw40I~7c1cSJU5Vx>F_%2-!fJplj zjttEEzg~@sero2MgvOw7Lsd;MBw~8TN zKr395R$rPtRyF1t@B!`&@*BJ%v_qM8A&;1Zh76g~7-?vXpb1LahBClyO|p4tdW_&C zh;6Y^d%aZcwGl48M;dwkNNTiU?j^(rT9-jRsb4VY*S!v4s4(}*SYe<=t8bm?DeDN9 z=xB*c>s%Jo$+VM^M$j_L@}{A6b{a0=Xm2#ueVkn*A-}Jx9&OU$5&)0L(KI6BvNIHy z9Y0RR!4NhdZa#3im|-F2Ze$r~_mvHyEAWYB8QpKiT|^)dT;i*ph7}tYO}zsDE79Y| z5u8PD8PcClhn8JKI2E($m|-4VF%}QQ2a7e`ZLJtu;mE|6_lG|L7`t}F&)UbP(N)kg zapadG!Ih)$hnQ9PkSIcMYTkBLsmx4MCv||;E#F<0jO!84PN%84^}Z!l^Flt~YRD6- zo@F2Q2pqRHzR+S{?dq0_2^-8Oc8JGXi5S$(+|^-YJxMeR8nj{4wy|c2)z00Jt0h$y(tAN0TRE7P(Uz5!zsIS8YLl=1l$O($ z(wT=r#tvvHx{d>#PPNys&&Es3>Fb#hb@qnR%ni6Z12r5BGz!Zx(#4GpxWZzHl~ApG zc1kD9+`Iua@9Y6ho3MVsE$p%3qHRui;4UXz{InA;+2@2ypL4>44msh$N1SlkaS_fi z@-Ot9Y9$n&5kiw0Rdk_M)W9g5WvrWu6Iux+nXQDNi zQ6TseiH>2SVux~L5Z`RtvT*JqigU@y+DvizZr*-| z6VKio4*~U3ZDrt#j(!TYIBjycf~K^rtxI8aHq{o+?a^|mVJA)){8SUTTh@j&JlDxu zi*c`;=F^^!WNVWnb8zpwEAl?Aqb+M16~#Q&Ji4qN0@}Zudg7yo-1Ihps&!qSMi)`7 z-|`od1K`0a%sSxVni}g1dDSOZFeIocP2bwL_PljAZAo+>uRJP;JN^Idmm$slFpxfk2CY)hl?>JZnFN!!7Q+Jh-@0?do;?5nHyd zAg#>?fSJ1pJP>02ytuCa03Yt}D}153{y;!@>WK4(uXYtc{M=wLfGZoeUWdcPFB zQb$cM0>xc}YbrJ@c8KW4!GtUl2~>jQm*3q_cmv^XC5RqEBzBrFqL2nqDzRs|ukqCd z7yHCX7)v8k;%wM9rP?kf78q0ZuA`SGMdZ?4SIS%uUz+rAyOek&c;oIO*D5SNHWzLv zaY=L;d!5P_mv)@dRkZnBvKGZt;9;#h9|kkE8~BxU4b?XBNwk@2r}-#Y!>=oZ-rDo) zJ11YxlM7RQu)gv(VtSZvoA)$2JM4)us`WLGuUSgca+-7S3G!}?EYSn zIO9z{;dZbGPFzV7HyX5!6BWqQT!wb${Zw3i_1!saEnGIixlen;Chg4+(=q4MA3meN zMty2OR{Eofaht1oj;3Jh!oPl`AjjZ~xiOnWkJv)V7VWxs(qpVm%(nk~d-Syk(s*H~W@QCmK^fIHw_+N|#;b~dLPtjRt1J_r-x>3jbU zqj3kV;|@9v91%Cq@8R^q0}AxV&hdZ(a~M3$zwHPGy)6eJ^rDJX`D@343rCvpv-0>B zHTo9^YrJ9yvYt__^fRj zp0F6)`ZHbNZtRBoV|8w_=3XS^fZg|s*EIZ2QMck-#dp#(Q*s3)l84=2L% z%O=Q+7v7ewbXXwoaFkjQANB?!mHY)4{OodBTnQU_b8m2=Z>8;BXWjF864XH@pP3BV zCLz8%84Gby!|CN(jYA3-&o)7dF)8Vl;`$(f~I1u=N-k`QEoKCw# z88fL}lH|WGp8ifY42!yKCO=U?UGEK(0S@r|J}?Ci^5uOXA7=>u&=b&;AMOMDgwX1= zs_*HGJxI1W|GFRSm(ADFJPhl2*zEyui2t(yu7D$aK!3=CQ~J#QPzxwNHvsx|6Ixb} zu|Al7ek%WV0A#{Z?)E?~cGBT^WWY-m&Re#R*-?JG2a4br$DW-7$N32lq!u2d_Oa75 zrNO(X(O2Q~g|O@5a?+|T$#Jo!oTTI=?}f8$T*hg3EkCnmm6vvW(DEu4T88G-7-+X^K67q)3V^{1v zJcj7E4hQY>(Rd^g=Z+M8;fDT6N`1*v9V<4=r&7wlQ&+(SD%(Vkob&pH@uEqLBaR92Ars($Y(qV9B78>SGhR^vZk{v+ zo9hf8J_QPgpQjK%8iyXPW&zZ{1spkciEpkW#iNoj;)pI^o!1{Y&v#9M)FFNbBc$u= zP{U^%Rmeiq>96z7_c^y@M3(p?5nsqg$Qf#=bJcTHs&jqJQRkk+##Exu)AN*^7pw;~ zT|fl28mP-gtHDLl)`oxzY+$(EH3YO4pnEv>3y};B1^0-KE% zLK4M_K$i=95DItwMC?!YYrsAK~edvyAc#M&$5i54}%nkke{_a!Tqh>849}*)?%GVy@(O~iK7<|xkhF<2KQ1& z`Xg5byz|4tr+pd2fi(__$D4lISBYs0cjhuJud2k^e+9p8I!@pX`kLv`nc}>;;aYgT z^#a*oY$>8*BmRa4p8YN)>W|M76RxViJsW13DLZ9&8*pze^e_69D%?zned=GTp#bMT zpT#=c2QLfaT4rQ#Epx{5sP7HJwI(l~xfG%?H=%>l$1TDY#n=cYt2q(utl;3sOiZ|Dfv*;;VU7OppTTVcMuk;sM|q&XG!4fz1^T%=U@N3rl{nPO zp-38Y@M!T1xL3g=%gEJGoYsJ2*fuSJib^ZDJo+{8b*mvMzttNRFc?*$A;UCfEdMIB zzL$_@esnd~oXX4Z!rj)r{D!qq3emiJ4W!#!lFe%%A5#oCOx<|-WDSf=tOm8x8(uis zTZgZR#4lNZwx1u#L2OR=(Y4SIs`{3z7E1g z_qG{a8(6#1wE@Qy4li+0qE(e_;=yJpM>>0&Aqh2s{MBZ72o7`q-LMNUZVg_BE&QYg zLvSzZz6Z|YiXU??bOpSo-UljP`4A58z&4(+9`|Q*EX-UF39y6TxE>5UgxJ#QJJ-Wn zv!C!eTcI=T;#K#fbHB=)x8jid<^4Yrtxw+wGw>v1r8XMCrJsBd7Fa`1WS6Cr{q zP;lw8N__Q0toFi0X!U;cotX^rxC}fAJiZlrVg_;;p4^UGnvMGTZSaOYG)?TU+hyk! z+iY%PYaWB$W?4GKhw$Z=%NAR-rT*$p_!9c=Xwxo8_0m^ycFA_x#n1@Dzj+)-{~liY z1Wb~H*&6*i)+9x11b^^F+>QwYbuusA5Ak@Q8oM8QS;@qkO#TAeAI&1g#5-^N|pNC2cavfGx*1^!k4KTI7)?KV41nC z&8TS%33I{6{M1JjPrAlj&9e@{9oU@P4#6}$_VNpd;a$9Be?imDeP+}fSd9ox`vaWD zgd^U>tv>FW+ve>K;qEcCuu@-f6o)w;5Fh&^T!D5v=U5iIWI<3gbBZ4K7EGboTV@}F zb+mmNc_72Zq)OV=bzD*!SW0VkM^3BQ?e9UHP-E=<049oD*x}-R#`}{h8ebroPi&(A0U*S7ZyO?LP zp7=RDFRH~5{`Pn1XvcK;2lgH-X2MxmVlt>vrSRuE&~qjn?e>SmjlPf^)1CyoZg<~Kaiul7KyEZ$ zD6(&kp&72$y~G_}RyQ{osN@G?s4GTl786D+y>AwE>;HIp8Xn%fu>74m*I^#iI9#`UBn)_SdP>529l(=e_#=Av5%zDKsX7fng~ zalaJ)W-n?eAV2R#e@;=Eu&56$!ii>0KeY6y`tyD08{mkK_Ct3KtoxDzEZ!0Q+5(&f zae_%5fE*AW>!A_6JnNym`W|UBGahX}{~wj}|4}Bi(|lJUjkooZ$M`FSbO^4KP=qXG z|0^n@6L2dlAXkT=aAlFbb$2n16MM|(i|JKnd}2%n9&+o^E_+3cK zgKA^>@+~fwG8dsOOVzJ06BR1c;pP1y_~4WLl#i;q`wBEinNhB`S=a{66uo>HdbVIH z!LOqq&Bx(IRKMv;n!xN_^=%_XJy{RYPmjW?#!Ai_gL6AxhhBxw24)sc5mWSIx6wOI zJdtOOr{*ldFF#Ok8Be)LElP}+0TXDlS%tGFppn6ed3zG=VU;muGF@n~Hy{1q4l20L?qP=o9DA?=iJL zz8Y=tg6)vFfywHDD7IT?^7Lt$M}U+Pnw{g&gWf7U57&QuGsx z(9YxZ<5nqlMQAL|RP<*e^xal@v>wfWT}+Q#QSJJX>7J0HE6eC#Omfa>rZ-bhtI<61 z7CO<&3H!s7O*r+MeWYu#IG0tSl3$#_!WVeO0h+AmtrRVO=@j|IR_Ys_@_FxLZ^C&s(T!LHk>1qL>ojXu;LL zfS+wa4^LI^`xLDcqrxC9@6z|_#)@WOopbQR3bj>YVpI87zjd<9+ehOv+ped@=DJ;F zOrXXi2IwpI(a!jwaozSkv*M4zNtdTk4vET{L=d7cOSqh?gIbEOEf#s5s=ibl7vzidJ> z6<&!R{g)|cw!$-Cp;z0USlC^~hgwE0kXDO6iet6tgAb$&NI@H7h3$!oSpaMCye*D;qFv^xFFt|dj>!U4%kP`lnS8=0S#{0ZR3;&B(9^60u%ER8* zXwKNyXDd&zKCrCHD?bvmfx>9BciN6B*hke`^OXu5r`FpQgbd@^hj3s##U~!Z!D^V? zk~*Vj<(Qhj#cZ9N>xcwY4fdWE^)eDV);uUPvHMeS`zX&t~Me)f-a22AB+-=Yt~bpGjE zG$+~8etN9Yk2{}*vvl=sdO%UzJp=4y!o5{}d57-h${)<9K$fnH>GjQ+|wdTT3j{#Ue?fuA4#8l5!Dfp__a=3r;# z#oyqTpiZCt4PB3&5#Ps1)MLKI%EVP>>UXH!!VX&ZJ$(w)`xdajqR{CF`U1H0*MFeD z!?>r{u-@ivacy35&<^ZR(N6=r7igV=Z#pFN4UFYnht6!#<>=;gscM|K%7yB=T?C-R zRGVJ1vE5X+(U?#g`8mc4u~YU`*iu-=H!AE3)GQxY*aK*qIq7EUd|ecB&EPLYSW>j{ z-6j0)lXmif6#YyTn+vFgtmw#G=C;>(Lu94-hKP>7Acqw!bbTxf(=-qvHp^8bZfu`{)FG?-;UpH%&@f~0y_m{w z?0rX@(!1J~-er`26xqb1C1KHhD_Z{sBj3-4)#W)uM1nZo-K`h3b6g0d1Z5SJn5{R813P2n{wDaXM ze2I?tAI{ue5Ejv5QQo4&@`tK1&)vhZ=dR{QF&;bc=fj!T?7+NsG)q9=kj10f@+jOE zxGT{25&coLEjPL_Wx~~LlPsv4zdC^>BJ|z_b{9=)=aw2TUK=p1B0bCzmw64d)Sf3M zvoHR)d)$1uxLxIAuVIg;IJ_Xw_Wn1UFMAsMC(=r)WPbqMxLE}N)jI!I>KCT7C&Uq9 z$4qt<=QjQ3>sY2)Dt*uO4Ap7@{byC!?%nWMo_`hE>P?qh^xov}SF>Lteu=MU1HZ}3 z%DUltbBPZpKPYhVPD>jv&;XC0%ijC{I!*JcdN$JRr2FdG5mTwa9}2Rq64tM4z&X|2 zTkt0qVTHT+Zx^vsSnoKgCU-$kWBX*P7L{`xi#wk~s`r;gIlmG?5YV3IE_$cGd8Yjx=lw##YB-ayij9leECY|;T{cFu2)yGet5t#(74-h6}uqA&)$k- z|Dp^}xsCPe^d`iP33+izh~kg0L_^{PjdkyufhJzmzzQoR9$n0sW{s&dCW^OctPF?x z8I7fi15d|$Sa%v1Wz=g@KyLG+TD@zU5M_LTl53l>;YRSio7oV&e7TuT#mkt7SjFY0 z%tH^cSsCrTy>se=cmflaHsR8n+6h0fC|_SW!@XNr1HNGV$1Q9&UOZcIx(o2lTUk0D z(J(HZzq6HHjZpTlae^|T>Az;zniK0Azh-r2aQ4G2gpDI+M^qa~XVbjKdh1at|K?#9 z#GDpvWBVbA582GFgj9au9@Zl!6JM#o_Q{r&5kEp!#!#!9@gQf#3GJ$g_kM(R$GRB% z2$Ig`dmmv}(m(_M`Vm&flA_}Hz(?6A8c_A6kFuVCmJYsYI~$bItUyAPt74LO>GXQE zQ#Lj<27--YacB&y{Ooqzo~V4<4mKEV3#)gqnbB%|Ep{K}9{$iyn!?#*th)t0E1?mO zvDBv6l1~&x9XD!$4_}Q9)?eof1*aKrj-635qed9;v<6>|`B~3%iaOZ9Dwmqbc}2yu z9^O3Ghl+iF_=2)grjXw^!VeZ+R5s>W+1L0WDl;nI5U&*mUNsVhK*gv9;&X%LVLbO& SF0Jq`t3!YI7>qd5`TqgIzjsUk diff --git a/artifacts/AllianceMotion.scale b/artifacts/AllianceMotion.scale index 8330792030796a418ed633e7d55636e6482033cb..decef13007501ffd677e0f45e7e2c4f15b4cf5f8 100644 GIT binary patch delta 22684 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 Y|5D=g<<*|nMkTT-ScN~(btL+K06 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 VKZkP7#KkO3yDPu*m~goFe*+8z`2PR^ delta 21105 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 B-D&^; diff --git a/artifacts/Assets.scale b/artifacts/Assets.scale index 739ed93719688d69c0b68cdf554f613964987cd0..4e8d18976327330763508b39d69f008126423c08 100644 GIT binary patch delta 23554 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 T(>%-DQm-`h41bR?NBaC9=Vozk delta 22444 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 diff --git a/artifacts/AuthorityDiscovery.scale b/artifacts/AuthorityDiscovery.scale index ca649992987b403d4786ea7214491509a907e583..1f5d9858884c03b53ca1fe3a6a785baa677845e7 100644 GIT binary patch delta 17716 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 Mz<=O5w44n6ADj4;NdN!< diff --git a/artifacts/Authorship.scale b/artifacts/Authorship.scale index 18ddd5b95b34105bf4afd0cbb6c95c5219c0e43e..32187dcb85f531038e0a0029e0bc0f4a41a71c40 100644 GIT binary patch delta 22846 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

ZC`u3%Vo61+kDw4s22xHzA(jD1B?=0$3`QzR zP>5wHQptisEV)Rf2nw;Z6d;)@NNkxRr22AdI5x~Eq|yY1U`mim7ZifYmZS^`Rgb4m zowdx5`!3GvhsQ9r9+T=XWlmD7t37olBU8#o@vK^O&>E~3X@DfLF@S}$c4s3%M&*i0 z-v3BqlJ!1!(K&d3bB~*Y_cr&gIe1@lSDJ(OH20f1ct3L|nS=K+cZfN72XpV21ADgx z3ueA92k%?%*mCfWfuvd)xy@g(a=xi?R;j+5hglJ%OL zz>}=YmxaZCs_x{sXWPgNAAm$tZU>n zo-D&8!KpS;4&UDucUr@W`5IQyi)EiKOZa0BE}WaQ>5)2c(wsVocFvXg?k0btVMC7h zs=gXYnk%yS>YxUd8)nZ2h5k|pxPPWjA4~%e_4;rVsOS&)pgYsI+Z*7Irad71Vd&@! z^M_@pPek?N2zeV7{n|A=mQy=E!g18`9PX&DSP{qgjQ z>%q~}+&aVsntW=oP`~DS_?~H5d_Sp+Kd_j2@%6^l@L#6trKp{w^*h&sOUBRXH^F=W zmBz2b$PX`_xz04zoZ-u~equP_Hk)7jjt+ z7FMGFVKa<237ULA?rE0Lb6a4jKI49vZ3?2=uU8_Qj@jOWM6*GQgVnWa4K`|?aB#Tw zqYuI+1&h1xQOI{I;RXoqcO2jp-nsB-m`rrWRC2pTp+_Etq+T8D76~H+jt#_!3~jV4 zgEY&U$5j9h?V-WRhFzsSGH57DSzL-+J3DA>Z}ddX@&xOqcCT3YJI!Au>-49(^ zkgbuy!Jbb%4sXECwC)KQiT3vsPr%>NjJWqn zwB_)*eH*0XlfJthK7{r3SQ}Iro6a zJK8nchR%()K{VP1`o>2vWC-6uiwL6*gT`iigo{84)K$GAx=)R%t@J<$(G zZ~ZfTkHJ3KV_6$Fn>Jx}Q-Garipdhe?LPX#CvY$B*Cw5Sndr@+4}At7<6{-b$>tn< z<`h&gGw`3M;T-1t>T@*g(2i_hwljd%RiLg=&-?;aBW$MA&%osvu3?=6gJW5(-N_t2o+{*1d?x5y{taDNgEM0H%OuB4>%R~@MKV4SoxM^D;B{zyM&wCc9z3k$(2TZel5#2(FEh# zj8cOBCOi-jNO0$Eo)L$Aw0|tYQQ8g_SIB4Mh@%5q&L5IMaDs|m*WVekmuW0d-#ZXmSRd>lgZc;jHu;wHl3e zU(li7pF(c2dZH+e;EA`W$`!w@AbwT?ncg5Cu=`i2=(2k-ourv1)1&>!yB+Grx{f|j zO^h`%tWsRU$KO#}o=H;TtYH>j{)$ZUx!LaYTo#_{b{sDcyGVY=9J~v9WRo|{dYVnm zKH3c%hV7F=*x@{5b`JT|r7}imvytG%ttz_cI(}AllS5|3^@+pDc(VkD3!UZuWt9t? z0@yyg@`)Enn9swZ?%f1`-3!?-*;shH%U@@pw3iD=GjE+&V;CT|=qW?<|XJm21~4a*ZPkmA$;6Bj_eq`y`6gA(OEt35bAjcZ73yKT}|irPWosm8Hvt?k{Ki}(o=)# z!f4`{GBOE`KrWz-6G(*7jlZwKv52E+0vT_Jdv{GS7R22;T#55Wyw#ibTtFhwH=K!$ zz+!Ef4>iuetU*Qf&3kd=WHvweCq!mUzgB?_v4?(IMbh;P6?l3XF2@L$@WPB~&&%pR zjo?WvFN;k}eclWbiv}WtZ|aAhSfAPV6zQIF2%yyP4Osobtapq-+)JI$k~H&Npp6zkO)~Toi!3y~>3>#& z-sZ()_wdSh>M- zj|`Gk7?4Asd6gvVAB4z3^CbtjaDq*ZjXsRBer+kyP01z4B>GOO)dMu`b&_Kay?-oc zOIrJGJhg)0UP-^Of?N-MW^?rY5OhC(k6@Jbd)&z!(!lmoatAq-(#*o5IWX5hn~ zb`v$TlkJ(wP0ziu)~2}QI-eA_{hHuSE-32!#({Pp#JG5INRNIG5kQZp^=RuJqCc#{ znILo~9kUw8_Yu8(HTkEx=P-B_d8zu^HE5C=&122}Z`kbr5_-gdtJ;q-ru>K~tO?P6 z4xha#sB1!%A+)IYy7Kl-s8_zzkKIIWYd0SL`?t2;LLB6RtiN~*`Pc+xPOETL^7(p< z%Lwn!P9u|B5Nry+csu#r$jUXzzwaRKj+&%=1DV{eI2?`7-a|%Nyk9iZ1CG(kqa;Dk z+{gwDZ;1bqN_n4>-5uW7QI|xTAB%EgY~~{G;v>9o=&Ae2kKr}Nw4s1_JEw0!Gv|=* z-V!#w#k@1KaXqFyM25BN2drVmR_xvmMOQpZl9MbupqT9;EA2slP`~L>bWxk{Fg1en z_0SHIPJWi@w>yXnF0Fi?AlqdqqU)X_nZMy>9W@tvpN%nh$*<|C>JqFhm#Fx%=gEeS zl{DIKC-Z3-OC9LfzChRsqP@a&8d8?B({J8|2U6jAu{EP~@{IYuq2+YcjFp&A&v}Jw zHXSwFS7x5}O09Jtxy6*wDf@A>oz&;=Cm2)|hN$D>+fLExQ(o_|R^zLNjtjj(t^kOj zyWYguE2F?YeLCJ7-_JE zuHKJp`!#QqN!F}lMPses{v%(5d5dOeV!&-pB~z;%z8O%fRrCsV`sNU~De3%@wPWWk z5UV4gL;|UF#bF#@8T6sUXtcZZ{fEg|0z;{MgbcB{Q;(1r2^^srACowmbd)4!b?}|I z$62+A<4i2->&W~LgkEIiG;JF64_ye zNYYuBA)ZeCh)ksL5vF#0L=vz4?d#}w?Upt4s&!n~&I^P0Jp10@zHW>H%jd>tB}UbY z5#nUP&?=QK2+%7(#=BJ=Yb{BrskVJgO29?G{+Nu2?GW-N0nI&5CRqn_5ei$mdv#UB zSqkp$jVK?Qa~zxRGyE^dZG0Kr_N51KIZJqaGAI}o&~62-I!WSHH<)lC-5BVBc2K~K zZw8|vJOjbCopi;s3nkpG9N*anh!;jcJgZ6^-SuaZg69z!0%1fZ za2hk5N=*))Wr+8aKOqBga`Cd}d_q#)m#%MmDc&w%K~p$qoSkco3%^z4Fgt28eg6}Z z86KYxZhwQXxzZ!6cB04_dX{tn#Q00&=;fuU=;1~C7A;yRQ-}X2xV0H ziex63UQxH{6-E2EZlXT=D}ooPW>GjtQo;RX+Bt%koM`$tBq6oqhrz|;c==ryJmvj{ zOad(Y;lGhZq(Y%xzC~-HLeX8{Vi&qf+70Eh&O^CO3}qVqB^gK``i>-80As|g7qR#g z>EZ9l1hf1J6{sDi1^kQIZ9yZ{H-=rkF)NoD@;7p=5i~j3)wN!qSfEUvRKeP3fL5zy zlj(}KNy%al)CMsft#aD@J(-^0(F1A3Wp#8aFrP+sz{~Hz7V5uzPh{pinGbT>f8-z4 zulbQoVSW$x26_(;{6y{vBUk>5oQkld?cAn2L7pC#v%ey*2_xT#l%J5HhDJBZYz@7; zn>?7zSM+&JGT#8RfKa{5G8qFT-1^kz=#0hjx%2hjbak`56&H~774ld3h`L^W4ezYJ zbG^(imFT})B@es?$M50rE*ZKiLR;y9Qu(G!%ELoj%~FYDy7v6v^XREE z`6~1LreeGtWv1)K%df&(>Y5ua`~8{MPL=-l9!FU>}~nNFE1JL!oja?H^6cxX5WFJ_|C6{hn(T~5HWM=s#{;~)_|D~RRUGuWAl7C7G&w!#Xh-#%(ukK8 zFc8$O|7)6z=em#UAIy-~vr}BYpI$mgj>SWs^>gHv5na$^nTENwo)7oINuN1Se!yHo z=_m8$-pKoQzI+$n)1Ygr8Mt;_5 zU}0WY7oIhVYk@(2y(Er~QssZ(X)Z_0{jxmpY`Z>ok-U%TU;GOKy-}IQ*UH;r2Yszp z&JvI0?wRcHkbNn*lg4^cOYfv^FDmVw`qf_92e{?53g!3u*wxP6G^-tZXI(lXRuCva;nj2iS)gCIRYE}SiSrfpoeseU&c!=F8$#pauRj~ ztqRIX^jJWS>xI3aJsty840k-<`Jg`saD;6adE7yH7*+uD55hn9(BTG0`|Ba}+Mt|` zP17Nho8BLki+Z^_@?G>x%unZsDcU*0Z&6+6+LmId>T7>-%TuHUq616+>JRWkW5gpcisBG*U5hd zcvC-qtNbTCc3MiMQYcbd_no}PWeWpuDMH2&cQAEG>kDbPHByWjNcKM ziAIzJZgJXN>GRfmLo4;i?vn2$xbGZ(kG!$v2u84Aj6TMdhrIP_`7DGO^zbc)$5$2z z`0)=?M7bxk7iXv*7Sn+Ccght1WW0!lB1t-imk{l%g&}Wsaf!HPh)LspN9JsH<#`bv z^5DzqQwgC3cZq zcI`154+C~=T4afm^4qmB2Jk6xsb=pgWww+puk|zqL)hruB-c29Akf6kP>j6Gp55SC ziqVLkg+3L-p|Eb@-Po?0?53WV{V5M|a|_~B)~%1h?K~u*qU7qzim9cuCzn;0&6qKD zMrGNQaZ^jnN-Jkhyr!iLcU@=Nl^kAMNWpeE@tXr@0H~DHxy*S(?_gEGCx&j-t zzKLD`H@asW{tXiRGd8m1p50K_fZl+TAo^gi#hv5%;V8B>R*Rh*_yerYku-IqoJyB% zlm~YI2K7c+z=QYB6fL>?h!(6eNGTPV(c{C&IwXlnVw@k6vPoi~ACihm;?5e$2$RGR zJR~Dc5@Y?4>|&A_?1yBONn)@cl3k_riWdIiT#WZaMmJ;#8YBLY?rzZnnZu$5v}lVK z*m_vB0N2x^1-clE7Vu)F^cLfT0$?vIgFx8Zq*-tz0*bR}0WjX81;7N076AKLv;gR| zXaO)$YB6e@ClDrC83e*)ixvP=ELs3eHE9+xi2(arv;df9(E?z)MGJr#Efzx{>}Sye zVSkGj05dIG032Y^0^mT4761pCG=^$1fG&#`09yuI41sWnMGJ&k7A*i~TeJW;)S?Bz z9E%nJhgq}$=(cDMutmx>83h7io<$3U!!23>%(rL(u)v}Pz!4TL0A6O%0$`y+g`i3kErvjNrA3P-oMh1g;AD#y04pq70Gwjc z0^n4WE))Q#S#&OjKqG+Z7DFJMVbP)qXIiuXILo31z}Xfp0M4;!0q`n|767ld=oW!+ zuE{782(Phd(S+Apv;a8Iq6NVD7A*iSuxJ6W(xL^xDwA$05(qseqeviJXwd>-wUlXS zO1D5*V>1Lq)n*8ci)@Afx!7h1l(o1ro23ezUOS5bdY#P>KI$17pk8k?1k{x_LqJ_+GX&Jt7NaFkU~REDc>?Pin<22SwHU@)bA!zgP;ayu z0_sgRLqNURW(cV3?C%a2SZ}ej2&}i-3;}h$%@9y;vl#;F?<|I~>fCNK1k^iBMoVtK zz)kd(K;2+71k`(MhJdQs3;}hc%@9yqHd!2F{rSDk5Ll_r5K!;6 z83O8Nn<1dyXEOxU`)!7Ry2W6$_;L#b)(7k?0_%e|LtuT#Vi+sY!!|=e-D)!g)JJTF zfcmJ-;80ueK8-mAMhL8r+YEvA37a9HK4~)q)NM9HK;3RJj5X;gn<1b+Ef_5xU+!fB z>oay1fpv$?5Y76m%@9zZvl#;F^EN|3-Dxuf)E8_9gNo~atHm*vr(HHfVBKvq1k@L8 zhJdQu3<32en<1d?u^9sD%bd}IW`Ay>!1{`vMPPl^W{76pYcY&U}#)9>Z%@9xzFh&dC_qYYt zKiXLY)^}}&Xx4)^LqI)bGX&JbHbX#t&t?dy@7s(bVgDSlIL3d;j$L%Zv>z{3gXx2|GhOuCsuo(jCNt+>{erhuW z)X!{2zOcVe*&KoOw9OD$KerhI>R)Vzfck~a5Kzxp3}eCi(q;&#Us?7?-f)5SuXYxJ z^{mYh&HA;?5K#Y@%@9z}*$e^o8=E1Z{>^3>_TRS_$5^rcZZibd?`(#E`n}B%Q2${w z1k@jFhJbqBW(cT1TJ}d?zQFolb{2v4Cz~Of^@7DP7Oa2T3<33DHbX$YXfp)VpDjj8 zfx!B2i&G%5{vt`=F$Y#LIj^w4HiH5UKs7D9-Rpa<@e%lc==jKiY^7-Qcbh72VR|CCe!@7kgd z7ytMweRC5YFJkD$Cb?fre1wu-KCV{9KUM2*VD7q^>~Bs5epX^5#&Gt`Mzz{Fh=2%p zA?M9nZg3(Z+-}a9fL9rU-r#r2Mv+69()iaF&MF&SX7SZ(*NE7NY)*f~Il#yy6J{nr6mCSM zg7qRcey_9EnjC$$`_ntSN7O1oclWR`!hBvxVh=2Uq$ZgVATd+iOA2KYO$gP~MKXyY zMAFlPWD-vZ0$8S4CJsWv^mK_#QV9vy(}QK=BBYC+9wL)$LL&6^P?_Ws5~-(4Ws*-w z6p80;709H3kgg=YiA&gYF~QdLENpuyA>D+4jSnZJyAZJTk%aUR0yaOIAWQujY`>h4 zSRo*R>j~*81Y}T2NSqLm!Zd=t;m;Hyg&PQIN)QrKxS5bdAs~f0gd_<8Dbx_`w*C-O zSU`wV2uQ(8NU{)+LOmfVLO=>Zg2SUfgA|q$k|qSCu#Av&T^NKEn(iPZLr6&BE`sC8 z9~y)dRuhs*@~`!}7b?@1_=-xf1%$GQW9kC8DfJ@RZGm4=OsF@X zJ)BJZUj+U~!X!S?66kUhpJ%Ekah4@sDuU0kgpXhfXIKi;Q!Y$}>#1x^bMY9yw*Zy86CF`jmrb<)v zy-h%%TIbz!`vJLSa zWCuPXlUiN)nb|_# z!Bn)KdXML|64I(}aJss$2G>muL$7iTDw<8m88vh40Qg9)9Gee+Q47bFsjrMphQH~l zE7#4IZ83 z8}?onWZ(F`JOjc&o(kRYIE4Z~@~f$;(^rENa8?Ev6L5KIl)9iN*!Vp}RN%w$^F01Q zFb%+wJ0ssUwJ!ljK&kfC)wF@g_iS<&Bu{WuHq7;Us`(58z;LCesHCK@bl5Nx#x_i9 zsYYg-N7_wO7_b|9;k-qHJP|@90`h}y|9mA_wZI)%5D6fc6DT$y(Ss0{#B&@XhS&Q& zwVt47u~HRmtXBdt<#@_)PVE}#2Ap$lQ!GHaMU+pkJJ{e?@SyI@HM>o=OcKCYR)dRi zStZ~oOCxcKL=Yz?!@@}#e#sGGe5^A;c1)@ddVF=VJPmL=#!U3pVH+f7YByi4f*X)u zaHKb|{VS!xO%Ys5o#68a-CjInQKY7b2R(|CDdJI&B3^Q$Fdp_OhM6KB#wdoHA|CiC zb}>af@=?U&Q#^}@K8lgVHK9pwm|uSgL?Iw#Jo-`YYRQ6Gv?U8_-7Hyf>u$+{Tn|eY z>|!ig(2FImCZj6R=AW>~Ty=(1!%Ftf=51j8MTk?vLKjk$%0^S zOBMwCSh66PW6H&XV6G(#f=zubKrqa+WWlhXB@2T2mMjSNw`4(ZfF%op11(t)EU;vq zU=t}cffB*6$dU!aL6$5C7F)6)SYpY7;9yG@1cz9%AUM>LIl(4EN-aPz9A?R42(L2b z!Ghp$OBMu2Sh65^wIvIJ*I2S3IMR}lAm9IG79bd2Ysq2=M_IBUINFj0!7-*hL=YTn z$%5cGOBMvnEqRd4)g4k{0fOOmmMn&Fyd?{Q*ITk6IKh$y!HJeE2u?EPp@LwgB^RQ) zj|3)LfM7VqlEn~CwPZnXnk5T@(=AyLoMFj=;7m&v1aGk9Cc$u)36u(kH(Ih7!ka8v z5WLxv1;N>tEC}9W$%0^&B@2RcOu4C4Fm#(hsbDzQk_EwPl5L!n1%hFX4G4;g4G50& zY(S8lZv%qm0+MZ>zXgJ)$1Wm>-f9Da=t3J1OuaTBsMcD5ajn$ZfS~HLfhNJV-bMu1 zMK&O~`fWf^4cLI78ngjHwZR4i)x|a-s4gK*=CB$!%u=gJk>J{B1A^*pHXx|pZUchq zG8+(7m)n4#`d=2%R3x}ISxAxKdWQ`Nt}86SxNGjT0YP=84G5}t*?^$B$_510U)b#q z5?t@LiwLf(Z9q_6V*`TfJvJby{?Y=BTjyRI5LE9ofu_P@!S#LRKBRR3EefK~=Q@LG>XU5LBDiS%`7}thWKdmDzxx`mhZMsvB%TQ2mt+2&%uf0YP=6 z0W^6FO9aU1l7$pAgDfW1A^**+kj5B316kmEihPc-D(4Z z>k~F0s6J@}g6cLK5LCBYfN>{1Wdnlh(*kI6dkcpMt~=}^g6mEj5X1V64G5~w+JKThg7P}OWeP<`G81l4^uAgI2e15K#* z7Y-F%U$lz|t}oeu7}l39z__Pgu>nDKzYPegEjA#i9OELpC6& z9<~8N^@t4!s=qUVBICk()dmFBqa0|`-+KxK*VpVKg6r!xAcpk~8xT~F*?^$>rVR+H zZ`pvLdfWy|h5mEGLW~>h_ckE7zHI}7>N_?dsGhU|LG=$dAgI1;1A^*%2#EKuqC&y- zlwCw{ecuMeuzp|x#)Z{t1A^*l8xU0gXaj=kpKPF5=wD}SL~uQ81A^;^HXx|}*#-pF zk8D6tJ!b*Nh4rxw2&$i0`bQDBFXB@Ci(N!;{nQ4;u>REs1l7-MKv4ag4G5~A+kl|@ zg$)?`-OU;~qo`PL{ij_-aQ(&x z#IRnn0OP{?)&>OC?`%L&{oV!y)yo!;RwB6m%R)*7*B=P!3+#vk#>@Qy4R)2+C9{D} z$f0GR&2&OCbcVHL_y8cp)KnM%A?;u)+#=Eb!0vZJA{&bT^o%qOJZM%5R(Wciz-~c2 zxe)C#V-_`d7W=B*+;TF!Jl{1D?SX~*!#RoKIfzKD^ec;fK{TS20F<))OekRAy0Eox zSY9T~q$Qx+zM8o0tMq?m`x?>N_SFU=r4TW4o~O?3MVndGe80P{rrvFmijd1e5FPUK zO;{sz!%-83@08s15EM*R0s$O_in23-@lG#LnfxH)$^Y$MY#sawvskXgXZuQ{`EfVe%$ja@bk zu(SCCxDOG;8c{Ac7ru5>jX_uoc;~7dx^Q@*$+Icrh;A z!%2r&^b>Gx+-h)5a|aeqbk`~bVwNmW>VB%4EcVS4&<|F#>?dK=Pd1pves~hb#kZ?I z-p$S1KVAQYZ4k)yw6o8>(bhhvo9EEfjD4>KG#w|XG}$390@$e*=H09|Ca1~E0e0)c z#pD!vAE>b@x63aB?9;K&Qe5%@v%syX8S*iJy?V}HQj6qM0GD-PqbouUPwT0wX-V=r zYSb5%o-Q9Xh1KaU`4ly3jmU7xmw3+P{U#@QRwVQfXgFJ&|=A^w)Er?&X3Bda7S`hU}3H zUQcCbz#<*)+dD&UFyU>zU9w{KJGYNZUT)>|$$%C5135Wq@+t|o>zw{OCk@sj+ytA{ zvfSJ0W(mjc7B#hRvbY2Kf&f;?L`YTYv+Q+CU6K<iU_VgQwMA9xD+Bw=jplRX3UXk% z>MK|!uaJ!?d$S-yy}2+$-YUZhd~~+jTG&@UVAgZKC|q4w)Ef?CUH8aGP5AafIr1?X zQNCViaRxmhs{`|HiL3N2&UZ~g4}qsvxtd%>$RbeH;sR(<4;9a#PEb=yW}*-%c^v;u z9QWfV93-v^J3ZGq_VN+W^PK*QXHN@F0@JZ4B&z@n3f-Wk`xw`wC0{NUbg zX(7u&{bFbVT>;G*rS(z|!vzB|)o!m>?AWa4{lmQ!OQ;#8Sej;c$YA|OVZU#Jr%H>`!rm>dGi!JZv5LpxG!P?USDuGK+IJ9CQzVzGpZISZY;A7Pq}hEg}wyg z)aaZ;)`9v~WrF(WNr}m!m~!+!zy=`kkYDfiqoc&|N2sxtNsf)+FkEYp8wk3CN)>iG z7zye%l`e{3b1IX%Z^AZ5d*&+vbPR0(b!BBQx`{W?FJm)$O!%2Aaw~#LE#7vU`FL&x zvXz%fQ41!gjCH{1QNFr>QWt0ljH#RNsZ-ERgC4U~{&2(4tI^<}Z52R2>6MGCYbVF$ z|45!)RTzn%6kNbvge~gv$$4};PSupGq@74L;P2qv*$L|KDXBy71h$=RyCI@n_eB|e ztN3gL#9ZJtV>+G4UaWWOFuD)akyBGMD*y`0yk6fDrH0R1fFHj5@c(jz6L7t}4C?1o z2hcUpoH~tBdH~etW)wiE`P_^Wpoc+SaZ@@3M&26b)=GD66jK{yP1JMITK(t||2MLAHtGAd`4KS0)?PYn(~RZN{9E?6R5~ zKVH(hS6r=kIvqC{BT-Z^8~aL*Vh_+weGJq|Rf7djr}}7B7(D^aTdNXf4wZ#Fy1MF= zB~|m#H+}-tKUSyk>~E_#=tMEQOAOxmLA{sO(p z8lBD8)b6HqIaR;%eN0!-=J)I008wOM^B?>SAXBXiWjjEFx6^|z+Ua7zFae`XNjEz^m}@@DJJ+$cXuF^D0@WXR6 zF*lRv@+gTdgm<3yr361bw?F3g=eb<(+d}wg(56F#4+Jfx1V6mg2rM;%m*TM$TL>Q* zI))Pb@Z1W_t>C#lzG4gEBSj}uf*+py4yvCVnMDbHI5Hc{&&H%4d$EP^@uLbQ_~E%8 znz@a5cs2%PV0C;%=^{$-!?TZXBMnsjZs{Pts0TKt@vjMuy^~JjNi}9^kY5Qk*Sfv# zx@vU0Hd1wUWBIg=Vu?Yja3co{nJlMmy|uVP+qi3Wb+7^3#93LvDXgLdKRBPQYbaSm z)$H4Ha$8Z?j}Q9LjB};t#WM5?h6RQ4tVd?`~9-4ODGflhv%;K8f;UV(;=a{rl~v7bHC1?q7Kn=q9SpTJ>d@?G$S8 zeqiV4(WK^izetkk2HM=T=1t>RNorPp`4GTH_1k;z!GBlX_eZ*uHY@kbGTlv8I2Erp zJy?e!3|~Ch3oGuaz5{6?aEuDpd46)ktH$pho=w|xT>R?`K=)C$bB2_xuG|!7rT1)#r!Q0W)lI$m*O!|z z=>e+td?XtVHxGFvQij&%vd53$mm2Zp$8;-gKL2C^U}x2=?E?^;yuCmE+q6B256r{c z2lU-cAr(VY=6bwd-2HQTc#KkW6!nFKEJl^fXVU?R?S>1KG*p z^o(j$1aS6n+9Mi<60)1;wvxU4D@6A3=}cGec&b|tE{AAz{rl>12}e&=f-;`DAWy@^ z`jkYEQT?T;^;rjeum0oN5s|2P9U6YEd#>`}t^r-MJ+)Q7 zIxp%dC)D7siEvW=?XJ;qf~}~4oXj?%A6HZ;PO87zott>YtW)aOyNBWplfOs5AItZQ z!NuEre{&S1Y=q%clz9s3W;G49#`28eNB23}yyv-b{NDd|uLG~A<~Xej|4MltDW7gW zyl)FQBXQ#OXb~vJM?7`&tLhcM$5+GOV;%V9uU@1QYI4n+UKzl5%NzTfja!!88zDs{ ze@-D6RjTppuNgeXLcd)MLR}blTzED@rztKv$j(F@X2VS5b zzqO5G{SW;9uW&)V?d>$U*!=L@!zJwT$v^bZsl{dFxL%p>uEv*@7$YD?S50wUIV$w= zmdRN)=iN-vBix%9q2$GPZE@t`Dm$yrdABgWbGX$xs@@O%b8%fpxTXftnBn%|b^sxt@;Z~$0W>m<-zT4|Ti#uc{mOc;3{R2l zO24n(m?x5JPaOuusCT@Vkaw}&X^a!p@idOaqZmJzC@V~rt`+B13S4GuQzd>_m7V%j z!Z#9i?cWPvqjuaS74eyS;ExU)oRB45L*ub(zQ(zRk82!{GG*yTwyQ{Ta*c7oKktVt zmv9e~awte@k3T14{g3pKUX=L?dF%4vpL$>wYPvrp;hOb*`e%9i<#v5+?bJn#WaFL0 zz{hY5j0}?^a#5*XqIl*n2nMnzd243sNqz!Z8g-=fe|9)%H;IjqVVIc8MD~CTTuIi} z$?!J`$N0_&xRugaN&6xSOtsm`(tAKu%2D&+hM|7N-%wYj7`o+A(8_wiE}CHM0LaIn zv8oznUPE1VFrc2 z7WR5SSazlC$4X&XuNM2o4`R@g=xzrD+}>ad`#2v~Ua11Czl5FX4^g?ekMc*MWs+|s zU03FqBFr@%ANtZr`=br7(i8#4ES*A9i2+<25i5 z@-n5i$|fp$9gjEuc7~tc5}Q^A6VX1$wv<6XJiLUN_3JX&X9!uQDMowmTC{(g>nVLS zu1I}t;mczid(V?jyfkTliKUFiy;dl(nPbtEKSt8-7z@?Ffpg;^uV)Bt9R<2xWJHRF zSY|n-(GrP`EQf3~$|~jH%E5!YtRc9-ILL=CHf_;?D*M_Y_{@%SD5Rwl`%^jeN*y6V zCAV5ks&_AHP$o2ZgC5*TezbdFiS!CcPHeLR$p}3EXqiOHBsQ@E`gCubH%3zHclTl2 zDxiCEg#_i6b)rqkW`)F#S3pKg0<;a>oFK6uD#Z3F3s2IfTnD{?PL{MK-F~BwskQE0WV1}>L92#8)EblWv(T}pxT7?HnXHs>-N|shu6=quR@>6e8rEkx^=pJOdg}3^gNtCOj1PU+0JF@2XSGYvc#4

2yl)(UUnrM%dK?86`+-Mk7=s*?Et6Q!N&y@o_W4R&AROpJEmGG)SaCyD1 z*cF57i%DUtM#B|2Pj4TM?df1oj0Tr=BtNa6Es8VF5SVP~aZxU#GlaRyA?J!NKBIGl zO)1w0r0(z7UXH_%oG04B3UCs#j%p{yK%VT1gVJl1rT$Pj=nEQKlWT=|YFH?kbiC<}I4Be?!PK9T1KC#bh zAYBZ-^!V%B8kZ_7P*+~hhE9Wg9EG!{0dQ4GuT)?Ld_s(l>YlRY;J zUNLjsJsZvtYzp0JzkVJRkgo{S=7D$2MLYzI$61HRza~6{G}*Lcm9p5T5`+Fg*d|ky z6+S;EX1Vjh32WG>`H-1yi(O&#wuP0T#gXuR+&hqa0T)9&f=cbw_77ap*QJZ(B9Sg~ zh(kL76%VvUptrS9=1~Y}qvS-9EcHYJO{ho=m!$+G&<~D8u`HpR8-ptFxkQ$dP!OvV zBV;KRi5@yJQkK$@h|`HuS;|79r%sf~QZ5qlQVJGO*nv*md?b4b5-|)!3I{nCB8VYK zB?t;p6e87IPza+0sVfA9K+2Fx6ci$BWf4*tfeK_QsAl9Vgq%=ax<>Q)8N8?3YXO3siv)71s{3u>l$jM-ru^y zS*iE7u3c8@eXW~+EA^h%qirhne%6)AO1+PD&9PGNU|mhD#NO?|g3+mk@8Er_>xY$k z$LhLZrQWN$;#aA6DNWSV^8Tbr`Xld5dZqrzJCY{rkG$h(s{Y7(ji%|3yvt}G{gL+< zbxKkPzM1zHP1o7Ht7wM)$oq+A>W{pSCg$-=XLMTFaTW}%t;*0Ig*TS3TK8u;l zqZ~-WYv&02TfEx3>!1`Pd$boDVV=3%u^~%vtKOrHSOPx*{5`Z3hUj)B9!!$B92}-^ z7E*$3O-iU-8@wF8Fjvr?t|fusQVd|&qg6J;*E)MQL@mObw1urO2t8HW?O|91u!)^+ zg9_Np`mHoiKF+B9GEaMWCCss~C3GORos65(v=OTT&2%CT#+?_&(H>eBXlgXw5Z*?m z$=6=rqTo8)=+GW+hlSRf-)9XRzqCx;44m4q4)}lz^qnDl9XxIkCvSnTto&#H0~P>m z)h6Eo=%*2zyr$j>S8;-aV`tH;20Pddown!+#4(-t&0~*|Suu&=$d%e-;0E{ldcrW4LigG|g9#*?vKR$TbHWf0GE;&9( zkFi54HlKt2L&cr$NtU}2MnEOIXA@+a=bQUCf+rTOuV~It4^$*$+LIe$Y%&^q>wKZ* z(|jw?p_;gA87j`-TS!0l)+RhK&1GM2f^q-kW&PN@KZQvtU5ZZeEy4ZnpOyU@gHX|v zT_)fz41yBgKr4uE7fv~xg8TS@@f}72NpCMsCAlvyb)Oj_1Ff3?`yuts?@7 z@DjT(0*1RQPy6|H_^~-!*mX}rFF3&JcK~{`wN*P{$M=Y4KLWFfkuthFT-wRUV3{>D zd3h5KP~9<$CW6)Nbr?W|XAoT_H|Kex?0KfT=D z&=)ItVJEz8%wtZTdj@XNp$h4y-Kbw0Q-IY+fZMAt-vIrzcOviwu(JDM5H}Aq`aDkj zS6S8bP$Q;shB5TC-#ib$Lmw`C<^?>)i5bp*_W~r6LzJC=0R|bzZZ>8gMx3>1HT&ST z9^aolpWS!>;?r?-S@DhBdbGNJmEIaH+V%sG5PM1f6R$(Oe3+uqto{I`CrFUT-I}_) zWv-U=2Ktf@z@hH1NbPA_%a5|SPFy-XY*Htx zj^*0YPPhUMUu@Oe@I^WXkB#Lcv)w#cH?#%0D?}_hG5X<|;X0noBELa*Q=C?I1ZE-> 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 diff --git a/artifacts/Offences.scale b/artifacts/Offences.scale index a420881f02dbe0496fb51cc479d8d2b3697d99f0..5921490cabb04d0752c53a3273f34793168a434a 100644 GIT binary patch delta 22201 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 C_Bw|E delta 21105 zcmdsfdwdi{)^?w&PME+15=h7-nIscPAb|jr8xrJ_NYEg+06_zSaYz~%nOvBe08ucY z;)2R5wosztipnaxpx}tTup**>qJrp(E33HT>MFkC9T!(!-&0+EnGp2T@3;Sa-_Mcm z^Hg>9Q@2y6&Z*A(ySu*`>F#J$!oKdgF%rAvWpW|N+6^xg4}g=oH-ihD+MdH?0FVS= zzdcG)HTnu!0KH^MA`ZzRNikG%;=eIc0&6)+$`u*hmnrolT8E92AgLwT+&ni4yc{vm zQIeE|&&rZZl4OV5Be^9h)+u@L-yA6iOOmBLOmVskJW_!qQ7TE27yrY|o)W19vkjAm zsol4yCAq4V;Pk?wm?GtXvz6bCV6XfIh9^dIa4w$TT&_Y>idOVGOeRpRUH=B$PCDmd z+0Q^K8+jb!phmmoIJD4|YH-&KA714P&6gl2>~E=Cg$_Zo5JIo8k8mAge1qf23e|v920NA8YStevgB5OY)DCq;!C8Q ziiU=u5(*U;$x@Z-RZcQsvsKJ$l< zT9)a?mMt!l!0QVH+UgpW#yLtbWPnnDWj_QZI8bih4B61awrz$|aInW7f^=B2{`b&_ zefkg#vIY_>-3%A?LP|Bh(1J<6Mn!^z#q*V>pL~8IRIy3FhcQ3*h5--5B}pC1O!CbQ zE5V;Ev=7U81VV#bWY^@Du)n!UmTMpkj)Y0gO$ydLVOn#eB1>UO0*U`CJDg5wi8`at zAi5N`soDKzs~`4p!>wvozbn=HzUlCUT3C3c`cB^r_*~tQccpqoj)#5?JJfvxXRB}L zWYX_pCq6YxotaxC1Hccu&?DcWF3Ihw#`a4g#{tV)3h`=YzpK>m`(;6{x;?K>y|%vx z#v)dye%C)=o=)I|{^ULRaq619J}?6_-6H!4oHXD8py;`C2V}|Xi1E^g24uqqy|~No0&HZ$&lAj*rIdk?ah!km?^5)BX2f^UWINLfgF~|Td3Zcv(&hv46;p> zcvDdtw%ewnHnK+m*A%D2an)N`r=BV9M&YIstMewre2yUW`=sjr7GMW`TWugi2+QW=zy(}857H( z%kB84CDNVhy^{vRUFyq|3gBLK`{WAs!pUiHzkYYuFfk z$?6p7?Q$mY^#z`hlAxf)7gUTp2~SF78=1J&vg zNOA55SEYZR62jhlM*SBqL;JDhbhUvbq`v_Ank$mWg_TBJdSAei^|JIb<{1h{)hwEf zBm8aR68Fhb>yV6!Q1JyElAfz~R7#ALG&ww93CfbJUP=daJBmvNu1dJ%ysoaKeUjgV z5uspFX=!2E@Zr_1a{~T)NqSR#in>csOY7^HzGl7csM7ndDWo)oT0?cbJwu{7agkdt zI#GI8ef{!0aH>CCo{keWt=5y|gkhKY0{#YHxH)JH+xOMUwZq{f^_E(<`xEe11Om;A zl?L83AwDcV;xl&na_JNGU~L$c^oSXQVS6MngAw>zjhW>IXJqKCQe3|o#F5lkKVP?< zky~d!izZNHa@`GPO14OW5oi;bYdOy=fopD1QLa(WMtbz3Nkj z8bzx;8e^a)@+SqGvz&c#FQn!+DU0j)!!?kHrC#I<_?qf*S@d!ojQ}OMNNK2vbiaB7 zH!q;c6`Rn2eJz+8#eKLS-ef2cHM#L)J$GL?8|l}yi=uFHVHVV?5JXLkt@+rsx$2Q% zA;jDfDkHlfa$)EtLiT{_SoBY_4mOJvJ6_;`%E?b-`6 z;sCXUC)6BhZ!aH$P|$9$5W?c z>U5skMNj4JLS{p|G+QM5FxkhG9eOfvDdGnSfBfM_Ol{<;aeC@Pp4ti${&;E|rnd3a zu6pV+p1J}g{PEP4n7WducGFW=^VBsU;SW=RF)LvC%+PdzrFE~#LTW0Pah_)4XLMLN!Co;j`KK!2?011Dn zaVigibcplnrDiNo>Q*T^ASv7&_62Iy5zEuaVNh$A=awDj&%6o}{`fPs(y;EhtA zxQsfLpwAiEdk;lg>T?_aZ9V(meX|KCRk10akRL#;esGYuq^TPoOaf3JeXt+?d+fnJ zsF2P+mn0OZwjtt+AzphH|RZ;0swCC_Sf786W7A5F!Zg8rz_o06zvS=TnP#tO8KNw%CK5`(UufD15 zKMvXz%G4DHQ=m4o;b48Nj;E-}hhN91K0dskn*q@_$1AVBjqU_>>oFH!Z4VxM7#m-0 zdh=r#sm?f_0Tq$O$45|-PZ-3|-s($l_s&HJgKL5^&sX0jLxOHMB316Mz#YK2rhvZ* zx3YuOE+?|}I_QoJX8?EHVmjj>8>E(>DD36H)f32W;7S5NhmjBov zCbAR#X}ZHujlUZV%of5=0|b*OA*r^;69 zm7R#q5<7)RQ`FDCPVZ_O$*nD0>MYxs3@LC{domfelVoFXLqQX+{0++7)~5QfQ@hp$Z9r!e z2iuNHfhDGax0}&%*r+}>Aq|F$`N@8l23P90E|!uGbH#0p)7Q|TI}+Iw>9AWYckD(t zY&V{om;pz{tu{0hors{Y@+_DDe)g#cD&bwV$Fxi~H5*=3f0$Nep;}2cyoE}LCG>^C zIA%xpg)1qh-q#NXjjom_ffMZpS4auh`5Tr)5-t^d_vuv@w)z(}*Za8f-AJHnY?M5r zs=zY|r*I=LB&DA>I?W+hfnF*&+|@yat3g>p)1ZuP=?`AExIYXgs|kC!KU_{0lJ$9z zGb@?Mmq9C$r$HORjj%U}zJi82Y+Kxx8Y2)q{s!E*`onF>L~M_f^bPS!0&Fp&x4+18DaZgB)$1H zAs@2(tsurGb7%=VMpt0h(sI-}4rwLc%8piol~^5Bu{Hl!6eTy)HBMDfG!mMp_L`j*wx0_e@27LB*(^=f|G0_56>tC zbhxvbWpDy(gr54eIOHToiZ*LF{GsC(SX5&xdu1$m%(9G%YWI(TGHSBynB^DORBJ7V zk+_#X&wGBRs@mlj!z9St*g@6TbW-&-x~ktq*x^fH68daeMimS+{ON%zR6V+LQPus0 zTFp3A8^!>+=Tc16-2|+8Jj95658pK&fV+EL@^G?^sMF;BWFLuKE7t=T{~j}-rxSfo zUft3)rnOT|kIf)Eh*}nlUQPANSP%Z&9_#LE+PRqYP;4RDNz^xD`%c(}MhmwaCb#$& zwki`_17Sbv${?zsoy79ec|~fqq6ATc>Bfc?D3W&J&?kF{w1=qWUHV~c#ZKCXHer8t zLznJp2T;#ho+a+y^o3i4iXwn_PwkSfM^YS*h<8|EpEs8$=Jec*g58fl9v%Bci@i@_*X}~BQmQWAe>yH}O~Baq#Mh#WB7iSbT75lO_M6fY!X5sy-LAt8-KlzIpWi6oa6q~1b8E`v}?5fXAK zM9C#2&k+(+ZB-v21#E$@9jPVCV8Tlbnd^xoE8WDdQrb$^&c?`hrl<t zeMB*ej(K?p(G2~T_YTd}Z+X|yEd6#m-V&T^GidbQYC@+q2*(*V^X#5HyN^ovduMe;0FYCP{vtWhpd@oJj#lO2xgPdwSD?rsl;>NW*=x zqE!3*7@VqQ6#=M*h3t+16hWR6{yO-Vj^U92TM@TvkFS6M=sD9)+z7J)TG@p+!ANLhZ8sS!jVo&5 z)&6x8)Ee|WSU&gnYqze#2sz(7WV$kOoQLK&2O4mR<%bu*+n@w|ZKiKQ`*tzW@9u&^k?zty-T3AAt&&`Qj2>Nt*Cb z1P1&tQh5wm`WCn!{d;WB7TCtGfj_{0Sj`Imh`TtM1^x)1A%w+Yett{@MHNSDs8Wxlq+po*!<6_~J3Z4QZ=%qkR`f_!CuTaKDl#+k8#-WP2lANX zT=JU)`Aw8nT~G77>sxKnxHueH_Gaj1MX@$Bb`U3yz9CCuA0LEncuwk@gU|zAbS(A| ze3|OT5zGf?n`uebw+4BTQg7fG-B@HpUWB`_$6k05rlDJdxsSk`c)9m;l5Wi8{8wNi zHv|_Sg-efcp>f%X~0Bm6s-^cmwW)*JYiuE-#`kO?j{-Gyv zqEdbCedx;HhRGSC=W|N@7;tT!JJ(HsXKa zX--TR5>G=HD`m)M=rb@=!e77|BU=hf{R)piiP$5asQL>2Vy481Ls>j1S)d}ZFh7)w6Id#eFc*k@fZ?xE+*#F>XaTzG${4{MqeQ0(7JUazp+|$OFY5&uKuc&(Z8-BJ^TPU z*w=G|&DSVRXSMD*|p*efIk#!Rf6Z#N7s{lC>5R)r2dIP6#c$aJ;{4! z`*+0}^36pUJ4*C?_Y_iczEs{tOVh}HUTx9l`r;X9KhJaA?Iy3;IXKJs0v;Uqcd+Ky-Qql@`SpKC5~2$V~)xFl_)SO79e= z^E7Z(fux<9JdhlLpUrW)0K=+Sp=$?|Y}l!798C71sMUEfyo~UgLK4OcDI(hj?ChWb z@gTst3UHTDfV(I^P?=hQaWC{Eq9YGuU%F|hpQMrYFlR9tjy}rlYe=syNtT95(b|g1 zc(m8_1ol`J5fKg-J6no__N>-rD7n~7j&mDJ_&)9P7V=ME)x$B5{-_IGwmH~z{EQ0s zZYH6bh{I4fZ5|wsr%jD)c!^&^QsDr*a31k!b4Cyh)`=4ESV(jU;*^A5z^$VQ#ykZ@ zN0J|35&9Oi{pBPP4LMF6BRJY;V|e3P;?S|A2u00*F>&+jO_yNE-zdYbW{P&CimWnm zhwGPr5Lg?ibsmNgTb`K&f+Ci$~nNv-c}@__MNQVe%SS{b|75fw9P5BTtuDu%?g?0OtI zW=Eteq#GvoSBPf5_S}Kg67<(A$Cz^-84L$B95r8=IkAwvj}r{cX;=BlwE+9r+gB6s zO!El9Fy0!tV+i{=A@d{vkobB*W zCA_L9ly!dMScey4gib`T(Y+u}uHyM#G{}y#837!`!m!6PXmkDZPH5W#+1tnLf(ZtU{>9bq8hP-DIw`cd9rNkRGySKKJ31(3^V0x|~ zBh6=elyG%jhw&A@6$zbW`<_K(XVvw5NC=%_PBlI|f9ZTLxryvN&-2W^ihO1ko3)yB zffIW3v&z-v8>6Z}ryg91!^Bi=z~hBHwu>`j-OYBB|Kzh8nk1$o=IU<8ZPqm6T4u*u zv_H?XBWqC?p4C2Di#}(AWoO-x?9AcDOsK_Iuf)i#dIQNjM_ZJyBY3!X9Q*h#f;$#{ zY4~-;XsC2BB=xHv)t26iK_Kyr>nGbmA2M&MFBhE# zqp7j_Xr~?^ev$4e60>P{Y%$bY;vcR4=*0}Rma>if#vDUE zO7z)gj?xdbeUFkm%{u(7&J!!;YugFh-Z~N9--hD*>*HiJKs-x%0?+=5)@JTq`l9^J z6KKgA(14w!7wTTVFeJyLBZaROx?W9XzMZ6uI$=4x?`B+&_v|F&jak>rC`cQyOJ6~S zfiQD7>58Q)yY0d^>?ZLU9W{%!)wf?VMEi0#`4}LVop=fdRX$t07mKLW`tBhY5h!JI z_u>aC7W(*J@+6*?Uw?okv1QMa)Pd)?CA?#r0|BL;+go_JmwPEZX3OgHzmMk_K!Nx; zU<7{rfaj>rX@5qaBgO2;{iHXW@EmcvX6eRKrClzDX}LaObq7caOWRM-^%3pf0Oz?J zk|0MYRCF?&Vpr@()9x5swx4A3mVahHNpa@j`IS1|RU(iOi)+zV?Lip|qq6(0tFWB;fnBma_WE`B)+s}EBq+aps7sYQo ztWiI7Have2hUX9bh51=dJb6;08+~=nb9F-mJx81wj})Oh2l%HdZym(B*SXH9gt|OW zDxi{$d!7tUJm++m6vu9Vo{YBwSMf4mhkGZ=A_9RYo~;uviN{EL)e2X^4{>BZH8Q7-!SW%Rcu%F=*T zIody)A$MBkGcYGE^BD%|#6!eAw3Z(gIJZp5Y4GFg`Do9UVOTY{h$>A)lCq5g79Aq} zNUkC5I7BioK7SKCGDfyY1;emi`)9SX!DK8U5iL^9J0W%C$7DINpB z@PtGwbO(5;QN?*Lk-op6ib=n&is{{>S4Rl5SMS7;+xKOX+%2lM?6sq0lIW31F@=h@NE$&{#!7kx#RM~VM9Lw--;PUdUC<5~II_HW6vxF%}j=F*w`dgOaF zf>3upGoL+Mj2NYoeJ@q2)EvZNPq%>4-jfP}fm` z$2iaRV@pXD{A)B!V6$WB7@Pu|V(1gxV|{rneFv*CC50wwmv*5yK<^wV8H0zKLj3S< zfoB}9I}TxB>qiOu;9ey=j=n4-pU>iHh@^GS?=oEYx}mc!ftCPili5p&Gz&@VZ~8Hj zx?<2tg)Xbq%zFN|&ZQ(7zI}Y)5(>3!LmIZ2IOUfZ?ZVej`LPevXjX0~IO;H<+cyV& z{r;v}HZYxDpdSHjWo79!on4!I?|^rDnX=k#CzHsP{pFVFaq8rv|MPPemuGn$S?kNt>pJn-q% zrk7J6j(nUNE_QS*O+?r8dt>R+7#u)#<0&dzZP|FbQ4n^ql8LkzLRAy#Z6u|W!!Ch; zhNVYbQdwXcjpJTl3_`Nor_nA(?I%>z&wlljV%yPzN6qoLpOfvLMjyp}w5u8c?ikC% z8*S(*agU;JR4`Z{VTZ6e4(g%zl_{&0iA+IS9yvFg!M$p%^Acqx)=t)Bx#)1>S zk3jEin0Dp+Hm)JrXH<1+v5TJ7QJPfqB!tbx%! zHt6Fv{-GP_1?_kc8zlF{<{*BMg6B0*B&LX`M^L1u zh{s1z#81^lW;{QFVvH%`!44E-O%YF!pxDI}@dycu4pYPf?xgM4**djc}SLK7$z42vvTFf6uYL9oP<1;J8F z76gY{vLJYYB@2SXESVF;gGFT)AQ%p}WYL5dn(|OVaD*ibf+H8h zXu|Q9EC^1pWI=GEB@2R+ELjkoY|6s~!D>q`#DjH6V2T9@hEpwBG~qN$76fZ7SrD9V z$%5czmMjQfZpngRttGb$hBHi{OfZ~j$)X9buw+4SmL&^vG}(Zl+H3>uf@_P72(AllKyVG(fS?+(0YNov1A=O+4G5}> zY(P+5EVY}>YOF9ztSm)>Ynu%Ss@K?npn9zh2&zkMKu}#~1A^*x7SLWKxVBqJk>I-A z1_aj?7GSJ3*V}-gdV>uJsyEtzpt{lq1l61D_ZADTzp=9juB&W7P+e^Ug6hpSAgJDA z0miCxs|^UMYfPZMutaeEt%($t2(Gu;fZ%$&4G5}hZ9q`H!v+LZ)dmFBJ8eKvZC__0 z#`?3~1_W1T1A^*ZHXx{OumM5!ZW|C(@38?v^RwT%WQ5(X4wcz*wiAwgEwP zuMG&Q&)9&Vy3YoXDz`tLwGqMfIU5jM_uGJ=dcXz*)q^%5s6KB3MaF{lf(;0&hd9u# z?|Zz0>x*_4!Sy8@5Y76s4G5}-Z9q^xVgrKeD>fjg9<_loVgI~pA;yaJnhgl9f3X2U z^>rH%RFBz!p!$Xl2&#Xz0YUXm1jPQUs8Db{Zf6l(|7HWCS>Lh%W5Igc1_ad;HXx|J zV*`Tf-)*2o*kAA3h~RqC1_amlY(P-`hYbj-@7sW&`hf))3)VkvKv4bAvOkLWA6dhp z_>rAOa6M%MqFFz-0YUYDY(P-`#0CV_(>5Teerf}T{r8!L7%SH2HXyiuVFQBdmo^}% zeq{rK>en_PsGhL_LG>HU{wOLDT>oWf5nRvOfN0ilEx=f?{%r$->UTCEsD5t)g6aMT}1=k<(?}RQ7lG7m#wFnY|J{^Key8S z1RXm7dAQAC&?u%VGbGsrVR{u#Wc5I0I0^Lp)QJ7W9uO{END5{iUh+cVn1(H_fKi zSeSM<4bkkFL^kLiI*($Sw*DSE2-;IIZ^}to_Ee3Tui&x#=BAlSuz4E)`zXOva&k<$ z4o_=Q>Mv7*Aq)^+O8Y_JZgod b7U<&TioXjUQa^(Lt5{EyW530_!`=QDJJYN% diff --git a/artifacts/Pov.scale b/artifacts/Pov.scale index 2060787e6209f0098e53d4a8ba40a11ade78e615..3835674b8083591351a2bd52551caa39067c2c26 100644 GIT binary patch delta 22880 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

c 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

9E(`bKqS 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 P_uj!$qth|tNc{f;F)sea delta 22202 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 diff --git a/artifacts/Proxy.scale b/artifacts/Proxy.scale index 80117df6aec6e8187389c35b9136398b931be401..b416b0fc303c3dba3e5c6020d9a9cb67b6db2ca3 100644 GIT binary patch delta 23068 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 AF#rGn diff --git a/artifacts/RandomnessCollectiveFlip.scale b/artifacts/RandomnessCollectiveFlip.scale index 3f3f336851a6cb518deaf77df32f7761435c8a9c..cd069396b2ee33fcbfabcf7fd8b71479ead63b70 100644 GIT binary patch delta 18618 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 diff --git a/artifacts/RankedCollective.scale b/artifacts/RankedCollective.scale index c1761df4aa6c4006c4b7423353a811d7d99f9a33..c97d29a4007448d68f1b83c6899e93d66a6cca72 100644 GIT binary patch delta 23301 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 Tdp1!>(^H$onm*fH~$!^%)2+?3f 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 H<7 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 NpIL}YiaXN%{{iWjd4>Q0 diff --git a/artifacts/RankedPolls.scale b/artifacts/RankedPolls.scale index 37978a6e031030944bd9786e9d2ab9dd6220b935..008198bb641a2508f689270c4d947715b97fa576 100644 GIT binary patch delta 24820 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 M->5W9I1>AR0EsdXWB>pF delta 23782 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 delta 22385 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

q^8@pTH1oh3^$tW{PO}o>WF09nF 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 diff --git a/artifacts/Referenda.scale b/artifacts/Referenda.scale index b9fbce21d79cfb66956143837c637dac8afb4397..a16164b2e26d5c115abb5fd2cad0f87eb20e400e 100644 GIT binary patch delta 23457 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
ZJ! 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 diff --git a/artifacts/Remark.scale b/artifacts/Remark.scale index 0f3383ac4f8fe65589617c908fa7b32d053fb368..f1ac3fba2d05a2809f67b9e64c50fc2f8472975d 100644 GIT binary patch delta 21461 zcmdUX4R{pQ)&HD36WBlk3E70*e2@(U46?u`B#=OWgd`Fm;VXdnfniA|WXmQSb~iv; zXh6ZD1qDaFp$%4i>svr6;z9?tC{a;SQ1PP`l?tuaV*Nr(tF7Ai+oz6tm+yJXiol19r8*r!3-^;)()1LCx$ z!*0;-wWrA*xSyk`$r-RlJ3IUa?e1h3tmo;;DVcDmw(H6pG%Y1hz8Ah0_Yck`JAr37 zGMDuuef7LdWO;{PC}3x?rIIU76$>k@J)*1D0r?xYiP%0A9#)kyddzYiPRCCL2$G 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 delta 20820 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 PJWX{N$9oYI4tM`Q2r42l diff --git a/artifacts/RootTesting.scale b/artifacts/RootTesting.scale index 94a40ff80f69f55addee19575d8b0e331fddf50c..44d6da7a8704195d14a4f2e7e91042ff4e5a467b 100644 GIT binary patch delta 22440 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 aswdU6pQ6%;*Q~5|wy-zEZ(zcSKK~73M9S;{ delta 21967 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 QNYf@N#z&sP)bVcr1&-qc?EnA( diff --git a/artifacts/Scheduler.scale b/artifacts/Scheduler.scale index 6e83e7f33c0a78c02bf5688b3a7658ae598746b2..e2a4956a0577696726e889a8e2d83591656f6cf4 100644 GIT binary patch delta 23098 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 diff --git a/artifacts/Session.scale b/artifacts/Session.scale index fd7a5e78893c65c08d3cc00cb6aa8fbde1f2cce5..3fa97fb1227f1a913052a5577c4495327b104e37 100644 GIT binary patch delta 22572 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 diff --git a/artifacts/Staking.scale b/artifacts/Staking.scale index 400011bcce2ba5d868e771c4b6ea575458bd70e1..ee2ea682643452f254fb4d5bd1f548523ed29f2f 100644 GIT binary patch delta 24241 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%0D59tX!T>V2`@X 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 a^dkPF^SYy;i_xH#9VMy2W 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 z zdf2K>^a1o~$VcBsq{eT?uQ8fb$7UKV?DADh8;knO{dBxVm29E-sY~|i7Mh5UlUwMm__*c){P2~NoqYiPdR#2} zK^>U;K}-_CS{|g6;B~g|LAs&GJiVGum*i&Kw$g!pT-Zk9TR~{3oUSavZ){X?B|WOT z(N^YN?DaIe>nGf{jph)=#!|1P1MowC=Y2g#ykEzzyp|@Vbs6H>&5hho4b}g}Hg?Ok zw2F9b?89qmKYZ#gmQFE)SypyrSb+fMsn>s+~=UV@L!+i4vtG<)r!9}}00eY=CM!OpzlA?m}&HxJQ8`0(z; zG_mZ+PU@pBta-)5^eXBqC+xn5>9xca!3K2D&6wBW4tgm*k{_YBQP)VD_V6Qgpe*=9 zS>i4li{ac|*hNnE)GoRSP3!X?r*9LdlZ|?UeoyDwO0^MBVlU~TnNQJTf}sd@^E32Q z;`FeV-Sj@e*x2O?xRrtQpTz?Dn%Vd*xX=hWseAi=Lw| zV>Ywc@#pAj40u@6KI$W`aqPrCI@ESro@QIlGM-1pYyR`p#>$?jwA6Jog_~=0mQ=c1rU-KjTC4(2_Wet=91RI&FVnr;b?m2C=n%Uz=5Dm8 z${(_|uhK+T^(ua&(#dXkm2yYP-yEVpVfx=3#$nyPpRGqF&ULnN6^(0)uoc)wkF8T` z7S3o=Y7CoL6c(xTX0{ldSer9n=Uj?6UIN|#*xE%3ao)!dWF*+ybM+MXCF&X_4YSSD jN%7^^45X{Z*72{~mUEFiv!%-2inrFg2XipyV9);nWov?V diff --git a/artifacts/StateTrieMigration.scale b/artifacts/StateTrieMigration.scale index 72d7e6cb0a4a3e4e7dcd8dd76d2b968773f567ca..4bb16853956d89aa1c6aebda74c42fc7ac4d149c 100644 GIT binary patch delta 21791 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 F{{uwPavlHx delta 22086 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 F`@b$X{CWTY diff --git a/artifacts/Sudo.scale b/artifacts/Sudo.scale index 5618c7715f97dd66096b49e9c56d36870fc19f47..745e2e9d84fc23bff2fe947e027b196a5f8d5d7e 100644 GIT binary patch delta 22262 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 delta 22329 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 delta 32753 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 diff --git a/artifacts/TechnicalCommittee.scale b/artifacts/TechnicalCommittee.scale index ae650844661e71689611c15efa408e9b3e90cc84..1cff0e54988f2f657560ec377183b508099efb98 100644 GIT binary patch delta 22637 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 delta 23095 zcmdUXdw3K@)_0$(PME*|flQLljU+HYfB;EIxCSKLBnTl~1s4oMrXeFqW|)}>Q8b|9 z0tOXZEJ0D&6%`eQjo9LXf{H6DtL%ykE3BZRqIkn)S60#YR98>;B!OMueZKFH_i?1_ zoH||otJ|qlr%vUS108<*T8Hj6YS_~uKSq)yB1yR9h6hkGaBvBW#9a6kQ+p;uO zi(QqM>;h-qfC7m~5@y9Jl7gZ!Qo6SAiGGl!u_tonTmaCvJei=q|HN21&nEh4l}{$g zh0%;XPde#f=%g*)SE99l%7FzWKh;llgEM}r-yg1U10%!UpwPwB=3^^nPaz%PH{}O&)+xt{XMvHG}Rg_nGYQz2-{{6iFN97d$@^bS2 z9iG9CNPEQ3^!s>INyTjEV^9Vo+2(_gtT`WQpF9TJWjqv?dez#nFI+#)r&fCMbZL${#XxC?6G`a9vQ9q@`MiHJLq@nY}!)5PNwU!X0V! z@^T!_w@J5g0Pa=NDy`vM&vtJ7xGU@rd#W3?o##^FZtc*y?rDu!l{V7dD1WbXuOZ(k z-H+6R(u3ND(jLh&q|a0A?;V&vz36E0nTc*RFX5x7RrlD9>O zzv`KCDK)AwSG(rD7p<*kvN=Uz;M{l?q*FZF=#TJ63HO@FD6+*dZ+Y}CF!kdN#;aHJjc%Qzd0x(zXUkY1@7E7s?gMkRk*`%~HLvuN7e`+B$16RdPV4gO zN*RaJF2w59+8xN0H_33=cx}yr-tz8984te}tEIly9rj{5YvlbAcJDv*ln=;oz<6Qj zA2Jcx;Xef6DQ#Y39?06d#+fi)JJWbIrc2iT2LJtd?E|nwTXAOzNZPA+j_f3Z^D4Do zg7i?`{6%VgNNGyEs~ww(AYJ?Zoh~3UwV{VK*wgg(;bA1g>G!S!_B9QDcL=oE zgCBcb+Na%kq<7a>akdOBlprS%^!pc7gnT!sCQEu1wa|F!b?vPq=w>Tc)x$qJC0H>d?v+1mVdzlwbrW!KLcb*5Fe`chrfaNY50&J zZ-FluLPe!|P~shJ+53v~9Z<#_q$It=w%ku$TIHJL2E~~0@UG;7+<+&D%2jAL$m5D& z=+Mb^;XoZ0sMOZ+^~MECnUTQyguibFwDpO@Foul7|+(phUYPdD?FNLGuL{2Rx3W8F8ARq!4Qi4HRsH)EVg zf7jl4KPN+hylHAEUXjTNPEyqzDtSq@sBG_x1M?#FlXFHw?=ZhiX14OK6GfrdJ#aC1wmE4LG1)h z^67K@t$%*9(Rk~Lu?6$odC|h4fC~q23rh*DG^5Tkj>%@?SOw=)&l2n$dtoDzyTt1a zVp9z$z~5(Fe;KAr?iR3eh3?lWRx|SwKrRalbU+} z=lnw`*gj{Gss<{sqps&o65gHV{Bfe`55bo46*

OuZ?f^xbk8@`$ZB`4 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 diff --git a/artifacts/TechnicalMembership.scale b/artifacts/TechnicalMembership.scale index b8872493b4da22dae68e9a4f8dbaeb98255d5659..c57c6f51b9cda1311fc4db7d911c4d0702ea83e5 100644 GIT binary patch delta 22535 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 diff --git a/artifacts/Timestamp.scale b/artifacts/Timestamp.scale index bfeabdca327451617c07855aba18e428af7fa769..7e0c17641ba9038cd6bab8d6efe96b94296ff2dc 100644 GIT binary patch delta 22395 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 diff --git a/artifacts/Tips.scale b/artifacts/Tips.scale index 9e1692cdb50327a69c4043e744b55987dce3042c..1e97db25fad144be002d4286e4889555a93f2716 100644 GIT binary patch delta 22600 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�xxz^L<_6DoeYkQO1%>Ms23e7$iTT!AMoEG`|Rq% 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 delta 22020 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 GCH)T$>@M{H diff --git a/artifacts/TransactionPayment.scale b/artifacts/TransactionPayment.scale index 19c7519b2d923141474c50d41bf4bd11f121e887..df19f1d7f30bedfc8d42ce16c659b4b5e60b8600 100644 GIT binary patch delta 22669 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 P8td>6iyX$3d%ONWv4y8# delta 21880 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 diff --git a/artifacts/TransactionStorage.scale b/artifacts/TransactionStorage.scale index 6dd26bde160f740b426b9ddbfa9a83a19b83d655..f49a98321e584dc60bdf8ed2cda55fce3665ce35 100644 GIT binary patch delta 22785 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 diff --git a/artifacts/Treasury.scale b/artifacts/Treasury.scale index 7d86b9d43779f6a784d07bfbb5ef348842966910..bb954141cd477816f49db941b6b6a7ee2df7b184 100644 GIT binary patch delta 14046 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 S>S%CwwqZQ?2qNAd^#1_V05H-3 delta 13459 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

>lu8Uwy+ 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 delta 22222 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 Y%ajK3a=vm=xu=DH@%IDf+~4K@0D0sI(*OVf diff --git a/artifacts/Vesting.scale b/artifacts/Vesting.scale index 1fdd22151983316f2219cfa14ae388bff1acd904..824550184da0f08ae4cd6acc5c5f7e888ce9a3f1 100644 GIT binary patch delta 19600 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 F{{Y0b!D;{i diff --git a/artifacts/VoterList.scale b/artifacts/VoterList.scale index 8e5487d77737646604474b68f903ec46410b90dc..ff0b3cf25f03acf0dac2ce037d5155af447625e3 100644 GIT binary patch delta 22842 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 JOnIR5{{izD=?ee= delta 22091 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 qg&Yy_vEHcGX?i_n9;2k`_?+clqOeKZNEy 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 delta 20835 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, + #[codec(compact)] + pub value: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct SetBalance { + pub who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + pub new_free: ::core::primitive::u128, + #[codec(compact)] + pub new_reserved: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ForceTransfer { + pub source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + pub dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + pub value: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct TransferKeepAlive { + pub dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + pub value: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct TransferAll { + pub dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + pub keep_alive: ::core::primitive::bool, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ForceUnreserve { + pub who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + pub amount: ::core::primitive::u128, + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Dependent on arguments but not critical, given proper implementations for input config"] + #[doc = " types. See related functions below."] + #[doc = "- It contains a limited number of reads and writes internally and no complex"] + #[doc = " computation."] + #[doc = ""] + #[doc = "Related functions:"] + #[doc = ""] + #[doc = " - `ensure_can_withdraw` is always called internally but has a bounded complexity."] + #[doc = " - Transferring balances to accounts that did not exist before will cause"] + #[doc = " `T::OnNewAccount::on_new_account` to be called."] + #[doc = " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`."] + #[doc = " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check"] + #[doc = " that the transfer will not kill the origin account."] + pub fn transfer( + &self, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + value: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "transfer", + Transfer { dest, value }, + [ + 255u8, 181u8, 144u8, 248u8, 64u8, 167u8, 5u8, 134u8, 208u8, + 20u8, 223u8, 103u8, 235u8, 35u8, 66u8, 184u8, 27u8, 94u8, + 176u8, 60u8, 233u8, 236u8, 145u8, 218u8, 44u8, 138u8, 240u8, + 224u8, 16u8, 193u8, 220u8, 95u8, + ], + ) + } + #[doc = "Set the balances of a given account."] + #[doc = ""] + #[doc = "This will alter `FreeBalance` and `ReservedBalance` in storage. it will"] + #[doc = "also alter the total issuance of the system (`TotalIssuance`) appropriately."] + #[doc = "If the new free or reserved balance is below the existential deposit,"] + #[doc = "it will reset the account nonce (`frame_system::AccountNonce`)."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] + pub fn set_balance( + &self, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + new_free: ::core::primitive::u128, + new_reserved: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "set_balance", + SetBalance { + who, + new_free, + new_reserved, + }, + [ + 174u8, 34u8, 80u8, 252u8, 193u8, 51u8, 228u8, 236u8, 234u8, + 16u8, 173u8, 214u8, 122u8, 21u8, 254u8, 7u8, 49u8, 176u8, + 18u8, 128u8, 122u8, 68u8, 72u8, 181u8, 119u8, 90u8, 167u8, + 46u8, 203u8, 220u8, 109u8, 110u8, + ], + ) + } + #[doc = "Exactly as `transfer`, except the origin must be root and the source account may be"] + #[doc = "specified."] + #[doc = "## Complexity"] + #[doc = "- Same as transfer, but additional read and write because the source account is not"] + #[doc = " assumed to be in the overlay."] + pub fn force_transfer( + &self, + source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + value: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "force_transfer", + ForceTransfer { + source, + dest, + value, + }, + [ + 56u8, 80u8, 186u8, 45u8, 134u8, 147u8, 200u8, 19u8, 53u8, + 221u8, 213u8, 32u8, 13u8, 51u8, 130u8, 42u8, 244u8, 85u8, + 50u8, 246u8, 189u8, 51u8, 93u8, 1u8, 108u8, 142u8, 112u8, + 245u8, 104u8, 255u8, 15u8, 62u8, + ], + ) + } + #[doc = "Same as the [`transfer`] call, but with a check that the transfer will not kill the"] + #[doc = "origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer`] instead."] + #[doc = ""] + #[doc = "[`transfer`]: struct.Pallet.html#method.transfer"] + pub fn transfer_keep_alive( + &self, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + value: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "transfer_keep_alive", + TransferKeepAlive { dest, value }, + [ + 202u8, 239u8, 204u8, 0u8, 52u8, 57u8, 158u8, 8u8, 252u8, + 178u8, 91u8, 197u8, 238u8, 186u8, 205u8, 56u8, 217u8, 250u8, + 21u8, 44u8, 239u8, 66u8, 79u8, 99u8, 25u8, 106u8, 70u8, + 226u8, 50u8, 255u8, 176u8, 71u8, + ], + ) + } + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true). ## Complexity"] + #[doc = "- O(1). Just like transfer, but reading the user's transferable balance first."] + pub fn transfer_all( + &self, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + keep_alive: ::core::primitive::bool, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "transfer_all", + TransferAll { dest, keep_alive }, + [ + 118u8, 215u8, 198u8, 243u8, 4u8, 173u8, 108u8, 224u8, 113u8, + 203u8, 149u8, 23u8, 130u8, 176u8, 53u8, 205u8, 112u8, 147u8, + 88u8, 167u8, 197u8, 32u8, 104u8, 117u8, 201u8, 168u8, 144u8, + 230u8, 120u8, 29u8, 122u8, 159u8, + ], + ) + } + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] + pub fn force_unreserve( + &self, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + amount: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "force_unreserve", + ForceUnreserve { who, amount }, + [ + 39u8, 229u8, 111u8, 44u8, 147u8, 80u8, 7u8, 26u8, 185u8, + 121u8, 149u8, 25u8, 151u8, 37u8, 124u8, 46u8, 108u8, 136u8, + 167u8, 145u8, 103u8, 65u8, 33u8, 168u8, 36u8, 214u8, 126u8, + 237u8, 180u8, 61u8, 108u8, 110u8, + ], + ) + } + } + } + #[doc = "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t"] + pub type Event = runtime_types::pallet_balances::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "An account was created with some free balance."] + pub struct Endowed { + pub account: ::subxt::utils::AccountId32, + pub free_balance: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Endowed { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Endowed"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "An account was removed whose balance was non-zero but below ExistentialDeposit,"] + #[doc = "resulting in an outright loss."] + pub struct DustLost { + pub account: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for DustLost { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "DustLost"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Transfer succeeded."] + pub struct Transfer { + pub from: ::subxt::utils::AccountId32, + pub to: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Transfer { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Transfer"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "A balance was set by root."] + pub struct BalanceSet { + pub who: ::subxt::utils::AccountId32, + pub free: ::core::primitive::u128, + pub reserved: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for BalanceSet { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "BalanceSet"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some balance was reserved (moved from free to reserved)."] + pub struct Reserved { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Reserved { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Reserved"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some balance was unreserved (moved from reserved to free)."] + pub struct Unreserved { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Unreserved { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Unreserved"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some balance was moved from the reserve of the first account to the second account."] + #[doc = "Final argument indicates the destination balance type."] + pub struct ReserveRepatriated { + pub from: ::subxt::utils::AccountId32, + pub to: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + pub destination_status: + runtime_types::frame_support::traits::tokens::misc::BalanceStatus, + } + impl ::subxt::events::StaticEvent for ReserveRepatriated { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "ReserveRepatriated"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some amount was deposited (e.g. for transaction fees)."] + pub struct Deposit { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Deposit { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Deposit"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some amount was withdrawn from the account (e.g. for transaction fees)."] + pub struct Withdraw { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Withdraw { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Withdraw"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some amount was removed from the account (e.g. for misbehavior)."] + pub struct Slashed { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Slashed { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Slashed"; + } + } + pub mod storage { + use super::runtime_types; + pub struct StorageApi; + impl StorageApi { + #[doc = " The total units issued in the system."] + pub fn total_issuance( + &self, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u128>, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + (), + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "TotalIssuance", + vec![], + [ + 1u8, 206u8, 252u8, 237u8, 6u8, 30u8, 20u8, 232u8, 164u8, + 115u8, 51u8, 156u8, 156u8, 206u8, 241u8, 187u8, 44u8, 84u8, + 25u8, 164u8, 235u8, 20u8, 86u8, 242u8, 124u8, 23u8, 28u8, + 140u8, 26u8, 73u8, 231u8, 51u8, + ], + ) + } + #[doc = " The total units of outstanding deactivated balance in the system."] + pub fn inactive_issuance( + &self, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u128>, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + (), + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "InactiveIssuance", + vec![], + [ + 74u8, 203u8, 111u8, 142u8, 225u8, 104u8, 173u8, 51u8, 226u8, + 12u8, 85u8, 135u8, 41u8, 206u8, 177u8, 238u8, 94u8, 246u8, + 184u8, 250u8, 140u8, 213u8, 91u8, 118u8, 163u8, 111u8, 211u8, + 46u8, 204u8, 160u8, 154u8, 21u8, + ], + ) + } + #[doc = " The Balances pallet example of storing the balance of an account."] + #[doc = ""] + #[doc = " # Example"] + #[doc = ""] + #[doc = " ```nocompile"] + #[doc = " impl pallet_balances::Config for Runtime {"] + #[doc = " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>"] + #[doc = " }"] + #[doc = " ```"] + #[doc = ""] + #[doc = " You can also store the balance of an account in the `System` pallet."] + #[doc = ""] + #[doc = " # Example"] + #[doc = ""] + #[doc = " ```nocompile"] + #[doc = " impl pallet_balances::Config for Runtime {"] + #[doc = " type AccountStore = System"] + #[doc = " }"] + #[doc = " ```"] + #[doc = ""] + #[doc = " But this comes with tradeoffs, storing account balances in the system pallet stores"] + #[doc = " `frame_system` data alongside the account data contrary to storing account balances in the"] + #[doc = " `Balances` pallet, which uses a `StorageMap` to store balances data only."] + #[doc = " NOTE: This is only used in the case that this pallet is used to store balances."] + pub fn account( + &self, + _0: impl ::std::borrow::Borrow<::subxt::utils::AccountId32>, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType< + runtime_types::pallet_balances::AccountData< + ::core::primitive::u128, + >, + >, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Account", + vec![::subxt::storage::address::StorageMapKey::new( + _0.borrow(), + ::subxt::storage::address::StorageHasher::Blake2_128Concat, + )], + [ + 246u8, 154u8, 253u8, 71u8, 192u8, 192u8, 192u8, 236u8, 128u8, + 80u8, 40u8, 252u8, 201u8, 43u8, 3u8, 131u8, 19u8, 49u8, + 141u8, 240u8, 172u8, 217u8, 215u8, 109u8, 87u8, 135u8, 248u8, + 57u8, 98u8, 185u8, 22u8, 4u8, + ], + ) + } + #[doc = " The Balances pallet example of storing the balance of an account."] + #[doc = ""] + #[doc = " # Example"] + #[doc = ""] + #[doc = " ```nocompile"] + #[doc = " impl pallet_balances::Config for Runtime {"] + #[doc = " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>"] + #[doc = " }"] + #[doc = " ```"] + #[doc = ""] + #[doc = " You can also store the balance of an account in the `System` pallet."] + #[doc = ""] + #[doc = " # Example"] + #[doc = ""] + #[doc = " ```nocompile"] + #[doc = " impl pallet_balances::Config for Runtime {"] + #[doc = " type AccountStore = System"] + #[doc = " }"] + #[doc = " ```"] + #[doc = ""] + #[doc = " But this comes with tradeoffs, storing account balances in the system pallet stores"] + #[doc = " `frame_system` data alongside the account data contrary to storing account balances in the"] + #[doc = " `Balances` pallet, which uses a `StorageMap` to store balances data only."] + #[doc = " NOTE: This is only used in the case that this pallet is used to store balances."] + pub fn account_root( + &self, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType< + runtime_types::pallet_balances::AccountData< + ::core::primitive::u128, + >, + >, + (), + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Account", + Vec::new(), + [ + 246u8, 154u8, 253u8, 71u8, 192u8, 192u8, 192u8, 236u8, 128u8, + 80u8, 40u8, 252u8, 201u8, 43u8, 3u8, 131u8, 19u8, 49u8, + 141u8, 240u8, 172u8, 217u8, 215u8, 109u8, 87u8, 135u8, 248u8, + 57u8, 98u8, 185u8, 22u8, 4u8, + ], + ) + } + #[doc = " Any liquidity locks on some account balances."] + #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] pub fn locks (& self , _0 : impl :: std :: borrow :: Borrow < :: subxt :: utils :: AccountId32 > ,) -> :: subxt :: storage :: address :: StaticStorageAddress :: < :: subxt :: metadata :: DecodeStaticType < runtime_types :: bounded_collections :: weak_bounded_vec :: WeakBoundedVec < runtime_types :: pallet_balances :: BalanceLock < :: core :: primitive :: u128 > > > , :: subxt :: storage :: address :: Yes , :: subxt :: storage :: address :: Yes , :: subxt :: storage :: address :: Yes >{ + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Locks", + vec![::subxt::storage::address::StorageMapKey::new( + _0.borrow(), + ::subxt::storage::address::StorageHasher::Blake2_128Concat, + )], + [ + 216u8, 253u8, 87u8, 73u8, 24u8, 218u8, 35u8, 0u8, 244u8, + 134u8, 195u8, 58u8, 255u8, 64u8, 153u8, 212u8, 210u8, 232u8, + 4u8, 122u8, 90u8, 212u8, 136u8, 14u8, 127u8, 232u8, 8u8, + 192u8, 40u8, 233u8, 18u8, 250u8, + ], + ) + } + #[doc = " Any liquidity locks on some account balances."] + #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] pub fn locks_root (& self ,) -> :: subxt :: storage :: address :: StaticStorageAddress :: < :: subxt :: metadata :: DecodeStaticType < runtime_types :: bounded_collections :: weak_bounded_vec :: WeakBoundedVec < runtime_types :: pallet_balances :: BalanceLock < :: core :: primitive :: u128 > > > , () , :: subxt :: storage :: address :: Yes , :: subxt :: storage :: address :: Yes >{ + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Locks", + Vec::new(), + [ + 216u8, 253u8, 87u8, 73u8, 24u8, 218u8, 35u8, 0u8, 244u8, + 134u8, 195u8, 58u8, 255u8, 64u8, 153u8, 212u8, 210u8, 232u8, + 4u8, 122u8, 90u8, 212u8, 136u8, 14u8, 127u8, 232u8, 8u8, + 192u8, 40u8, 233u8, 18u8, 250u8, + ], + ) + } + #[doc = " Named reserves on some account balances."] + pub fn reserves( + &self, + _0: impl ::std::borrow::Borrow<::subxt::utils::AccountId32>, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::pallet_balances::ReserveData< + [::core::primitive::u8; 8usize], + ::core::primitive::u128, + >, + >, + >, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Reserves", + vec![::subxt::storage::address::StorageMapKey::new( + _0.borrow(), + ::subxt::storage::address::StorageHasher::Blake2_128Concat, + )], + [ + 17u8, 32u8, 191u8, 46u8, 76u8, 220u8, 101u8, 100u8, 42u8, + 250u8, 128u8, 167u8, 117u8, 44u8, 85u8, 96u8, 105u8, 216u8, + 16u8, 147u8, 74u8, 55u8, 183u8, 94u8, 160u8, 177u8, 26u8, + 187u8, 71u8, 197u8, 187u8, 163u8, + ], + ) + } + #[doc = " Named reserves on some account balances."] + pub fn reserves_root( + &self, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::pallet_balances::ReserveData< + [::core::primitive::u8; 8usize], + ::core::primitive::u128, + >, + >, + >, + (), + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Reserves", + Vec::new(), + [ + 17u8, 32u8, 191u8, 46u8, 76u8, 220u8, 101u8, 100u8, 42u8, + 250u8, 128u8, 167u8, 117u8, 44u8, 85u8, 96u8, 105u8, 216u8, + 16u8, 147u8, 74u8, 55u8, 183u8, 94u8, 160u8, 177u8, 26u8, + 187u8, 71u8, 197u8, 187u8, 163u8, + ], + ) + } + } + } + pub mod constants { + use super::runtime_types; + pub struct ConstantsApi; + impl ConstantsApi { + #[doc = " The minimum amount required to keep an account open."] + pub fn existential_deposit( + &self, + ) -> ::subxt::constants::StaticConstantAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u128>, + > { + ::subxt::constants::StaticConstantAddress::new( + "Balances", + "ExistentialDeposit", + [ + 84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, + 200u8, 214u8, 27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, + 101u8, 54u8, 210u8, 136u8, 71u8, 63u8, 49u8, 237u8, 234u8, + 15u8, 178u8, 98u8, 148u8, 156u8, + ], + ) + } + #[doc = " The maximum number of locks that should exist on an account."] + #[doc = " Not strictly enforced, but used for weight estimation."] + pub fn max_locks( + &self, + ) -> ::subxt::constants::StaticConstantAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u32>, + > { + ::subxt::constants::StaticConstantAddress::new( + "Balances", + "MaxLocks", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, + 157u8, 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, + 98u8, 68u8, 9u8, 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, + 90u8, 203u8, 100u8, 41u8, 145u8, + ], + ) + } + #[doc = " The maximum number of named reserves that can exist on an account."] + pub fn max_reserves( + &self, + ) -> ::subxt::constants::StaticConstantAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u32>, + > { + ::subxt::constants::StaticConstantAddress::new( + "Balances", + "MaxReserves", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, + 157u8, 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, + 98u8, 68u8, 9u8, 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, + 90u8, 203u8, 100u8, 41u8, 145u8, + ], + ) + } + } + } + } + pub mod runtime_types { + use super::runtime_types; + pub mod bounded_collections { + use super::runtime_types; + pub mod bounded_vec { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BoundedVec<_0>(pub ::std::vec::Vec<_0>); + } + pub mod weak_bounded_vec { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct WeakBoundedVec<_0>(pub ::std::vec::Vec<_0>); + } + } + pub mod finality_grandpa { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Equivocation<_0, _1, _2> { + pub round_number: ::core::primitive::u64, + pub identity: _0, + pub first: (_1, _2), + pub second: (_1, _2), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Precommit<_0, _1> { + pub target_hash: _0, + pub target_number: _1, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Prevote<_0, _1> { + pub target_hash: _0, + pub target_number: _1, + } + } + pub mod frame_benchmarking_pallet_pov { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + emit_event, + #[codec(index = 1)] + noop, + } + } + } + pub mod frame_support { + use super::runtime_types; + pub mod dispatch { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum RawOrigin<_0> { + #[codec(index = 0)] + Root, + #[codec(index = 1)] + Signed(_0), + #[codec(index = 2)] + None, + } + } + pub mod traits { + use super::runtime_types; + pub mod preimages { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Bounded<_0> { + #[codec(index = 0)] + Legacy { + hash: ::subxt::utils::H256, + }, + #[codec(index = 1)] + Inline( + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ), + #[codec(index = 2)] + Lookup { + hash: ::subxt::utils::H256, + len: ::core::primitive::u32, + }, + __Ignore(::core::marker::PhantomData<_0>), + } + } + pub mod schedule { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum DispatchTime<_0> { + #[codec(index = 0)] + At(_0), + #[codec(index = 1)] + After(_0), + } + } + pub mod tokens { + use super::runtime_types; + pub mod misc { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum AttributeNamespace<_0> { + #[codec(index = 0)] + Pallet, + #[codec(index = 1)] + CollectionOwner, + #[codec(index = 2)] + ItemOwner, + #[codec(index = 3)] + Account(_0), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum BalanceStatus { + #[codec(index = 0)] + Free, + #[codec(index = 1)] + Reserved, + } + } + } + } + } + pub mod frame_system { + use super::runtime_types; + pub mod extensions { + use super::runtime_types; + pub mod check_genesis { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckGenesis; + } + pub mod check_mortality { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckMortality( + pub runtime_types::sp_runtime::generic::era::Era, + ); + } + pub mod check_non_zero_sender { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckNonZeroSender; + } + pub mod check_nonce { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckNonce(#[codec(compact)] pub ::core::primitive::u32); + } + pub mod check_spec_version { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckSpecVersion; + } + pub mod check_tx_version { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckTxVersion; + } + pub mod check_weight { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckWeight; + } + } + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Make some on-chain remark."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`"] + remark { + remark: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Set the number of pages in the WebAssembly environment's heap."] + set_heap_pages { pages: ::core::primitive::u64 }, + #[codec(index = 2)] + #[doc = "Set the new runtime code."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`"] + set_code { + code: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 3)] + #[doc = "Set the new runtime code without doing any checks of the given `code`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(C)` where `C` length of `code`"] + set_code_without_checks { + code: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 4)] + #[doc = "Set some items of storage."] + set_storage { + items: ::std::vec::Vec<( + ::std::vec::Vec<::core::primitive::u8>, + ::std::vec::Vec<::core::primitive::u8>, + )>, + }, + #[codec(index = 5)] + #[doc = "Kill some items from storage."] + kill_storage { + keys: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + }, + #[codec(index = 6)] + #[doc = "Kill all storage items with a key that starts with the given prefix."] + #[doc = ""] + #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"] + #[doc = "the prefix we are removing to accurately calculate the weight of this function."] + kill_prefix { + prefix: ::std::vec::Vec<::core::primitive::u8>, + subkeys: ::core::primitive::u32, + }, + #[codec(index = 7)] + #[doc = "Make some on-chain remark and emit event."] + remark_with_event { + remark: ::std::vec::Vec<::core::primitive::u8>, + }, + } + } + } + pub mod kitchensink_runtime { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct NposSolution16 { + pub votes1: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes2: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + ( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ), + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes3: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 2usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes4: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 3usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes5: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 4usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes6: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 5usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes7: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 6usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes8: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 7usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes9: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 8usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes10: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 9usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes11: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 10usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes12: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 11usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes13: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 12usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes14: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 13usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes15: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 14usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes16: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 15usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum OriginCaller { + #[codec(index = 0)] + system( + runtime_types::frame_support::dispatch::RawOrigin< + ::subxt::utils::AccountId32, + >, + ), + #[codec(index = 13)] + Council( + runtime_types::pallet_collective::RawOrigin< + ::subxt::utils::AccountId32, + >, + ), + #[codec(index = 14)] + TechnicalCommittee( + runtime_types::pallet_collective::RawOrigin< + ::subxt::utils::AccountId32, + >, + ), + #[codec(index = 52)] + AllianceMotion( + runtime_types::pallet_collective::RawOrigin< + ::subxt::utils::AccountId32, + >, + ), + #[codec(index = 4)] + Void(runtime_types::sp_core::Void), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ProxyType { + #[codec(index = 0)] + Any, + #[codec(index = 1)] + NonTransfer, + #[codec(index = 2)] + Governance, + #[codec(index = 3)] + Staking, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Runtime; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum RuntimeCall { + #[codec(index = 0)] + System(runtime_types::frame_system::pallet::Call), + #[codec(index = 1)] + Utility(runtime_types::pallet_utility::pallet::Call), + #[codec(index = 2)] + Babe(runtime_types::pallet_babe::pallet::Call), + #[codec(index = 3)] + Timestamp(runtime_types::pallet_timestamp::pallet::Call), + #[codec(index = 5)] + Indices(runtime_types::pallet_indices::pallet::Call), + #[codec(index = 6)] + Balances(runtime_types::pallet_balances::pallet::Call), + #[codec(index = 9)] + ElectionProviderMultiPhase( + runtime_types::pallet_election_provider_multi_phase::pallet::Call, + ), + #[codec(index = 10)] + Staking(runtime_types::pallet_staking::pallet::pallet::Call), + #[codec(index = 11)] + Session(runtime_types::pallet_session::pallet::Call), + #[codec(index = 12)] + Democracy(runtime_types::pallet_democracy::pallet::Call), + #[codec(index = 13)] + Council(runtime_types::pallet_collective::pallet::Call), + #[codec(index = 14)] + TechnicalCommittee(runtime_types::pallet_collective::pallet::Call), + #[codec(index = 15)] + Elections(runtime_types::pallet_elections_phragmen::pallet::Call), + #[codec(index = 16)] + TechnicalMembership(runtime_types::pallet_membership::pallet::Call), + #[codec(index = 17)] + Grandpa(runtime_types::pallet_grandpa::pallet::Call), + #[codec(index = 18)] + Treasury(runtime_types::pallet_treasury::pallet::Call), + #[codec(index = 19)] + Contracts(runtime_types::pallet_contracts::pallet::Call), + #[codec(index = 20)] + Sudo(runtime_types::pallet_sudo::pallet::Call), + #[codec(index = 21)] + ImOnline(runtime_types::pallet_im_online::pallet::Call), + #[codec(index = 26)] + Identity(runtime_types::pallet_identity::pallet::Call), + #[codec(index = 27)] + Society(runtime_types::pallet_society::pallet::Call), + #[codec(index = 28)] + Recovery(runtime_types::pallet_recovery::pallet::Call), + #[codec(index = 29)] + Vesting(runtime_types::pallet_vesting::pallet::Call), + #[codec(index = 30)] + Scheduler(runtime_types::pallet_scheduler::pallet::Call), + #[codec(index = 31)] + Glutton(runtime_types::pallet_glutton::pallet::Call), + #[codec(index = 32)] + Preimage(runtime_types::pallet_preimage::pallet::Call), + #[codec(index = 33)] + Proxy(runtime_types::pallet_proxy::pallet::Call), + #[codec(index = 34)] + Multisig(runtime_types::pallet_multisig::pallet::Call), + #[codec(index = 35)] + Bounties(runtime_types::pallet_bounties::pallet::Call), + #[codec(index = 36)] + Tips(runtime_types::pallet_tips::pallet::Call), + #[codec(index = 37)] + Assets(runtime_types::pallet_assets::pallet::Call), + #[codec(index = 39)] + Lottery(runtime_types::pallet_lottery::pallet::Call), + #[codec(index = 40)] + Nis(runtime_types::pallet_nis::pallet::Call), + #[codec(index = 41)] + Uniques(runtime_types::pallet_uniques::pallet::Call), + #[codec(index = 42)] + Nfts(runtime_types::pallet_nfts::pallet::Call), + #[codec(index = 43)] + TransactionStorage( + runtime_types::pallet_transaction_storage::pallet::Call, + ), + #[codec(index = 44)] + VoterList(runtime_types::pallet_bags_list::pallet::Call), + #[codec(index = 45)] + StateTrieMigration( + runtime_types::pallet_state_trie_migration::pallet::Call, + ), + #[codec(index = 46)] + ChildBounties(runtime_types::pallet_child_bounties::pallet::Call), + #[codec(index = 47)] + Referenda(runtime_types::pallet_referenda::pallet::Call), + #[codec(index = 48)] + Remark(runtime_types::pallet_remark::pallet::Call), + #[codec(index = 49)] + RootTesting(runtime_types::pallet_root_testing::pallet::Call), + #[codec(index = 50)] + ConvictionVoting(runtime_types::pallet_conviction_voting::pallet::Call), + #[codec(index = 51)] + Whitelist(runtime_types::pallet_whitelist::pallet::Call), + #[codec(index = 52)] + AllianceMotion(runtime_types::pallet_collective::pallet::Call), + #[codec(index = 53)] + Alliance(runtime_types::pallet_alliance::pallet::Call), + #[codec(index = 54)] + NominationPools(runtime_types::pallet_nomination_pools::pallet::Call), + #[codec(index = 55)] + RankedPolls(runtime_types::pallet_referenda::pallet::Call), + #[codec(index = 56)] + RankedCollective(runtime_types::pallet_ranked_collective::pallet::Call), + #[codec(index = 57)] + FastUnstake(runtime_types::pallet_fast_unstake::pallet::Call), + #[codec(index = 58)] + MessageQueue(runtime_types::pallet_message_queue::pallet::Call), + #[codec(index = 59)] + Pov(runtime_types::frame_benchmarking_pallet_pov::pallet::Call), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct SessionKeys { + pub grandpa: runtime_types::sp_consensus_grandpa::app::Public, + pub babe: runtime_types::sp_consensus_babe::app::Public, + pub im_online: + runtime_types::pallet_im_online::sr25519::app_sr25519::Public, + pub authority_discovery: + runtime_types::sp_authority_discovery::app::Public, + } + } + pub mod pallet_alliance { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Add a new proposal to be voted on."] # [doc = ""] # [doc = "Must be called by a Fellow."] propose { # [codec (compact)] threshold : :: core :: primitive :: u32 , proposal : :: std :: boxed :: Box < runtime_types :: kitchensink_runtime :: RuntimeCall > , # [codec (compact)] length_bound : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Add an aye or nay vote for the sender to the given proposal."] # [doc = ""] # [doc = "Must be called by a Fellow."] vote { proposal : :: subxt :: utils :: H256 , # [codec (compact)] index : :: core :: primitive :: u32 , approve : :: core :: primitive :: bool , } , # [codec (index = 2)] # [doc = "Close a vote that is either approved, disapproved, or whose voting period has ended."] # [doc = ""] # [doc = "Must be called by a Fellow."] close_old_weight { proposal_hash : :: subxt :: utils :: H256 , # [codec (compact)] index : :: core :: primitive :: u32 , # [codec (compact)] proposal_weight_bound : runtime_types :: sp_weights :: OldWeight , # [codec (compact)] length_bound : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Initialize the Alliance, onboard fellows and allies."] # [doc = ""] # [doc = "The Alliance must be empty, and the call must provide some founding members."] # [doc = ""] # [doc = "Must be called by the Root origin."] init_members { fellows : :: std :: vec :: Vec < :: subxt :: utils :: AccountId32 > , allies : :: std :: vec :: Vec < :: subxt :: utils :: AccountId32 > , } , # [codec (index = 4)] # [doc = "Disband the Alliance, remove all active members and unreserve deposits."] # [doc = ""] # [doc = "Witness data must be set."] disband { witness : runtime_types :: pallet_alliance :: types :: DisbandWitness , } , # [codec (index = 5)] # [doc = "Set a new IPFS CID to the alliance rule."] set_rule { rule : runtime_types :: pallet_alliance :: types :: Cid , } , # [codec (index = 6)] # [doc = "Make an announcement of a new IPFS CID about alliance issues."] announce { announcement : runtime_types :: pallet_alliance :: types :: Cid , } , # [codec (index = 7)] # [doc = "Remove an announcement."] remove_announcement { announcement : runtime_types :: pallet_alliance :: types :: Cid , } , # [codec (index = 8)] # [doc = "Submit oneself for candidacy. A fixed deposit is reserved."] join_alliance , # [codec (index = 9)] # [doc = "A Fellow can nominate someone to join the alliance as an Ally. There is no deposit"] # [doc = "required from the nominator or nominee."] nominate_ally { who : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 10)] # [doc = "Elevate an Ally to Fellow."] elevate_ally { ally : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 11)] # [doc = "As a member, give a retirement notice and start a retirement period required to pass in"] # [doc = "order to retire."] give_retirement_notice , # [codec (index = 12)] # [doc = "As a member, retire from the Alliance and unreserve the deposit."] # [doc = ""] # [doc = "This can only be done once you have called `give_retirement_notice` and the"] # [doc = "`RetirementPeriod` has passed."] retire , # [codec (index = 13)] # [doc = "Kick a member from the Alliance and slash its deposit."] kick_member { who : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "Add accounts or websites to the list of unscrupulous items."] add_unscrupulous_items { items : :: std :: vec :: Vec < runtime_types :: pallet_alliance :: UnscrupulousItem < :: subxt :: utils :: AccountId32 , runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > > > , } , # [codec (index = 15)] # [doc = "Deem some items no longer unscrupulous."] remove_unscrupulous_items { items : :: std :: vec :: Vec < runtime_types :: pallet_alliance :: UnscrupulousItem < :: subxt :: utils :: AccountId32 , runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > > > , } , # [codec (index = 16)] # [doc = "Close a vote that is either approved, disapproved, or whose voting period has ended."] # [doc = ""] # [doc = "Must be called by a Fellow."] close { proposal_hash : :: subxt :: utils :: H256 , # [codec (compact)] index : :: core :: primitive :: u32 , proposal_weight_bound : runtime_types :: sp_weights :: weight_v2 :: Weight , # [codec (compact)] length_bound : :: core :: primitive :: u32 , } , # [codec (index = 17)] # [doc = "Abdicate one's position as a voting member and just be an Ally. May be used by Fellows"] # [doc = "who do not want to leave the Alliance but do not have the capacity to participate"] # [doc = "operationally for some time."] abdicate_fellow_status , } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Cid { + pub version: runtime_types::pallet_alliance::types::Version, + pub codec: ::core::primitive::u64, + pub hash: runtime_types::pallet_alliance::types::Multihash, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct DisbandWitness { + #[codec(compact)] + pub fellow_members: ::core::primitive::u32, + #[codec(compact)] + pub ally_members: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Multihash { + pub code: ::core::primitive::u64, + pub digest: + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Version { + #[codec(index = 0)] + V0, + #[codec(index = 1)] + V1, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum UnscrupulousItem<_0, _1> { + #[codec(index = 0)] + AccountId(_0), + #[codec(index = 1)] + Website(_1), + } + } + pub mod pallet_asset_tx_payment { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ChargeAssetTxPayment { + #[codec(compact)] + pub tip: ::core::primitive::u128, + pub asset_id: ::core::option::Option<::core::primitive::u32>, + } + } + pub mod pallet_assets { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Issue a new class of fungible assets from a public origin."] + #[doc = ""] + #[doc = "This new asset class has no assets initially and its owner is the origin."] + #[doc = ""] + #[doc = "The origin must conform to the configured `CreateOrigin` and have sufficient funds free."] + #[doc = ""] + #[doc = "Funds of sender are reserved by `AssetDeposit`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `id`: The identifier of the new asset. This must not be currently in use to identify"] + #[doc = "an existing asset."] + #[doc = "- `admin`: The admin of this class of assets. The admin is the initial address of each"] + #[doc = "member of the asset class's admin team."] + #[doc = "- `min_balance`: The minimum balance of this new asset that any single account must"] + #[doc = "have. If an account's balance is reduced below this, then it collapses to zero."] + #[doc = ""] + #[doc = "Emits `Created` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + create { + #[codec(compact)] + id: ::core::primitive::u32, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + min_balance: ::core::primitive::u128, + }, + #[codec(index = 1)] + #[doc = "Issue a new class of fungible assets from a privileged origin."] + #[doc = ""] + #[doc = "This new asset class has no assets initially."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin`."] + #[doc = ""] + #[doc = "Unlike `create`, no funds are reserved."] + #[doc = ""] + #[doc = "- `id`: The identifier of the new asset. This must not be currently in use to identify"] + #[doc = "an existing asset."] + #[doc = "- `owner`: The owner of this class of assets. The owner has full superuser permissions"] + #[doc = "over this asset, but may later change and configure the permissions using"] + #[doc = "`transfer_ownership` and `set_team`."] + #[doc = "- `min_balance`: The minimum balance of this new asset that any single account must"] + #[doc = "have. If an account's balance is reduced below this, then it collapses to zero."] + #[doc = ""] + #[doc = "Emits `ForceCreated` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_create { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + is_sufficient: ::core::primitive::bool, + #[codec(compact)] + min_balance: ::core::primitive::u128, + }, + #[codec(index = 2)] + #[doc = "Start the process of destroying a fungible asset class."] + #[doc = ""] + #[doc = "`start_destroy` is the first in a series of extrinsics that should be called, to allow"] + #[doc = "destruction of an asset class."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be destroyed. This must identify an existing"] + #[doc = " asset."] + #[doc = ""] + #[doc = "The asset class must be frozen before calling `start_destroy`."] + start_destroy { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Destroy all accounts associated with a given asset."] + #[doc = ""] + #[doc = "`destroy_accounts` should only be called after `start_destroy` has been called, and the"] + #[doc = "asset is in a `Destroying` state."] + #[doc = ""] + #[doc = "Due to weight restrictions, this function may need to be called multiple times to fully"] + #[doc = "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be destroyed. This must identify an existing"] + #[doc = " asset."] + #[doc = ""] + #[doc = "Each call emits the `Event::DestroyedAccounts` event."] + destroy_accounts { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 4)] + #[doc = "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit)."] + #[doc = ""] + #[doc = "`destroy_approvals` should only be called after `start_destroy` has been called, and the"] + #[doc = "asset is in a `Destroying` state."] + #[doc = ""] + #[doc = "Due to weight restrictions, this function may need to be called multiple times to fully"] + #[doc = "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be destroyed. This must identify an existing"] + #[doc = " asset."] + #[doc = ""] + #[doc = "Each call emits the `Event::DestroyedApprovals` event."] + destroy_approvals { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Complete destroying asset and unreserve currency."] + #[doc = ""] + #[doc = "`finish_destroy` should only be called after `start_destroy` has been called, and the"] + #[doc = "asset is in a `Destroying` state. All accounts or approvals should be destroyed before"] + #[doc = "hand."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be destroyed. This must identify an existing"] + #[doc = " asset."] + #[doc = ""] + #[doc = "Each successful call emits the `Event::Destroyed` event."] + finish_destroy { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Mint assets of a particular class."] + #[doc = ""] + #[doc = "The origin must be Signed and the sender must be the Issuer of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount minted."] + #[doc = "- `beneficiary`: The account to be credited with the minted assets."] + #[doc = "- `amount`: The amount of the asset to be minted."] + #[doc = ""] + #[doc = "Emits `Issued` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`."] + mint { + #[codec(compact)] + id: ::core::primitive::u32, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 7)] + #[doc = "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Manager of the asset `id`."] + #[doc = ""] + #[doc = "Bails with `NoAccount` if the `who` is already dead."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount burned."] + #[doc = "- `who`: The account to be debited from."] + #[doc = "- `amount`: The maximum amount by which `who`'s balance should be reduced."] + #[doc = ""] + #[doc = "Emits `Burned` with the actual amount burned. If this takes the balance to below the"] + #[doc = "minimum for the asset, then the amount burned is increased to take it to zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`."] + burn { + #[codec(compact)] + id: ::core::primitive::u32, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 8)] + #[doc = "Move some assets from the sender account to another."] + #[doc = ""] + #[doc = "Origin must be Signed."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount transferred."] + #[doc = "- `target`: The account to be credited."] + #[doc = "- `amount`: The amount by which the sender's balance of assets should be reduced and"] + #[doc = "`target`'s balance increased. The amount actually transferred may be slightly greater in"] + #[doc = "the case that the transfer would otherwise take the sender balance above zero but below"] + #[doc = "the minimum balance. Must be greater than zero."] + #[doc = ""] + #[doc = "Emits `Transferred` with the actual amount transferred. If this takes the source balance"] + #[doc = "to below the minimum for the asset, then the amount transferred is increased to take it"] + #[doc = "to zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of"] + #[doc = "`target`."] + transfer { + #[codec(compact)] + id: ::core::primitive::u32, + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 9)] + #[doc = "Move some assets from the sender account to another, keeping the sender account alive."] + #[doc = ""] + #[doc = "Origin must be Signed."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount transferred."] + #[doc = "- `target`: The account to be credited."] + #[doc = "- `amount`: The amount by which the sender's balance of assets should be reduced and"] + #[doc = "`target`'s balance increased. The amount actually transferred may be slightly greater in"] + #[doc = "the case that the transfer would otherwise take the sender balance above zero but below"] + #[doc = "the minimum balance. Must be greater than zero."] + #[doc = ""] + #[doc = "Emits `Transferred` with the actual amount transferred. If this takes the source balance"] + #[doc = "to below the minimum for the asset, then the amount transferred is increased to take it"] + #[doc = "to zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of"] + #[doc = "`target`."] + transfer_keep_alive { + #[codec(compact)] + id: ::core::primitive::u32, + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 10)] + #[doc = "Move some assets from one account to another."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Admin of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount transferred."] + #[doc = "- `source`: The account to be debited."] + #[doc = "- `dest`: The account to be credited."] + #[doc = "- `amount`: The amount by which the `source`'s balance of assets should be reduced and"] + #[doc = "`dest`'s balance increased. The amount actually transferred may be slightly greater in"] + #[doc = "the case that the transfer would otherwise take the `source` balance above zero but"] + #[doc = "below the minimum balance. Must be greater than zero."] + #[doc = ""] + #[doc = "Emits `Transferred` with the actual amount transferred. If this takes the source balance"] + #[doc = "to below the minimum for the asset, then the amount transferred is increased to take it"] + #[doc = "to zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of"] + #[doc = "`dest`."] + force_transfer { + #[codec(compact)] + id: ::core::primitive::u32, + source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 11)] + #[doc = "Disallow further unprivileged transfers from an account."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be frozen."] + #[doc = "- `who`: The account to be frozen."] + #[doc = ""] + #[doc = "Emits `Frozen`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + freeze { + #[codec(compact)] + id: ::core::primitive::u32, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 12)] + #[doc = "Allow unprivileged transfers from an account again."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Admin of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be frozen."] + #[doc = "- `who`: The account to be unfrozen."] + #[doc = ""] + #[doc = "Emits `Thawed`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + thaw { + #[codec(compact)] + id: ::core::primitive::u32, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 13)] + #[doc = "Disallow further unprivileged transfers for the asset class."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be frozen."] + #[doc = ""] + #[doc = "Emits `Frozen`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + freeze_asset { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 14)] + #[doc = "Allow unprivileged transfers for the asset again."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Admin of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be thawed."] + #[doc = ""] + #[doc = "Emits `Thawed`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + thaw_asset { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 15)] + #[doc = "Change the Owner of an asset."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `owner`: The new Owner of this asset."] + #[doc = ""] + #[doc = "Emits `OwnerChanged`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + transfer_ownership { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 16)] + #[doc = "Change the Issuer, Admin and Freezer of an asset."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be frozen."] + #[doc = "- `issuer`: The new Issuer of this asset."] + #[doc = "- `admin`: The new Admin of this asset."] + #[doc = "- `freezer`: The new Freezer of this asset."] + #[doc = ""] + #[doc = "Emits `TeamChanged`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_team { + #[codec(compact)] + id: ::core::primitive::u32, + issuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + freezer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 17)] + #[doc = "Set the metadata for an asset."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the asset `id`."] + #[doc = ""] + #[doc = "Funds of sender are reserved according to the formula:"] + #[doc = "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into"] + #[doc = "account any already reserved funds."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to update."] + #[doc = "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`."] + #[doc = "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`."] + #[doc = "- `decimals`: The number of decimals this asset uses to represent one unit."] + #[doc = ""] + #[doc = "Emits `MetadataSet`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_metadata { + #[codec(compact)] + id: ::core::primitive::u32, + name: ::std::vec::Vec<::core::primitive::u8>, + symbol: ::std::vec::Vec<::core::primitive::u8>, + decimals: ::core::primitive::u8, + }, + #[codec(index = 18)] + #[doc = "Clear the metadata for an asset."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the asset `id`."] + #[doc = ""] + #[doc = "Any deposit is freed for the asset owner."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to clear."] + #[doc = ""] + #[doc = "Emits `MetadataCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + clear_metadata { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 19)] + #[doc = "Force the metadata for an asset to some value."] + #[doc = ""] + #[doc = "Origin must be ForceOrigin."] + #[doc = ""] + #[doc = "Any deposit is left alone."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to update."] + #[doc = "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`."] + #[doc = "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`."] + #[doc = "- `decimals`: The number of decimals this asset uses to represent one unit."] + #[doc = ""] + #[doc = "Emits `MetadataSet`."] + #[doc = ""] + #[doc = "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively."] + force_set_metadata { + #[codec(compact)] + id: ::core::primitive::u32, + name: ::std::vec::Vec<::core::primitive::u8>, + symbol: ::std::vec::Vec<::core::primitive::u8>, + decimals: ::core::primitive::u8, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 20)] + #[doc = "Clear the metadata for an asset."] + #[doc = ""] + #[doc = "Origin must be ForceOrigin."] + #[doc = ""] + #[doc = "Any deposit is returned."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to clear."] + #[doc = ""] + #[doc = "Emits `MetadataCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_clear_metadata { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 21)] + #[doc = "Alter the attributes of a given asset."] + #[doc = ""] + #[doc = "Origin must be `ForceOrigin`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `owner`: The new Owner of this asset."] + #[doc = "- `issuer`: The new Issuer of this asset."] + #[doc = "- `admin`: The new Admin of this asset."] + #[doc = "- `freezer`: The new Freezer of this asset."] + #[doc = "- `min_balance`: The minimum balance of this new asset that any single account must"] + #[doc = "have. If an account's balance is reduced below this, then it collapses to zero."] + #[doc = "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient"] + #[doc = "value to account for the state bloat associated with its balance storage. If set to"] + #[doc = "`true`, then non-zero balances may be stored without a `consumer` reference (and thus"] + #[doc = "an ED in the Balances pallet or whatever else is used to control user-account state"] + #[doc = "growth)."] + #[doc = "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin"] + #[doc = "instructions."] + #[doc = ""] + #[doc = "Emits `AssetStatusChanged` with the identity of the asset."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_asset_status { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + issuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + freezer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + min_balance: ::core::primitive::u128, + is_sufficient: ::core::primitive::bool, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 22)] + #[doc = "Approve an amount of asset for transfer by a delegated third-party account."] + #[doc = ""] + #[doc = "Origin must be Signed."] + #[doc = ""] + #[doc = "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account"] + #[doc = "for the purpose of holding the approval. If some non-zero amount of assets is already"] + #[doc = "approved from signing account to `delegate`, then it is topped up or unreserved to"] + #[doc = "meet the right value."] + #[doc = ""] + #[doc = "NOTE: The signing account does not need to own `amount` of assets at the point of"] + #[doc = "making this call."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `delegate`: The account to delegate permission to transfer asset."] + #[doc = "- `amount`: The amount of asset that may be transferred by `delegate`. If there is"] + #[doc = "already an approval in place, then this acts additively."] + #[doc = ""] + #[doc = "Emits `ApprovedTransfer` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + approve_transfer { + #[codec(compact)] + id: ::core::primitive::u32, + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 23)] + #[doc = "Cancel all of some asset approved for delegated transfer by a third-party account."] + #[doc = ""] + #[doc = "Origin must be Signed and there must be an approval in place between signer and"] + #[doc = "`delegate`."] + #[doc = ""] + #[doc = "Unreserves any deposit previously reserved by `approve_transfer` for the approval."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `delegate`: The account delegated permission to transfer asset."] + #[doc = ""] + #[doc = "Emits `ApprovalCancelled` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + cancel_approval { + #[codec(compact)] + id: ::core::primitive::u32, + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 24)] + #[doc = "Cancel all of some asset approved for delegated transfer by a third-party account."] + #[doc = ""] + #[doc = "Origin must be either ForceOrigin or Signed origin with the signer being the Admin"] + #[doc = "account of the asset `id`."] + #[doc = ""] + #[doc = "Unreserves any deposit previously reserved by `approve_transfer` for the approval."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `delegate`: The account delegated permission to transfer asset."] + #[doc = ""] + #[doc = "Emits `ApprovalCancelled` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_cancel_approval { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 25)] + #[doc = "Transfer some asset balance from a previously delegated account to some third-party"] + #[doc = "account."] + #[doc = ""] + #[doc = "Origin must be Signed and there must be an approval in place by the `owner` to the"] + #[doc = "signer."] + #[doc = ""] + #[doc = "If the entire amount approved for transfer is transferred, then any deposit previously"] + #[doc = "reserved by `approve_transfer` is unreserved."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `owner`: The account which previously approved for a transfer of at least `amount` and"] + #[doc = "from which the asset balance will be withdrawn."] + #[doc = "- `destination`: The account to which the asset balance of `amount` will be transferred."] + #[doc = "- `amount`: The amount of assets to transfer."] + #[doc = ""] + #[doc = "Emits `TransferredApproved` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + transfer_approved { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + destination: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 26)] + #[doc = "Create an asset account for non-provider assets."] + #[doc = ""] + #[doc = "A deposit will be taken from the signer account."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit"] + #[doc = " to be taken."] + #[doc = "- `id`: The identifier of the asset for the account to be created."] + #[doc = ""] + #[doc = "Emits `Touched` event when successful."] + touch { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 27)] + #[doc = "Return the deposit (if any) of an asset account."] + #[doc = ""] + #[doc = "The origin must be Signed."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset for the account to be created."] + #[doc = "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund."] + #[doc = ""] + #[doc = "Emits `Refunded` event when successful."] + refund { + #[codec(compact)] + id: ::core::primitive::u32, + allow_burn: ::core::primitive::bool, + }, + } + } + } + pub mod pallet_babe { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Report authority equivocation/misbehavior. This method will verify"] # [doc = "the equivocation proof and validate the given key ownership proof"] # [doc = "against the extracted offender. If both are valid, the offence will"] # [doc = "be reported."] report_equivocation { equivocation_proof : :: std :: boxed :: Box < runtime_types :: sp_consensus_slots :: EquivocationProof < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 , runtime_types :: sp_runtime :: traits :: BlakeTwo256 > , runtime_types :: sp_consensus_babe :: app :: Public > > , key_owner_proof : runtime_types :: sp_session :: MembershipProof , } , # [codec (index = 1)] # [doc = "Report authority equivocation/misbehavior. This method will verify"] # [doc = "the equivocation proof and validate the given key ownership proof"] # [doc = "against the extracted offender. If both are valid, the offence will"] # [doc = "be reported."] # [doc = "This extrinsic must be called unsigned and it is expected that only"] # [doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] # [doc = "if the block author is defined it will be defined as the equivocation"] # [doc = "reporter."] report_equivocation_unsigned { equivocation_proof : :: std :: boxed :: Box < runtime_types :: sp_consensus_slots :: EquivocationProof < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 , runtime_types :: sp_runtime :: traits :: BlakeTwo256 > , runtime_types :: sp_consensus_babe :: app :: Public > > , key_owner_proof : runtime_types :: sp_session :: MembershipProof , } , # [codec (index = 2)] # [doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"] # [doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."] # [doc = "Multiple calls to this method will replace any existing planned config change that had"] # [doc = "not been enacted yet."] plan_config_change { config : runtime_types :: sp_consensus_babe :: digests :: NextConfigDescriptor , } , } + } + } + pub mod pallet_bags_list { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Declare that some `dislocated` account has, through rewards or penalties, sufficiently"] + #[doc = "changed its score that it should properly fall into a different bag than its current"] + #[doc = "one."] + #[doc = ""] + #[doc = "Anyone can call this function about any potentially dislocated account."] + #[doc = ""] + #[doc = "Will always update the stored score of `dislocated` to the correct score, based on"] + #[doc = "`ScoreProvider`."] + #[doc = ""] + #[doc = "If `dislocated` does not exists, it returns an error."] + rebag { + dislocated: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Move the caller's Id directly in front of `lighter`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and can only be called by the Id of"] + #[doc = "the account going in front of `lighter`."] + #[doc = ""] + #[doc = "Only works if"] + #[doc = "- both nodes are within the same bag,"] + #[doc = "- and `origin` has a greater `Score` than `lighter`."] + put_in_front_of { + lighter: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + } + } + } + pub mod pallet_balances { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Dependent on arguments but not critical, given proper implementations for input config"] + #[doc = " types. See related functions below."] + #[doc = "- It contains a limited number of reads and writes internally and no complex"] + #[doc = " computation."] + #[doc = ""] + #[doc = "Related functions:"] + #[doc = ""] + #[doc = " - `ensure_can_withdraw` is always called internally but has a bounded complexity."] + #[doc = " - Transferring balances to accounts that did not exist before will cause"] + #[doc = " `T::OnNewAccount::on_new_account` to be called."] + #[doc = " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`."] + #[doc = " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check"] + #[doc = " that the transfer will not kill the origin account."] + transfer { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 1)] + #[doc = "Set the balances of a given account."] + #[doc = ""] + #[doc = "This will alter `FreeBalance` and `ReservedBalance` in storage. it will"] + #[doc = "also alter the total issuance of the system (`TotalIssuance`) appropriately."] + #[doc = "If the new free or reserved balance is below the existential deposit,"] + #[doc = "it will reset the account nonce (`frame_system::AccountNonce`)."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] + set_balance { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + new_free: ::core::primitive::u128, + #[codec(compact)] + new_reserved: ::core::primitive::u128, + }, + #[codec(index = 2)] + #[doc = "Exactly as `transfer`, except the origin must be root and the source account may be"] + #[doc = "specified."] + #[doc = "## Complexity"] + #[doc = "- Same as transfer, but additional read and write because the source account is not"] + #[doc = " assumed to be in the overlay."] + force_transfer { + source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "Same as the [`transfer`] call, but with a check that the transfer will not kill the"] + #[doc = "origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer`] instead."] + #[doc = ""] + #[doc = "[`transfer`]: struct.Pallet.html#method.transfer"] + transfer_keep_alive { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 4)] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true). ## Complexity"] + #[doc = "- O(1). Just like transfer, but reading the user's transferable balance first."] + transfer_all { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + keep_alive: ::core::primitive::bool, + }, + #[codec(index = 5)] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] + force_unreserve { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + amount: ::core::primitive::u128, + }, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t"] + pub enum Error { + #[codec(index = 0)] + #[doc = "Vesting balance too high to send value"] + VestingBalance, + #[codec(index = 1)] + #[doc = "Account liquidity restrictions prevent withdrawal"] + LiquidityRestrictions, + #[codec(index = 2)] + #[doc = "Balance too low to send value."] + InsufficientBalance, + #[codec(index = 3)] + #[doc = "Value too low to create account due to existential deposit"] + ExistentialDeposit, + #[codec(index = 4)] + #[doc = "Transfer/payment would kill account"] + KeepAlive, + #[codec(index = 5)] + #[doc = "A vesting schedule already exists for this account"] + ExistingVestingSchedule, + #[codec(index = 6)] + #[doc = "Beneficiary account must pre-exist"] + DeadAccount, + #[codec(index = 7)] + #[doc = "Number of named reserves exceed MaxReserves"] + TooManyReserves, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t"] + pub enum Event { + # [codec (index = 0)] # [doc = "An account was created with some free balance."] Endowed { account : :: subxt :: utils :: AccountId32 , free_balance : :: core :: primitive :: u128 , } , # [codec (index = 1)] # [doc = "An account was removed whose balance was non-zero but below ExistentialDeposit,"] # [doc = "resulting in an outright loss."] DustLost { account : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 2)] # [doc = "Transfer succeeded."] Transfer { from : :: subxt :: utils :: AccountId32 , to : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 3)] # [doc = "A balance was set by root."] BalanceSet { who : :: subxt :: utils :: AccountId32 , free : :: core :: primitive :: u128 , reserved : :: core :: primitive :: u128 , } , # [codec (index = 4)] # [doc = "Some balance was reserved (moved from free to reserved)."] Reserved { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 5)] # [doc = "Some balance was unreserved (moved from reserved to free)."] Unreserved { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 6)] # [doc = "Some balance was moved from the reserve of the first account to the second account."] # [doc = "Final argument indicates the destination balance type."] ReserveRepatriated { from : :: subxt :: utils :: AccountId32 , to : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , destination_status : runtime_types :: frame_support :: traits :: tokens :: misc :: BalanceStatus , } , # [codec (index = 7)] # [doc = "Some amount was deposited (e.g. for transaction fees)."] Deposit { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 8)] # [doc = "Some amount was withdrawn from the account (e.g. for transaction fees)."] Withdraw { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 9)] # [doc = "Some amount was removed from the account (e.g. for misbehavior)."] Slashed { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct AccountData<_0> { + pub free: _0, + pub reserved: _0, + pub misc_frozen: _0, + pub fee_frozen: _0, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BalanceLock<_0> { + pub id: [::core::primitive::u8; 8usize], + pub amount: _0, + pub reasons: runtime_types::pallet_balances::Reasons, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Reasons { + #[codec(index = 0)] + Fee, + #[codec(index = 1)] + Misc, + #[codec(index = 2)] + All, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ReserveData<_0, _1> { + pub id: _0, + pub amount: _1, + } + } + pub mod pallet_bounties { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Propose a new bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"] + #[doc = "or slashed when rejected."] + #[doc = ""] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = "- `value`: The total payment amount of this bounty, curator fee included."] + #[doc = "- `description`: The description of this bounty."] + propose_bounty { + #[codec(compact)] + value: ::core::primitive::u128, + description: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + approve_bounty { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Assign a curator to a funded bounty."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + propose_curator { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + curator: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + fee: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "Unassign curator from a bounty."] + #[doc = ""] + #[doc = "This function can only be called by the `RejectOrigin` a signed origin."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"] + #[doc = "malicious or inactive. As a result, we will slash the curator when possible."] + #[doc = ""] + #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"] + #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"] + #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"] + #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"] + #[doc = "we should pick a new curator. In this case the curator should also be slashed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + unassign_curator { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 4)] + #[doc = "Accept the curator role for a bounty."] + #[doc = "A deposit will be reserved from curator and refund upon successful payout."] + #[doc = ""] + #[doc = "May only be called from the curator."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + accept_curator { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"] + #[doc = "after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to award."] + #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + award_bounty { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 6)] + #[doc = "Claim the payout from an awarded bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to claim."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + claim_bounty { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 7)] + #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"] + #[doc = "the curator deposit will be unreserved if possible."] + #[doc = ""] + #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to cancel."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + close_bounty { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Extend the expiry time of an active bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to extend."] + #[doc = "- `remark`: additional information."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + extend_bounty_expiry { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + remark: ::std::vec::Vec<::core::primitive::u8>, + }, + } + } + } + pub mod pallet_child_bounties { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Add a new child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of parent"] + #[doc = "bounty and the parent bounty must be in \"active\" state."] + #[doc = ""] + #[doc = "Child-bounty gets added successfully & fund gets transferred from"] + #[doc = "parent bounty to child-bounty account, if parent bounty has enough"] + #[doc = "funds, else the call fails."] + #[doc = ""] + #[doc = "Upper bound to maximum number of active child bounties that can be"] + #[doc = "added are managed via runtime trait config"] + #[doc = "[`Config::MaxActiveChildBountyCount`]."] + #[doc = ""] + #[doc = "If the call is success, the status of child-bounty is updated to"] + #[doc = "\"Added\"."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."] + #[doc = "- `value`: Value for executing the proposal."] + #[doc = "- `description`: Text description for the child-bounty."] + add_child_bounty { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + value: ::core::primitive::u128, + description: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Propose curator for funded child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be curator of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `curator`: Address of child-bounty curator."] + #[doc = "- `fee`: payment fee to child-bounty curator for execution."] + propose_curator { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + curator: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + fee: ::core::primitive::u128, + }, + #[codec(index = 2)] + #[doc = "Accept the curator role for the child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this"] + #[doc = "child-bounty."] + #[doc = ""] + #[doc = "A deposit will be reserved from the curator and refund upon"] + #[doc = "successful payout or cancellation."] + #[doc = ""] + #[doc = "Fee for curator is deducted from curator fee of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"] + #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + accept_curator { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Unassign curator from a child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"] + #[doc = "the curator of the parent bounty, or any signed origin."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin and the child-bounty"] + #[doc = "curator, parent bounty must be in active state, for this call to"] + #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"] + #[doc = "this call irrespective of the parent bounty state."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin` or the"] + #[doc = "parent bounty curator, we assume that the child-bounty curator is"] + #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"] + #[doc = "slashed."] + #[doc = ""] + #[doc = "If the origin is the child-bounty curator, we take this as a sign"] + #[doc = "that they are unable to do their job, and are willingly giving up."] + #[doc = "We could slash the deposit, but for now we allow them to unreserve"] + #[doc = "their deposit and exit without issue. (We may want to change this if"] + #[doc = "it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"] + #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"] + #[doc = "inactive state of child-bounty curator."] + #[doc = ""] + #[doc = "This allows anyone in the community to call out that a child-bounty"] + #[doc = "curator is not doing their due diligence, and we should pick a new"] + #[doc = "one. In this case the child-bounty curator deposit is slashed."] + #[doc = ""] + #[doc = "State of child-bounty is moved to Added state on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + unassign_curator { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + }, + #[codec(index = 4)] + #[doc = "Award child-bounty to a beneficiary."] + #[doc = ""] + #[doc = "The beneficiary will be able to claim the funds after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the parent curator or"] + #[doc = "curator of this child-bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in active state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `beneficiary`: Beneficiary account."] + award_child_bounty { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 5)] + #[doc = "Claim the payout from an awarded child-bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call may be any signed origin."] + #[doc = ""] + #[doc = "Call works independent of parent bounty state, No need for parent"] + #[doc = "bounty to be in active state."] + #[doc = ""] + #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"] + #[doc = "paid & curator deposit is unreserved."] + #[doc = ""] + #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"] + #[doc = "call. And instance of child-bounty is removed from the state on"] + #[doc = "successful call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + claim_child_bounty { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"] + #[doc = "are transferred to parent bounty account. The child-bounty curator"] + #[doc = "deposit may be unreserved if possible."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be either parent curator or"] + #[doc = "`T::RejectOrigin`."] + #[doc = ""] + #[doc = "If the state of child-bounty is `Active`, curator deposit is"] + #[doc = "unreserved."] + #[doc = ""] + #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"] + #[doc = "returns `PendingPayout` error."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"] + #[doc = "active state, for this child-bounty call to work. For origin"] + #[doc = "T::RejectOrigin execution is forced."] + #[doc = ""] + #[doc = "Instance of child-bounty is removed from the state on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + close_child_bounty { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_collective { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Set the collective's membership."] + #[doc = ""] + #[doc = "- `new_members`: The new member list. Be nice to the chain and provide it sorted."] + #[doc = "- `prime`: The prime member whose vote sets the default."] + #[doc = "- `old_count`: The upper bound for the previous number of members in storage. Used for"] + #[doc = " weight estimation."] + #[doc = ""] + #[doc = "The dispatch of this call must be `SetMembersOrigin`."] + #[doc = ""] + #[doc = "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but"] + #[doc = " the weight estimations rely on it to estimate dispatchable weight."] + #[doc = ""] + #[doc = "# WARNING:"] + #[doc = ""] + #[doc = "The `pallet-collective` can also be managed by logic outside of the pallet through the"] + #[doc = "implementation of the trait [`ChangeMembers`]."] + #[doc = "Any call to `set_members` must be careful that the member set doesn't get out of sync"] + #[doc = "with other logic managing the member set."] + #[doc = ""] + #[doc = "## Complexity:"] + #[doc = "- `O(MP + N)` where:"] + #[doc = " - `M` old-members-count (code- and governance-bounded)"] + #[doc = " - `N` new-members-count (code- and governance-bounded)"] + #[doc = " - `P` proposals-count (code-bounded)"] + set_members { + new_members: ::std::vec::Vec<::subxt::utils::AccountId32>, + prime: ::core::option::Option<::subxt::utils::AccountId32>, + old_count: ::core::primitive::u32, + }, + #[codec(index = 1)] + #[doc = "Dispatch a proposal from a member using the `Member` origin."] + #[doc = ""] + #[doc = "Origin must be a member of the collective."] + #[doc = ""] + #[doc = "## Complexity:"] + #[doc = "- `O(B + M + P)` where:"] + #[doc = "- `B` is `proposal` size in bytes (length-fee-bounded)"] + #[doc = "- `M` members-count (code-bounded)"] + #[doc = "- `P` complexity of dispatching `proposal`"] + execute { + proposal: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + #[codec(compact)] + length_bound: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Add a new proposal to either be voted on or executed directly."] + #[doc = ""] + #[doc = "Requires the sender to be member."] + #[doc = ""] + #[doc = "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)"] + #[doc = "or put up for voting."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(B + M + P1)` or `O(B + M + P2)` where:"] + #[doc = " - `B` is `proposal` size in bytes (length-fee-bounded)"] + #[doc = " - `M` is members-count (code- and governance-bounded)"] + #[doc = " - branching is influenced by `threshold` where:"] + #[doc = " - `P1` is proposal execution complexity (`threshold < 2`)"] + #[doc = " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)"] + propose { + #[codec(compact)] + threshold: ::core::primitive::u32, + proposal: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + #[codec(compact)] + length_bound: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "Requires the sender to be a member."] + #[doc = ""] + #[doc = "Transaction fees will be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = "## Complexity"] + #[doc = "- `O(M)` where `M` is members-count (code- and governance-bounded)"] + vote { + proposal: ::subxt::utils::H256, + #[codec(compact)] + index: ::core::primitive::u32, + approve: ::core::primitive::bool, + }, + #[codec(index = 4)] + #[doc = "Close a vote that is either approved, disapproved or whose voting period has ended."] + #[doc = ""] + #[doc = "May be called by any signed account in order to finish voting and close the proposal."] + #[doc = ""] + #[doc = "If called before the end of the voting period it will only close the vote if it is"] + #[doc = "has enough votes to be approved or disapproved."] + #[doc = ""] + #[doc = "If called after the end of the voting period abstentions are counted as rejections"] + #[doc = "unless there is a prime member set and the prime member cast an approval."] + #[doc = ""] + #[doc = "If the close operation completes successfully with disapproval, the transaction fee will"] + #[doc = "be waived. Otherwise execution of the approved operation will be charged to the caller."] + #[doc = ""] + #[doc = "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed"] + #[doc = "proposal."] + #[doc = "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via"] + #[doc = "`storage::read` so it is `size_of::() == 4` larger than the pure length."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(B + M + P1 + P2)` where:"] + #[doc = " - `B` is `proposal` size in bytes (length-fee-bounded)"] + #[doc = " - `M` is members-count (code- and governance-bounded)"] + #[doc = " - `P1` is the complexity of `proposal` preimage."] + #[doc = " - `P2` is proposal-count (code-bounded)"] + close_old_weight { + proposal_hash: ::subxt::utils::H256, + #[codec(compact)] + index: ::core::primitive::u32, + #[codec(compact)] + proposal_weight_bound: runtime_types::sp_weights::OldWeight, + #[codec(compact)] + length_bound: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Disapprove a proposal, close, and remove it from the system, regardless of its current"] + #[doc = "state."] + #[doc = ""] + #[doc = "Must be called by the Root origin."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "* `proposal_hash`: The hash of the proposal that should be disapproved."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(P) where P is the number of max proposals"] + disapprove_proposal { proposal_hash: ::subxt::utils::H256 }, + #[codec(index = 6)] + #[doc = "Close a vote that is either approved, disapproved or whose voting period has ended."] + #[doc = ""] + #[doc = "May be called by any signed account in order to finish voting and close the proposal."] + #[doc = ""] + #[doc = "If called before the end of the voting period it will only close the vote if it is"] + #[doc = "has enough votes to be approved or disapproved."] + #[doc = ""] + #[doc = "If called after the end of the voting period abstentions are counted as rejections"] + #[doc = "unless there is a prime member set and the prime member cast an approval."] + #[doc = ""] + #[doc = "If the close operation completes successfully with disapproval, the transaction fee will"] + #[doc = "be waived. Otherwise execution of the approved operation will be charged to the caller."] + #[doc = ""] + #[doc = "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed"] + #[doc = "proposal."] + #[doc = "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via"] + #[doc = "`storage::read` so it is `size_of::() == 4` larger than the pure length."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(B + M + P1 + P2)` where:"] + #[doc = " - `B` is `proposal` size in bytes (length-fee-bounded)"] + #[doc = " - `M` is members-count (code- and governance-bounded)"] + #[doc = " - `P1` is the complexity of `proposal` preimage."] + #[doc = " - `P2` is proposal-count (code-bounded)"] + close { + proposal_hash: ::subxt::utils::H256, + #[codec(compact)] + index: ::core::primitive::u32, + proposal_weight_bound: + runtime_types::sp_weights::weight_v2::Weight, + #[codec(compact)] + length_bound: ::core::primitive::u32, + }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum RawOrigin<_0> { + #[codec(index = 0)] + Members(::core::primitive::u32, ::core::primitive::u32), + #[codec(index = 1)] + Member(_0), + #[codec(index = 2)] + _Phantom, + } + } + pub mod pallet_contracts { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Deprecated version if [`Self::call`] for use in an in-storage `Call`."] + call_old_weight { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + #[codec(compact)] + gas_limit: runtime_types::sp_weights::OldWeight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + data: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`."] + instantiate_with_code_old_weight { + #[codec(compact)] + value: ::core::primitive::u128, + #[codec(compact)] + gas_limit: runtime_types::sp_weights::OldWeight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + code: ::std::vec::Vec<::core::primitive::u8>, + data: ::std::vec::Vec<::core::primitive::u8>, + salt: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 2)] + #[doc = "Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`."] + instantiate_old_weight { + #[codec(compact)] + value: ::core::primitive::u128, + #[codec(compact)] + gas_limit: runtime_types::sp_weights::OldWeight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + code_hash: ::subxt::utils::H256, + data: ::std::vec::Vec<::core::primitive::u8>, + salt: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 3)] + #[doc = "Upload new `code` without instantiating a contract from it."] + #[doc = ""] + #[doc = "If the code does not already exist a deposit is reserved from the caller"] + #[doc = "and unreserved only when [`Self::remove_code`] is called. The size of the reserve"] + #[doc = "depends on the instrumented size of the the supplied `code`."] + #[doc = ""] + #[doc = "If the code already exists in storage it will still return `Ok` and upgrades"] + #[doc = "the in storage version to the current"] + #[doc = "[`InstructionWeights::version`](InstructionWeights)."] + #[doc = ""] + #[doc = "- `determinism`: If this is set to any other value but [`Determinism::Deterministic`]"] + #[doc = " then the only way to use this code is to delegate call into it from an offchain"] + #[doc = " execution. Set to [`Determinism::Deterministic`] if in doubt."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "Anyone can instantiate a contract from any uploaded code and thus prevent its removal."] + #[doc = "To avoid this situation a constructor could employ access control so that it can"] + #[doc = "only be instantiated by permissioned entities. The same is true when uploading"] + #[doc = "through [`Self::instantiate_with_code`]."] + upload_code { + code: ::std::vec::Vec<::core::primitive::u8>, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + determinism: runtime_types::pallet_contracts::wasm::Determinism, + }, + #[codec(index = 4)] + #[doc = "Remove the code stored under `code_hash` and refund the deposit to its owner."] + #[doc = ""] + #[doc = "A code can only be removed by its original uploader (its owner) and only if it is"] + #[doc = "not used by any contract."] + remove_code { code_hash: ::subxt::utils::H256 }, + #[codec(index = 5)] + #[doc = "Privileged function that changes the code of an existing contract."] + #[doc = ""] + #[doc = "This takes care of updating refcounts and all other necessary operations. Returns"] + #[doc = "an error if either the `code_hash` or `dest` do not exist."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "This does **not** change the address of the contract in question. This means"] + #[doc = "that the contract address is no longer derived from its code hash after calling"] + #[doc = "this dispatchable."] + set_code { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + code_hash: ::subxt::utils::H256, + }, + #[codec(index = 6)] + #[doc = "Makes a call to an account, optionally transferring some balance."] + #[doc = ""] + #[doc = "# Parameters"] + #[doc = ""] + #[doc = "* `dest`: Address of the contract to call."] + #[doc = "* `value`: The balance to transfer from the `origin` to `dest`."] + #[doc = "* `gas_limit`: The gas limit enforced when executing the constructor."] + #[doc = "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the"] + #[doc = " caller to pay for the storage consumed."] + #[doc = "* `data`: The input data to pass to the contract."] + #[doc = ""] + #[doc = "* If the account is a smart-contract account, the associated code will be"] + #[doc = "executed and any value will be transferred."] + #[doc = "* If the account is a regular account, any value will be transferred."] + #[doc = "* If no account exists and the call value is not less than `existential_deposit`,"] + #[doc = "a regular account will be created and any value will be transferred."] + call { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + gas_limit: runtime_types::sp_weights::weight_v2::Weight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + data: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 7)] + #[doc = "Instantiates a new contract from the supplied `code` optionally transferring"] + #[doc = "some balance."] + #[doc = ""] + #[doc = "This dispatchable has the same effect as calling [`Self::upload_code`] +"] + #[doc = "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please"] + #[doc = "also check the documentation of [`Self::upload_code`]."] + #[doc = ""] + #[doc = "# Parameters"] + #[doc = ""] + #[doc = "* `value`: The balance to transfer from the `origin` to the newly created contract."] + #[doc = "* `gas_limit`: The gas limit enforced when executing the constructor."] + #[doc = "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved"] + #[doc = " from the caller to pay for the storage consumed."] + #[doc = "* `code`: The contract code to deploy in raw bytes."] + #[doc = "* `data`: The input data to pass to the contract constructor."] + #[doc = "* `salt`: Used for the address derivation. See [`Pallet::contract_address`]."] + #[doc = ""] + #[doc = "Instantiation is executed as follows:"] + #[doc = ""] + #[doc = "- The supplied `code` is instrumented, deployed, and a `code_hash` is created for that"] + #[doc = " code."] + #[doc = "- If the `code_hash` already exists on the chain the underlying `code` will be shared."] + #[doc = "- The destination address is computed based on the sender, code_hash and the salt."] + #[doc = "- The smart-contract account is created at the computed address."] + #[doc = "- The `value` is transferred to the new account."] + #[doc = "- The `deploy` function is executed in the context of the newly-created account."] + instantiate_with_code { + #[codec(compact)] + value: ::core::primitive::u128, + gas_limit: runtime_types::sp_weights::weight_v2::Weight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + code: ::std::vec::Vec<::core::primitive::u8>, + data: ::std::vec::Vec<::core::primitive::u8>, + salt: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 8)] + #[doc = "Instantiates a contract from a previously deployed wasm binary."] + #[doc = ""] + #[doc = "This function is identical to [`Self::instantiate_with_code`] but without the"] + #[doc = "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary"] + #[doc = "must be supplied."] + instantiate { + #[codec(compact)] + value: ::core::primitive::u128, + gas_limit: runtime_types::sp_weights::weight_v2::Weight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + code_hash: ::subxt::utils::H256, + data: ::std::vec::Vec<::core::primitive::u8>, + salt: ::std::vec::Vec<::core::primitive::u8>, + }, + } + } + pub mod wasm { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Determinism { + #[codec(index = 0)] + Deterministic, + #[codec(index = 1)] + AllowIndeterminism, + } + } + } + pub mod pallet_conviction_voting { + use super::runtime_types; + pub mod conviction { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Conviction { + #[codec(index = 0)] + None, + #[codec(index = 1)] + Locked1x, + #[codec(index = 2)] + Locked2x, + #[codec(index = 3)] + Locked3x, + #[codec(index = 4)] + Locked4x, + #[codec(index = 5)] + Locked5x, + #[codec(index = 6)] + Locked6x, + } + } + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"] # [doc = "otherwise it is a vote to keep the status quo."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_."] # [doc = ""] # [doc = "- `poll_index`: The index of the poll to vote for."] # [doc = "- `vote`: The vote configuration."] # [doc = ""] # [doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."] vote { # [codec (compact)] poll_index : :: core :: primitive :: u32 , vote : runtime_types :: pallet_conviction_voting :: vote :: AccountVote < :: core :: primitive :: u128 > , } , # [codec (index = 1)] # [doc = "Delegate the voting power (with some given conviction) of the sending account for a"] # [doc = "particular class of polls."] # [doc = ""] # [doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] # [doc = "time appropriate for the conviction's lock period."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] # [doc = " - be delegating already; or"] # [doc = " - have no voting activity (if there is, then it will need to be removed/consolidated"] # [doc = " through `reap_vote` or `unvote`)."] # [doc = ""] # [doc = "- `to`: The account whose voting the `target` account's voting power will follow."] # [doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"] # [doc = " to this function are required."] # [doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] # [doc = " account is undelegated, the funds will be locked for the corresponding period."] # [doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] # [doc = " be more than the account's current balance."] # [doc = ""] # [doc = "Emits `Delegated`."] # [doc = ""] # [doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] # [doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] delegate { class : :: core :: primitive :: u16 , to : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , conviction : runtime_types :: pallet_conviction_voting :: conviction :: Conviction , balance : :: core :: primitive :: u128 , } , # [codec (index = 2)] # [doc = "Undelegate the voting power of the sending account for a particular class of polls."] # [doc = ""] # [doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] # [doc = "of the conviction with which the delegation was issued has passed."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] # [doc = "currently delegating."] # [doc = ""] # [doc = "- `class`: The class of polls to remove the delegation from."] # [doc = ""] # [doc = "Emits `Undelegated`."] # [doc = ""] # [doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] # [doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] undelegate { class : :: core :: primitive :: u16 , } , # [codec (index = 3)] # [doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"] # [doc = "class."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_."] # [doc = ""] # [doc = "- `class`: The class of polls to unlock."] # [doc = "- `target`: The account to remove the lock on."] # [doc = ""] # [doc = "Weight: `O(R)` with R number of vote of target."] unlock { class : :: core :: primitive :: u16 , target : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 4)] # [doc = "Remove a vote for a poll."] # [doc = ""] # [doc = "If:"] # [doc = "- the poll was cancelled, or"] # [doc = "- the poll is ongoing, or"] # [doc = "- the poll has ended such that"] # [doc = " - the vote of the account was in opposition to the result; or"] # [doc = " - there was no conviction to the account's vote; or"] # [doc = " - the account made a split vote"] # [doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] # [doc = "funds being available."] # [doc = ""] # [doc = "If, however, the poll has ended and:"] # [doc = "- it finished corresponding to the vote of the account, and"] # [doc = "- the account made a standard vote with conviction, and"] # [doc = "- the lock period of the conviction is not over"] # [doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] # [doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] # [doc = "of both the amount locked and the time is it locked for)."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] # [doc = "registered for poll `index`."] # [doc = ""] # [doc = "- `index`: The index of poll of the vote to be removed."] # [doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"] # [doc = " which have finished or are cancelled, this must be `Some`."] # [doc = ""] # [doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] # [doc = " Weight is calculated for the maximum number of vote."] remove_vote { class : :: core :: option :: Option < :: core :: primitive :: u16 > , index : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Remove a vote for a poll."] # [doc = ""] # [doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] # [doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] # [doc = "either because the poll was cancelled, because the voter lost the poll or"] # [doc = "because the conviction period is over."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_."] # [doc = ""] # [doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"] # [doc = " `index`."] # [doc = "- `index`: The index of poll of the vote to be removed."] # [doc = "- `class`: The class of the poll."] # [doc = ""] # [doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] # [doc = " Weight is calculated for the maximum number of vote."] remove_other_vote { target : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , class : :: core :: primitive :: u16 , index : :: core :: primitive :: u32 , } , } + } + pub mod vote { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum AccountVote<_0> { + #[codec(index = 0)] + Standard { + vote: runtime_types::pallet_conviction_voting::vote::Vote, + balance: _0, + }, + #[codec(index = 1)] + Split { aye: _0, nay: _0 }, + #[codec(index = 2)] + SplitAbstain { aye: _0, nay: _0, abstain: _0 }, + } + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Vote(pub ::core::primitive::u8); + } + } + pub mod pallet_democracy { + use super::runtime_types; + pub mod conviction { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Conviction { + #[codec(index = 0)] + None, + #[codec(index = 1)] + Locked1x, + #[codec(index = 2)] + Locked2x, + #[codec(index = 3)] + Locked3x, + #[codec(index = 4)] + Locked4x, + #[codec(index = 5)] + Locked5x, + #[codec(index = 6)] + Locked6x, + } + } + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Propose a sensitive action to be taken."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the sender must"] + #[doc = "have funds to cover the deposit."] + #[doc = ""] + #[doc = "- `proposal_hash`: The hash of the proposal preimage."] + #[doc = "- `value`: The amount of deposit (must be at least `MinimumDeposit`)."] + #[doc = ""] + #[doc = "Emits `Proposed`."] + propose { + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 1)] + #[doc = "Signals agreement with a particular proposal."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the sender"] + #[doc = "must have funds to cover the deposit, equal to the original deposit."] + #[doc = ""] + #[doc = "- `proposal`: The index of the proposal to second."] + second { + #[codec(compact)] + proposal: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;"] + #[doc = "otherwise it is a vote to keep the status quo."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `ref_index`: The index of the referendum to vote for."] + #[doc = "- `vote`: The vote configuration."] + vote { + #[codec(compact)] + ref_index: ::core::primitive::u32, + vote: runtime_types::pallet_democracy::vote::AccountVote< + ::core::primitive::u128, + >, + }, + #[codec(index = 3)] + #[doc = "Schedule an emergency cancellation of a referendum. Cannot happen twice to the same"] + #[doc = "referendum."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `CancellationOrigin`."] + #[doc = ""] + #[doc = "-`ref_index`: The index of the referendum to cancel."] + #[doc = ""] + #[doc = "Weight: `O(1)`."] + emergency_cancel { ref_index: ::core::primitive::u32 }, + #[codec(index = 4)] + #[doc = "Schedule a referendum to be tabled once it is legal to schedule an external"] + #[doc = "referendum."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `ExternalOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The preimage hash of the proposal."] + external_propose { + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 5)] + #[doc = "Schedule a majority-carries referendum to be tabled next once it is legal to schedule"] + #[doc = "an external referendum."] + #[doc = ""] + #[doc = "The dispatch of this call must be `ExternalMajorityOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The preimage hash of the proposal."] + #[doc = ""] + #[doc = "Unlike `external_propose`, blacklisting has no effect on this and it may replace a"] + #[doc = "pre-scheduled `external_propose` call."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + external_propose_majority { + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 6)] + #[doc = "Schedule a negative-turnout-bias referendum to be tabled next once it is legal to"] + #[doc = "schedule an external referendum."] + #[doc = ""] + #[doc = "The dispatch of this call must be `ExternalDefaultOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The preimage hash of the proposal."] + #[doc = ""] + #[doc = "Unlike `external_propose`, blacklisting has no effect on this and it may replace a"] + #[doc = "pre-scheduled `external_propose` call."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + external_propose_default { + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 7)] + #[doc = "Schedule the currently externally-proposed majority-carries referendum to be tabled"] + #[doc = "immediately. If there is no externally-proposed referendum currently, or if there is one"] + #[doc = "but it is not a majority-carries referendum then it fails."] + #[doc = ""] + #[doc = "The dispatch of this call must be `FastTrackOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The hash of the current external proposal."] + #[doc = "- `voting_period`: The period that is allowed for voting on this proposal. Increased to"] + #[doc = "\tMust be always greater than zero."] + #[doc = "\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`."] + #[doc = "- `delay`: The number of block after voting has ended in approval and this should be"] + #[doc = " enacted. This doesn't have a minimum amount."] + #[doc = ""] + #[doc = "Emits `Started`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + fast_track { + proposal_hash: ::subxt::utils::H256, + voting_period: ::core::primitive::u32, + delay: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Veto and blacklist the external proposal hash."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `VetoOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The preimage hash of the proposal to veto and blacklist."] + #[doc = ""] + #[doc = "Emits `Vetoed`."] + #[doc = ""] + #[doc = "Weight: `O(V + log(V))` where V is number of `existing vetoers`"] + veto_external { proposal_hash: ::subxt::utils::H256 }, + #[codec(index = 9)] + #[doc = "Remove a referendum."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Root_."] + #[doc = ""] + #[doc = "- `ref_index`: The index of the referendum to cancel."] + #[doc = ""] + #[doc = "# Weight: `O(1)`."] + cancel_referendum { + #[codec(compact)] + ref_index: ::core::primitive::u32, + }, + #[codec(index = 10)] + #[doc = "Delegate the voting power (with some given conviction) of the sending account."] + #[doc = ""] + #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] + #[doc = "time appropriate for the conviction's lock period."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] + #[doc = " - be delegating already; or"] + #[doc = " - have no voting activity (if there is, then it will need to be removed/consolidated"] + #[doc = " through `reap_vote` or `unvote`)."] + #[doc = ""] + #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."] + #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] + #[doc = " account is undelegated, the funds will be locked for the corresponding period."] + #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] + #[doc = " be more than the account's current balance."] + #[doc = ""] + #[doc = "Emits `Delegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of referendums the voter delegating to has"] + #[doc = " voted on. Weight is charged as if maximum votes."] + delegate { + to: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + conviction: + runtime_types::pallet_democracy::conviction::Conviction, + balance: ::core::primitive::u128, + }, + #[codec(index = 11)] + #[doc = "Undelegate the voting power of the sending account."] + #[doc = ""] + #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] + #[doc = "of the conviction with which the delegation was issued."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] + #[doc = "currently delegating."] + #[doc = ""] + #[doc = "Emits `Undelegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of referendums the voter delegating to has"] + #[doc = " voted on. Weight is charged as if maximum votes."] + undelegate, + #[codec(index = 12)] + #[doc = "Clears all public proposals."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Root_."] + #[doc = ""] + #[doc = "Weight: `O(1)`."] + clear_public_proposals, + #[codec(index = 13)] + #[doc = "Unlock tokens that have an expired lock."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account to remove the lock on."] + #[doc = ""] + #[doc = "Weight: `O(R)` with R number of vote of target."] + unlock { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 14)] + #[doc = "Remove a vote for a referendum."] + #[doc = ""] + #[doc = "If:"] + #[doc = "- the referendum was cancelled, or"] + #[doc = "- the referendum is ongoing, or"] + #[doc = "- the referendum has ended such that"] + #[doc = " - the vote of the account was in opposition to the result; or"] + #[doc = " - there was no conviction to the account's vote; or"] + #[doc = " - the account made a split vote"] + #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] + #[doc = "funds being available."] + #[doc = ""] + #[doc = "If, however, the referendum has ended and:"] + #[doc = "- it finished corresponding to the vote of the account, and"] + #[doc = "- the account made a standard vote with conviction, and"] + #[doc = "- the lock period of the conviction is not over"] + #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] + #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] + #[doc = "of both the amount locked and the time is it locked for)."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] + #[doc = "registered for referendum `index`."] + #[doc = ""] + #[doc = "- `index`: The index of referendum of the vote to be removed."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] + remove_vote { index: ::core::primitive::u32 }, + #[codec(index = 15)] + #[doc = "Remove a vote for a referendum."] + #[doc = ""] + #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] + #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] + #[doc = "either because the referendum was cancelled, because the voter lost the referendum or"] + #[doc = "because the conviction period is over."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account of the vote to be removed; this account must have voted for"] + #[doc = " referendum `index`."] + #[doc = "- `index`: The index of referendum of the vote to be removed."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] + remove_other_vote { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + index: ::core::primitive::u32, + }, + #[codec(index = 16)] + #[doc = "Permanently place a proposal into the blacklist. This prevents it from ever being"] + #[doc = "proposed again."] + #[doc = ""] + #[doc = "If called on a queued public or external proposal, then this will result in it being"] + #[doc = "removed. If the `ref_index` supplied is an active referendum with the proposal hash,"] + #[doc = "then it will be cancelled."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `BlacklistOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The proposal hash to blacklist permanently."] + #[doc = "- `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be"] + #[doc = "cancelled."] + #[doc = ""] + #[doc = "Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a"] + #[doc = " reasonable value)."] + blacklist { + proposal_hash: ::subxt::utils::H256, + maybe_ref_index: ::core::option::Option<::core::primitive::u32>, + }, + #[codec(index = 17)] + #[doc = "Remove a proposal."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `CancelProposalOrigin`."] + #[doc = ""] + #[doc = "- `prop_index`: The index of the proposal to cancel."] + #[doc = ""] + #[doc = "Weight: `O(p)` where `p = PublicProps::::decode_len()`"] + cancel_proposal { + #[codec(compact)] + prop_index: ::core::primitive::u32, + }, + #[codec(index = 18)] + #[doc = "Set or clear a metadata of a proposal or a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must correspond to the `MetadataOwner`."] + #[doc = " - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`"] + #[doc = " threshold."] + #[doc = " - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`"] + #[doc = " threshold."] + #[doc = " - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`"] + #[doc = " threshold."] + #[doc = " - `Signed` by a creator for a public proposal."] + #[doc = " - `Signed` to clear a metadata for a finished referendum."] + #[doc = " - `Root` to set a metadata for an ongoing referendum."] + #[doc = "- `owner`: an identifier of a metadata owner."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] + set_metadata { + owner: runtime_types::pallet_democracy::types::MetadataOwner, + maybe_hash: ::core::option::Option<::subxt::utils::H256>, + }, + } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum MetadataOwner { + #[codec(index = 0)] + External, + #[codec(index = 1)] + Proposal(::core::primitive::u32), + #[codec(index = 2)] + Referendum(::core::primitive::u32), + } + } + pub mod vote { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum AccountVote<_0> { + #[codec(index = 0)] + Standard { + vote: runtime_types::pallet_democracy::vote::Vote, + balance: _0, + }, + #[codec(index = 1)] + Split { aye: _0, nay: _0 }, + } + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Vote(pub ::core::primitive::u8); + } + } + pub mod pallet_election_provider_multi_phase { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Submit a solution for the unsigned phase."] # [doc = ""] # [doc = "The dispatch origin fo this call must be __none__."] # [doc = ""] # [doc = "This submission is checked on the fly. Moreover, this unsigned solution is only"] # [doc = "validated when submitted to the pool from the **local** node. Effectively, this means"] # [doc = "that only active validators can submit this transaction when authoring a block (similar"] # [doc = "to an inherent)."] # [doc = ""] # [doc = "To prevent any incorrect solution (and thus wasted time/weight), this transaction will"] # [doc = "panic if the solution submitted by the validator is invalid in any way, effectively"] # [doc = "putting their authoring reward at risk."] # [doc = ""] # [doc = "No deposit or reward is associated with this submission."] submit_unsigned { raw_solution : :: std :: boxed :: Box < runtime_types :: pallet_election_provider_multi_phase :: RawSolution < runtime_types :: kitchensink_runtime :: NposSolution16 > > , witness : runtime_types :: pallet_election_provider_multi_phase :: SolutionOrSnapshotSize , } , # [codec (index = 1)] # [doc = "Set a new value for `MinimumUntrustedScore`."] # [doc = ""] # [doc = "Dispatch origin must be aligned with `T::ForceOrigin`."] # [doc = ""] # [doc = "This check can be turned off by setting the value to `None`."] set_minimum_untrusted_score { maybe_next_score : :: core :: option :: Option < runtime_types :: sp_npos_elections :: ElectionScore > , } , # [codec (index = 2)] # [doc = "Set a solution in the queue, to be handed out to the client of this pallet in the next"] # [doc = "call to `ElectionProvider::elect`."] # [doc = ""] # [doc = "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`."] # [doc = ""] # [doc = "The solution is not checked for any feasibility and is assumed to be trustworthy, as any"] # [doc = "feasibility check itself can in principle cause the election process to fail (due to"] # [doc = "memory/weight constrains)."] set_emergency_election_result { supports : :: std :: vec :: Vec < (:: subxt :: utils :: AccountId32 , runtime_types :: sp_npos_elections :: Support < :: subxt :: utils :: AccountId32 > ,) > , } , # [codec (index = 3)] # [doc = "Submit a solution for the signed phase."] # [doc = ""] # [doc = "The dispatch origin fo this call must be __signed__."] # [doc = ""] # [doc = "The solution is potentially queued, based on the claimed score and processed at the end"] # [doc = "of the signed phase."] # [doc = ""] # [doc = "A deposit is reserved and recorded for the solution. Based on the outcome, the solution"] # [doc = "might be rewarded, slashed, or get all or a part of the deposit back."] submit { raw_solution : :: std :: boxed :: Box < runtime_types :: pallet_election_provider_multi_phase :: RawSolution < runtime_types :: kitchensink_runtime :: NposSolution16 > > , } , # [codec (index = 4)] # [doc = "Trigger the governance fallback."] # [doc = ""] # [doc = "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to"] # [doc = "calling [`Call::set_emergency_election_result`]."] governance_fallback { maybe_max_voters : :: core :: option :: Option < :: core :: primitive :: u32 > , maybe_max_targets : :: core :: option :: Option < :: core :: primitive :: u32 > , } , } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct RawSolution<_0> { + pub solution: _0, + pub score: runtime_types::sp_npos_elections::ElectionScore, + pub round: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct SolutionOrSnapshotSize { + #[codec(compact)] + pub voters: ::core::primitive::u32, + #[codec(compact)] + pub targets: ::core::primitive::u32, + } + } + pub mod pallet_elections_phragmen { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Vote for a set of candidates for the upcoming round of election. This can be called to"] + #[doc = "set the initial votes, or update already existing votes."] + #[doc = ""] + #[doc = "Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is"] + #[doc = "reserved. The deposit is based on the number of votes and can be updated over time."] + #[doc = ""] + #[doc = "The `votes` should:"] + #[doc = " - not be empty."] + #[doc = " - be less than the number of possible candidates. Note that all current members and"] + #[doc = " runners-up are also automatically candidates for the next round."] + #[doc = ""] + #[doc = "If `value` is more than `who`'s free balance, then the maximum of the two is used."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed."] + #[doc = ""] + #[doc = "### Warning"] + #[doc = ""] + #[doc = "It is the responsibility of the caller to **NOT** place all of their balance into the"] + #[doc = "lock and keep some for further operations."] + vote { + votes: ::std::vec::Vec<::subxt::utils::AccountId32>, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 1)] + #[doc = "Remove `origin` as a voter."] + #[doc = ""] + #[doc = "This removes the lock and returns the deposit."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed and be a voter."] + remove_voter, + #[codec(index = 2)] + #[doc = "Submit oneself for candidacy. A fixed amount of deposit is recorded."] + #[doc = ""] + #[doc = "All candidates are wiped at the end of the term. They either become a member/runner-up,"] + #[doc = "or leave the system while their deposit is slashed."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed."] + #[doc = ""] + #[doc = "### Warning"] + #[doc = ""] + #[doc = "Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]"] + #[doc = "to get their deposit back. Losing the spot in an election will always lead to a slash."] + #[doc = ""] + #[doc = "The number of current candidates must be provided as witness data."] + #[doc = "## Complexity"] + #[doc = "O(C + log(C)) where C is candidate_count."] + submit_candidacy { + #[codec(compact)] + candidate_count: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Renounce one's intention to be a candidate for the next election round. 3 potential"] + #[doc = "outcomes exist:"] + #[doc = ""] + #[doc = "- `origin` is a candidate and not elected in any set. In this case, the deposit is"] + #[doc = " unreserved, returned and origin is removed as a candidate."] + #[doc = "- `origin` is a current runner-up. In this case, the deposit is unreserved, returned and"] + #[doc = " origin is removed as a runner-up."] + #[doc = "- `origin` is a current member. In this case, the deposit is unreserved and origin is"] + #[doc = " removed as a member, consequently not being a candidate for the next round anymore."] + #[doc = " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they"] + #[doc = " are immediately used. If the prime is renouncing, then no prime will exist until the"] + #[doc = " next round."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed, and have one of the above roles."] + #[doc = "The type of renouncing must be provided as witness data."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = " - Renouncing::Candidate(count): O(count + log(count))"] + #[doc = " - Renouncing::Member: O(1)"] + #[doc = " - Renouncing::RunnerUp: O(1)"] + renounce_candidacy { + renouncing: runtime_types::pallet_elections_phragmen::Renouncing, + }, + #[codec(index = 4)] + #[doc = "Remove a particular member from the set. This is effective immediately and the bond of"] + #[doc = "the outgoing member is slashed."] + #[doc = ""] + #[doc = "If a runner-up is available, then the best runner-up will be removed and replaces the"] + #[doc = "outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is"] + #[doc = "started, else, nothing happens."] + #[doc = ""] + #[doc = "If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,"] + #[doc = "it is returned."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be root."] + #[doc = ""] + #[doc = "Note that this does not affect the designated block number of the next election."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Check details of remove_and_replace_member() and do_phragmen()."] + remove_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + slash_bond: ::core::primitive::bool, + rerun_election: ::core::primitive::bool, + }, + #[codec(index = 5)] + #[doc = "Clean all voters who are defunct (i.e. they do not serve any purpose at all). The"] + #[doc = "deposit of the removed voters are returned."] + #[doc = ""] + #[doc = "This is an root function to be used only for cleaning the state."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be root."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Check is_defunct_voter() details."] + clean_defunct_voters { + num_voters: ::core::primitive::u32, + num_defunct: ::core::primitive::u32, + }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Renouncing { + #[codec(index = 0)] + Member, + #[codec(index = 1)] + RunnerUp, + #[codec(index = 2)] + Candidate(#[codec(compact)] ::core::primitive::u32), + } + } + pub mod pallet_fast_unstake { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Register oneself for fast-unstake."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed by the controller account, similar to"] + #[doc = "`staking::unbond`."] + #[doc = ""] + #[doc = "The stash associated with the origin must have no ongoing unlocking chunks. If"] + #[doc = "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash"] + #[doc = "to be checked in further blocks."] + #[doc = ""] + #[doc = "If by the time this is called, the stash is actually eligible for fast-unstake, then"] + #[doc = "they are guaranteed to remain eligible, because the call will chill them as well."] + #[doc = ""] + #[doc = "If the check works, the entire staking data is removed, i.e. the stash is fully"] + #[doc = "unstaked."] + #[doc = ""] + #[doc = "If the check fails, the stash remains chilled and waiting for being unbonded as in with"] + #[doc = "the normal staking system, but they lose part of their unbonding chunks due to consuming"] + #[doc = "the chain's resources."] + register_fast_unstake, + #[codec(index = 1)] + #[doc = "Deregister oneself from the fast-unstake."] + #[doc = ""] + #[doc = "This is useful if one is registered, they are still waiting, and they change their mind."] + #[doc = ""] + #[doc = "Note that the associated stash is still fully unbonded and chilled as a consequence of"] + #[doc = "calling `register_fast_unstake`. This should probably be followed by a call to"] + #[doc = "`Staking::rebond`."] + deregister, + #[codec(index = 2)] + #[doc = "Control the operation of this pallet."] + #[doc = ""] + #[doc = "Dispatch origin must be signed by the [`Config::ControlOrigin`]."] + control { + eras_to_check: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_glutton { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Initializes the pallet by writing into `TrashData`."] + #[doc = ""] + #[doc = "Only callable by Root. A good default for `trash_count` is `5_000`."] + initialize_pallet { + new_count: ::core::primitive::u32, + witness_count: ::core::option::Option<::core::primitive::u32>, + }, + #[codec(index = 1)] + #[doc = "Set the `Compute` storage value that determines how much of the"] + #[doc = "block's weight `ref_time` to use during `on_idle`."] + #[doc = ""] + #[doc = "Only callable by Root."] + set_compute { + compute: runtime_types::sp_arithmetic::per_things::Perbill, + }, + #[codec(index = 2)] + #[doc = "Set the `Storage` storage value that determines the PoV size usage"] + #[doc = "for each block."] + #[doc = ""] + #[doc = "Only callable by Root."] + set_storage { + storage: runtime_types::sp_arithmetic::per_things::Perbill, + }, + } + } + } + pub mod pallet_grandpa { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + report_equivocation { + equivocation_proof: ::std::boxed::Box< + runtime_types::sp_consensus_grandpa::EquivocationProof< + ::subxt::utils::H256, + ::core::primitive::u32, + >, + >, + key_owner_proof: runtime_types::sp_session::MembershipProof, + }, + #[codec(index = 1)] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + report_equivocation_unsigned { + equivocation_proof: ::std::boxed::Box< + runtime_types::sp_consensus_grandpa::EquivocationProof< + ::subxt::utils::H256, + ::core::primitive::u32, + >, + >, + key_owner_proof: runtime_types::sp_session::MembershipProof, + }, + #[codec(index = 2)] + #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."] + #[doc = ""] + #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"] + #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"] + #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."] + #[doc = "The block production rate (which may be slowed down because of finality lagging) should"] + #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"] + #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"] + #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"] + #[doc = "block of all validators of the new authority set."] + #[doc = ""] + #[doc = "Only callable by root."] + note_stalled { + delay: ::core::primitive::u32, + best_finalized_block_number: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_identity { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Identity pallet declaration."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Add a registrar to the system."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."] + #[doc = ""] + #[doc = "- `account`: the account of the registrar."] + #[doc = ""] + #[doc = "Emits `RegistrarAdded` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)` where `R` registrar-count (governance-bounded and code-bounded)."] + add_registrar { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Set an account's identity information and reserve the appropriate deposit."] + #[doc = ""] + #[doc = "If the account already has identity information, the deposit is taken as part payment"] + #[doc = "for the new deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `info`: The identity information."] + #[doc = ""] + #[doc = "Emits `IdentitySet` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(X + X' + R)`"] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)"] + #[doc = " - where `R` judgements-count (registrar-count-bounded)"] + set_identity { + info: ::std::boxed::Box< + runtime_types::pallet_identity::types::IdentityInfo, + >, + }, + #[codec(index = 2)] + #[doc = "Set the sub-accounts of the sender."] + #[doc = ""] + #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"] + #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "- `subs`: The identity's (new) sub-accounts."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(P + S)`"] + #[doc = " - where `P` old-subs-count (hard- and deposit-bounded)."] + #[doc = " - where `S` subs-count (hard- and deposit-bounded)."] + set_subs { + subs: ::std::vec::Vec<( + ::subxt::utils::AccountId32, + runtime_types::pallet_identity::types::Data, + )>, + }, + #[codec(index = 3)] + #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."] + #[doc = ""] + #[doc = "Payment: All reserved balances on the account are returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "Emits `IdentityCleared` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + S + X)`"] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `S` subs-count (hard- and deposit-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + clear_identity, + #[codec(index = 4)] + #[doc = "Request a judgement from a registrar."] + #[doc = ""] + #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"] + #[doc = "given."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."] + #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] + #[doc = ""] + #[doc = "```nocompile"] + #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "```"] + #[doc = ""] + #[doc = "Emits `JudgementRequested` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + X)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + request_judgement { + #[codec(compact)] + reg_index: ::core::primitive::u32, + #[codec(compact)] + max_fee: ::core::primitive::u128, + }, + #[codec(index = 5)] + #[doc = "Cancel a previous request."] + #[doc = ""] + #[doc = "Payment: A previously reserved deposit is returned on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."] + #[doc = ""] + #[doc = "Emits `JudgementUnrequested` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + X)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + cancel_request { reg_index: ::core::primitive::u32 }, + #[codec(index = 6)] + #[doc = "Set the fee required for a judgement to be requested from a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fee`: the new fee."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + set_fee { + #[codec(compact)] + index: ::core::primitive::u32, + #[codec(compact)] + fee: ::core::primitive::u128, + }, + #[codec(index = 7)] + #[doc = "Change the account associated with a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `new`: the new account ID."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + set_account_id { + #[codec(compact)] + index: ::core::primitive::u32, + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 8)] + #[doc = "Set the field information for a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fields`: the fields that the registrar concerns themselves with."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + set_fields { + #[codec(compact)] + index: ::core::primitive::u32, + fields: runtime_types::pallet_identity::types::BitFlags< + runtime_types::pallet_identity::types::IdentityField, + >, + }, + #[codec(index = 9)] + #[doc = "Provide a judgement for an account's identity."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `reg_index`."] + #[doc = ""] + #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."] + #[doc = "- `identity`: The hash of the [`IdentityInfo`] for that the judgement is provided."] + #[doc = ""] + #[doc = "Emits `JudgementGiven` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + X)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + provide_judgement { + #[codec(compact)] + reg_index: ::core::primitive::u32, + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + judgement: runtime_types::pallet_identity::types::Judgement< + ::core::primitive::u128, + >, + identity: ::subxt::utils::H256, + }, + #[codec(index = 10)] + #[doc = "Remove an account's identity and sub-account information and slash the deposits."] + #[doc = ""] + #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"] + #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"] + #[doc = "manually using `cancel_request`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] + #[doc = ""] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = ""] + #[doc = "Emits `IdentityKilled` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + S + X)`"] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `S` subs-count (hard- and deposit-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + kill_identity { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 11)] + #[doc = "Add the given account to the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] + add_sub { + sub: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + data: runtime_types::pallet_identity::types::Data, + }, + #[codec(index = 12)] + #[doc = "Alter the associated name of the given sub-account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] + rename_sub { + sub: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + data: runtime_types::pallet_identity::types::Data, + }, + #[codec(index = 13)] + #[doc = "Remove the given account from the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] + remove_sub { + sub: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 14)] + #[doc = "Remove the sender as a sub-account."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender (*not* the original depositor)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "super-identity."] + #[doc = ""] + #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"] + #[doc = "controller of an account is maliciously registered as a sub-account."] + quit_sub, + } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BitFlags<_0>( + pub ::core::primitive::u64, + #[codec(skip)] pub ::core::marker::PhantomData<_0>, + ); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Data { + #[codec(index = 0)] + None, + #[codec(index = 1)] + Raw0([::core::primitive::u8; 0usize]), + #[codec(index = 2)] + Raw1([::core::primitive::u8; 1usize]), + #[codec(index = 3)] + Raw2([::core::primitive::u8; 2usize]), + #[codec(index = 4)] + Raw3([::core::primitive::u8; 3usize]), + #[codec(index = 5)] + Raw4([::core::primitive::u8; 4usize]), + #[codec(index = 6)] + Raw5([::core::primitive::u8; 5usize]), + #[codec(index = 7)] + Raw6([::core::primitive::u8; 6usize]), + #[codec(index = 8)] + Raw7([::core::primitive::u8; 7usize]), + #[codec(index = 9)] + Raw8([::core::primitive::u8; 8usize]), + #[codec(index = 10)] + Raw9([::core::primitive::u8; 9usize]), + #[codec(index = 11)] + Raw10([::core::primitive::u8; 10usize]), + #[codec(index = 12)] + Raw11([::core::primitive::u8; 11usize]), + #[codec(index = 13)] + Raw12([::core::primitive::u8; 12usize]), + #[codec(index = 14)] + Raw13([::core::primitive::u8; 13usize]), + #[codec(index = 15)] + Raw14([::core::primitive::u8; 14usize]), + #[codec(index = 16)] + Raw15([::core::primitive::u8; 15usize]), + #[codec(index = 17)] + Raw16([::core::primitive::u8; 16usize]), + #[codec(index = 18)] + Raw17([::core::primitive::u8; 17usize]), + #[codec(index = 19)] + Raw18([::core::primitive::u8; 18usize]), + #[codec(index = 20)] + Raw19([::core::primitive::u8; 19usize]), + #[codec(index = 21)] + Raw20([::core::primitive::u8; 20usize]), + #[codec(index = 22)] + Raw21([::core::primitive::u8; 21usize]), + #[codec(index = 23)] + Raw22([::core::primitive::u8; 22usize]), + #[codec(index = 24)] + Raw23([::core::primitive::u8; 23usize]), + #[codec(index = 25)] + Raw24([::core::primitive::u8; 24usize]), + #[codec(index = 26)] + Raw25([::core::primitive::u8; 25usize]), + #[codec(index = 27)] + Raw26([::core::primitive::u8; 26usize]), + #[codec(index = 28)] + Raw27([::core::primitive::u8; 27usize]), + #[codec(index = 29)] + Raw28([::core::primitive::u8; 28usize]), + #[codec(index = 30)] + Raw29([::core::primitive::u8; 29usize]), + #[codec(index = 31)] + Raw30([::core::primitive::u8; 30usize]), + #[codec(index = 32)] + Raw31([::core::primitive::u8; 31usize]), + #[codec(index = 33)] + Raw32([::core::primitive::u8; 32usize]), + #[codec(index = 34)] + BlakeTwo256([::core::primitive::u8; 32usize]), + #[codec(index = 35)] + Sha256([::core::primitive::u8; 32usize]), + #[codec(index = 36)] + Keccak256([::core::primitive::u8; 32usize]), + #[codec(index = 37)] + ShaThree256([::core::primitive::u8; 32usize]), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum IdentityField { + #[codec(index = 1)] + Display, + #[codec(index = 2)] + Legal, + #[codec(index = 4)] + Web, + #[codec(index = 8)] + Riot, + #[codec(index = 16)] + Email, + #[codec(index = 32)] + PgpFingerprint, + #[codec(index = 64)] + Image, + #[codec(index = 128)] + Twitter, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct IdentityInfo { + pub additional: + runtime_types::bounded_collections::bounded_vec::BoundedVec<( + runtime_types::pallet_identity::types::Data, + runtime_types::pallet_identity::types::Data, + )>, + pub display: runtime_types::pallet_identity::types::Data, + pub legal: runtime_types::pallet_identity::types::Data, + pub web: runtime_types::pallet_identity::types::Data, + pub riot: runtime_types::pallet_identity::types::Data, + pub email: runtime_types::pallet_identity::types::Data, + pub pgp_fingerprint: + ::core::option::Option<[::core::primitive::u8; 20usize]>, + pub image: runtime_types::pallet_identity::types::Data, + pub twitter: runtime_types::pallet_identity::types::Data, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Judgement<_0> { + #[codec(index = 0)] + Unknown, + #[codec(index = 1)] + FeePaid(_0), + #[codec(index = 2)] + Reasonable, + #[codec(index = 3)] + KnownGood, + #[codec(index = 4)] + OutOfDate, + #[codec(index = 5)] + LowQuality, + #[codec(index = 6)] + Erroneous, + } + } + } + pub mod pallet_im_online { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "## Complexity:"] # [doc = "- `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is length of"] # [doc = " `heartbeat.network_state.external_address`"] # [doc = " - `O(K)`: decoding of length `K`"] # [doc = " - `O(E)`: decoding/encoding of length `E`"] heartbeat { heartbeat : runtime_types :: pallet_im_online :: Heartbeat < :: core :: primitive :: u32 > , signature : runtime_types :: pallet_im_online :: sr25519 :: app_sr25519 :: Signature , } , } + } + pub mod sr25519 { + use super::runtime_types; + pub mod app_sr25519 { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub runtime_types::sp_core::sr25519::Public); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub runtime_types::sp_core::sr25519::Signature); + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Heartbeat<_0> { + pub block_number: _0, + pub network_state: runtime_types::sp_core::offchain::OpaqueNetworkState, + pub session_index: _0, + pub authority_index: _0, + pub validators_len: _0, + } + } + pub mod pallet_indices { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Assign an previously unassigned index."] + #[doc = ""] + #[doc = "Payment: `Deposit` is reserved from the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be claimed. This must not be in use."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + claim { index: ::core::primitive::u32 }, + #[codec(index = 1)] + #[doc = "Assign an index already owned by the sender to another account. The balance reservation"] + #[doc = "is effectively transferred to the new account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + transfer { + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + index: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Free up an index owned by the sender."] + #[doc = ""] + #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."] + #[doc = ""] + #[doc = "- `index`: the index to be freed. This must be owned by the sender."] + #[doc = ""] + #[doc = "Emits `IndexFreed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + free { index: ::core::primitive::u32 }, + #[codec(index = 3)] + #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"] + #[doc = "held, then any deposit is reimbursed to its current owner."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `index`: the index to be (re-)assigned."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + force_transfer { + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + index: ::core::primitive::u32, + freeze: ::core::primitive::bool, + }, + #[codec(index = 4)] + #[doc = "Freeze an index so it will always point to the sender account. This consumes the"] + #[doc = "deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"] + #[doc = "non-frozen account `index`."] + #[doc = ""] + #[doc = "- `index`: the index to be frozen in place."] + #[doc = ""] + #[doc = "Emits `IndexFrozen` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + freeze { index: ::core::primitive::u32 }, + } + } + } + pub mod pallet_lottery { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Buy a ticket to enter the lottery."] + #[doc = ""] + #[doc = "This extrinsic acts as a passthrough function for `call`. In all"] + #[doc = "situations where `call` alone would succeed, this extrinsic should"] + #[doc = "succeed."] + #[doc = ""] + #[doc = "If `call` is successful, then we will attempt to purchase a ticket,"] + #[doc = "which may fail silently. To detect success of a ticket purchase, you"] + #[doc = "should listen for the `TicketBought` event."] + #[doc = ""] + #[doc = "This extrinsic must be called by a signed origin."] + buy_ticket { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Set calls in storage which can be used to purchase a lottery ticket."] + #[doc = ""] + #[doc = "This function only matters if you use the `ValidateCall` implementation"] + #[doc = "provided by this pallet, which uses storage to determine the valid calls."] + #[doc = ""] + #[doc = "This extrinsic must be called by the Manager origin."] + set_calls { + calls: ::std::vec::Vec< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 2)] + #[doc = "Start a lottery using the provided configuration."] + #[doc = ""] + #[doc = "This extrinsic must be called by the `ManagerOrigin`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = ""] + #[doc = "* `price`: The cost of a single ticket."] + #[doc = "* `length`: How long the lottery should run for starting at the current block."] + #[doc = "* `delay`: How long after the lottery end we should wait before picking a winner."] + #[doc = "* `repeat`: If the lottery should repeat when completed."] + start_lottery { + price: ::core::primitive::u128, + length: ::core::primitive::u32, + delay: ::core::primitive::u32, + repeat: ::core::primitive::bool, + }, + #[codec(index = 3)] + #[doc = "If a lottery is repeating, you can use this to stop the repeat."] + #[doc = "The lottery will continue to run to completion."] + #[doc = ""] + #[doc = "This extrinsic must be called by the `ManagerOrigin`."] + stop_repeat, + } + } + } + pub mod pallet_membership { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Add a member `who` to the set."] + #[doc = ""] + #[doc = "May only be called from `T::AddOrigin`."] + add_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Remove a member `who` from the set."] + #[doc = ""] + #[doc = "May only be called from `T::RemoveOrigin`."] + remove_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 2)] + #[doc = "Swap out one member `remove` for another `add`."] + #[doc = ""] + #[doc = "May only be called from `T::SwapOrigin`."] + #[doc = ""] + #[doc = "Prime membership is *not* passed from `remove` to `add`, if extant."] + swap_member { + remove: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + add: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 3)] + #[doc = "Change the membership to a new set, disregarding the existing membership. Be nice and"] + #[doc = "pass `members` pre-sorted."] + #[doc = ""] + #[doc = "May only be called from `T::ResetOrigin`."] + reset_members { + members: ::std::vec::Vec<::subxt::utils::AccountId32>, + }, + #[codec(index = 4)] + #[doc = "Swap out the sending member for some other key `new`."] + #[doc = ""] + #[doc = "May only be called from `Signed` origin of a current member."] + #[doc = ""] + #[doc = "Prime membership is passed from the origin account to `new`, if extant."] + change_key { + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 5)] + #[doc = "Set the prime member. Must be a current member."] + #[doc = ""] + #[doc = "May only be called from `T::PrimeOrigin`."] + set_prime { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 6)] + #[doc = "Remove the prime member if it exists."] + #[doc = ""] + #[doc = "May only be called from `T::PrimeOrigin`."] + clear_prime, + } + } + } + pub mod pallet_message_queue { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Remove a page which has no more messages remaining to be processed or is stale."] + reap_page { + message_origin: ::core::primitive::u32, + page_index: ::core::primitive::u32, + }, + #[codec(index = 1)] + #[doc = "Execute an overweight message."] + #[doc = ""] + #[doc = "Temporary processing errors will be propagated whereas permanent errors are treated"] + #[doc = "as success condition."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `message_origin`: The origin from which the message to be executed arrived."] + #[doc = "- `page`: The page in the queue in which the message to be executed is sitting."] + #[doc = "- `index`: The index into the queue of the message to be executed."] + #[doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"] + #[doc = " of the message."] + #[doc = ""] + #[doc = "Benchmark complexity considerations: O(index + weight_limit)."] + execute_overweight { + message_origin: ::core::primitive::u32, + page: ::core::primitive::u32, + index: ::core::primitive::u32, + weight_limit: runtime_types::sp_weights::weight_v2::Weight, + }, + } + } + } + pub mod pallet_multisig { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"] + #[doc = "multi-signature, but do not participate in the approval process."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."] + as_multi_threshold_1 { + other_signatories: ::std::vec::Vec<::subxt::utils::AccountId32>, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "If there are enough, then dispatch the call."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "NOTE: Unless this is the final approval, you will generally want to use"] + #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"] + #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"] + #[doc = "may be found in the deposited `MultisigExecuted` event."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S + Z + Call)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- The weight of the `call`."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] + as_multi { + threshold: ::core::primitive::u16, + other_signatories: ::std::vec::Vec<::subxt::utils::AccountId32>, + maybe_timepoint: ::core::option::Option< + runtime_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + max_weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 2)] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] + approve_as_multi { + threshold: ::core::primitive::u16, + other_signatories: ::std::vec::Vec<::subxt::utils::AccountId32>, + maybe_timepoint: ::core::option::Option< + runtime_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + >, + call_hash: [::core::primitive::u8; 32usize], + max_weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 3)] + #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"] + #[doc = "for this operation will be unreserved on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"] + #[doc = "transaction for this dispatch."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- One event."] + #[doc = "- I/O: 1 read `O(S)`, one remove."] + #[doc = "- Storage: removes one item."] + cancel_as_multi { + threshold: ::core::primitive::u16, + other_signatories: ::std::vec::Vec<::subxt::utils::AccountId32>, + timepoint: runtime_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + call_hash: [::core::primitive::u8; 32usize], + }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Timepoint<_0> { + pub height: _0, + pub index: _0, + } + } + pub mod pallet_nfts { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Issue a new collection of non-fungible items from a public origin."] # [doc = ""] # [doc = "This new collection has no items initially and its owner is the origin."] # [doc = ""] # [doc = "The origin must be Signed and the sender must have sufficient funds free."] # [doc = ""] # [doc = "`ItemDeposit` funds of sender are reserved."] # [doc = ""] # [doc = "Parameters:"] # [doc = "- `admin`: The admin of this collection. The admin is the initial address of each"] # [doc = "member of the collection's admin team."] # [doc = ""] # [doc = "Emits `Created` event when successful."] # [doc = ""] # [doc = "Weight: `O(1)`"] create { admin : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , config : runtime_types :: pallet_nfts :: types :: CollectionConfig < :: core :: primitive :: u128 , :: core :: primitive :: u32 , :: core :: primitive :: u32 > , } , # [codec (index = 1)] # [doc = "Issue a new collection of non-fungible items from a privileged origin."] # [doc = ""] # [doc = "This new collection has no items initially."] # [doc = ""] # [doc = "The origin must conform to `ForceOrigin`."] # [doc = ""] # [doc = "Unlike `create`, no funds are reserved."] # [doc = ""] # [doc = "- `owner`: The owner of this collection of items. The owner has full superuser"] # [doc = " permissions over this item, but may later change and configure the permissions using"] # [doc = " `transfer_ownership` and `set_team`."] # [doc = ""] # [doc = "Emits `ForceCreated` event when successful."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_create { owner : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , config : runtime_types :: pallet_nfts :: types :: CollectionConfig < :: core :: primitive :: u128 , :: core :: primitive :: u32 , :: core :: primitive :: u32 > , } , # [codec (index = 2)] # [doc = "Destroy a collection of fungible items."] # [doc = ""] # [doc = "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the"] # [doc = "owner of the `collection`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection to be destroyed."] # [doc = "- `witness`: Information on the items minted in the collection. This must be"] # [doc = "correct."] # [doc = ""] # [doc = "Emits `Destroyed` event when successful."] # [doc = ""] # [doc = "Weight: `O(n + m)` where:"] # [doc = "- `n = witness.items`"] # [doc = "- `m = witness.item_metadatas`"] # [doc = "- `a = witness.attributes`"] destroy { collection : :: core :: primitive :: u32 , witness : runtime_types :: pallet_nfts :: types :: DestroyWitness , } , # [codec (index = 3)] # [doc = "Mint an item of a particular collection."] # [doc = ""] # [doc = "The origin must be Signed and the sender must be the Issuer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be minted."] # [doc = "- `item`: An identifier of the new item."] # [doc = "- `mint_to`: Account into which the item will be minted."] # [doc = "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned"] # [doc = " item_id from that collection needs to be provided within the witness data object."] # [doc = ""] # [doc = "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`."] # [doc = ""] # [doc = "Emits `Issued` event when successful."] # [doc = ""] # [doc = "Weight: `O(1)`"] mint { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , mint_to : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , witness_data : :: core :: option :: Option < runtime_types :: pallet_nfts :: types :: MintWitness < :: core :: primitive :: u32 > > , } , # [codec (index = 4)] # [doc = "Mint an item of a particular collection from a privileged origin."] # [doc = ""] # [doc = "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the"] # [doc = "Issuer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be minted."] # [doc = "- `item`: An identifier of the new item."] # [doc = "- `mint_to`: Account into which the item will be minted."] # [doc = "- `item_config`: A config of the new item."] # [doc = ""] # [doc = "Emits `Issued` event when successful."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_mint { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , mint_to : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , item_config : runtime_types :: pallet_nfts :: types :: ItemConfig , } , # [codec (index = 5)] # [doc = "Destroy a single item."] # [doc = ""] # [doc = "Origin must be Signed and the signing account must be either:"] # [doc = "- the Admin of the `collection`;"] # [doc = "- the Owner of the `item`;"] # [doc = ""] # [doc = "- `collection`: The collection of the item to be burned."] # [doc = "- `item`: The item to be burned."] # [doc = "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the"] # [doc = " item is owned by this value."] # [doc = ""] # [doc = "Emits `Burned` with the actual amount burned."] # [doc = ""] # [doc = "Weight: `O(1)`"] # [doc = "Modes: `check_owner.is_some()`."] burn { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , check_owner : :: core :: option :: Option < :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > > , } , # [codec (index = 6)] # [doc = "Move an item from the sender account to another."] # [doc = ""] # [doc = "Origin must be Signed and the signing account must be either:"] # [doc = "- the Admin of the `collection`;"] # [doc = "- the Owner of the `item`;"] # [doc = "- the approved delegate for the `item` (in this case, the approval is reset)."] # [doc = ""] # [doc = "Arguments:"] # [doc = "- `collection`: The collection of the item to be transferred."] # [doc = "- `item`: The item to be transferred."] # [doc = "- `dest`: The account to receive ownership of the item."] # [doc = ""] # [doc = "Emits `Transferred`."] # [doc = ""] # [doc = "Weight: `O(1)`"] transfer { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , dest : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 7)] # [doc = "Re-evaluate the deposits on some items."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the items to be reevaluated."] # [doc = "- `items`: The items of the collection whose deposits will be reevaluated."] # [doc = ""] # [doc = "NOTE: This exists as a best-effort function. Any items which are unknown or"] # [doc = "in the case that the owner account does not have reservable funds to pay for a"] # [doc = "deposit increase are ignored. Generally the owner isn't going to call this on items"] # [doc = "whose existing deposit is less than the refreshed deposit as it would only cost them,"] # [doc = "so it's of little consequence."] # [doc = ""] # [doc = "It will still return an error in the case that the collection is unknown or the signer"] # [doc = "is not permitted to call it."] # [doc = ""] # [doc = "Weight: `O(items.len())`"] redeposit { collection : :: core :: primitive :: u32 , items : :: std :: vec :: Vec < :: core :: primitive :: u32 > , } , # [codec (index = 8)] # [doc = "Disallow further unprivileged transfer of an item."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be changed."] # [doc = "- `item`: The item to become non-transferable."] # [doc = ""] # [doc = "Emits `ItemTransferLocked`."] # [doc = ""] # [doc = "Weight: `O(1)`"] lock_item_transfer { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , } , # [codec (index = 9)] # [doc = "Re-allow unprivileged transfer of an item."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be changed."] # [doc = "- `item`: The item to become transferable."] # [doc = ""] # [doc = "Emits `ItemTransferUnlocked`."] # [doc = ""] # [doc = "Weight: `O(1)`"] unlock_item_transfer { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , } , # [codec (index = 10)] # [doc = "Disallows specified settings for the whole collection."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection to be locked."] # [doc = "- `lock_settings`: The settings to be locked."] # [doc = ""] # [doc = "Note: it's possible to only lock(set) the setting, but not to unset it."] # [doc = "Emits `CollectionLocked`."] # [doc = ""] # [doc = "Weight: `O(1)`"] lock_collection { collection : :: core :: primitive :: u32 , lock_settings : runtime_types :: pallet_nfts :: types :: BitFlags < runtime_types :: pallet_nfts :: types :: CollectionSetting > , } , # [codec (index = 11)] # [doc = "Change the Owner of a collection."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection whose owner should be changed."] # [doc = "- `owner`: The new Owner of this collection. They must have called"] # [doc = " `set_accept_ownership` with `collection` in order for this operation to succeed."] # [doc = ""] # [doc = "Emits `OwnerChanged`."] # [doc = ""] # [doc = "Weight: `O(1)`"] transfer_ownership { collection : :: core :: primitive :: u32 , owner : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 12)] # [doc = "Change the Issuer, Admin and Freezer of a collection."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`collection`."] # [doc = ""] # [doc = "- `collection`: The collection whose team should be changed."] # [doc = "- `issuer`: The new Issuer of this collection."] # [doc = "- `admin`: The new Admin of this collection."] # [doc = "- `freezer`: The new Freezer of this collection."] # [doc = ""] # [doc = "Emits `TeamChanged`."] # [doc = ""] # [doc = "Weight: `O(1)`"] set_team { collection : :: core :: primitive :: u32 , issuer : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , admin : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , freezer : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 13)] # [doc = "Change the Owner of a collection."] # [doc = ""] # [doc = "Origin must be `ForceOrigin`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection."] # [doc = "- `owner`: The new Owner of this collection."] # [doc = ""] # [doc = "Emits `OwnerChanged`."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_collection_owner { collection : :: core :: primitive :: u32 , owner : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "Change the config of a collection."] # [doc = ""] # [doc = "Origin must be `ForceOrigin`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection."] # [doc = "- `config`: The new config of this collection."] # [doc = ""] # [doc = "Emits `CollectionConfigChanged`."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_collection_config { collection : :: core :: primitive :: u32 , config : runtime_types :: pallet_nfts :: types :: CollectionConfig < :: core :: primitive :: u128 , :: core :: primitive :: u32 , :: core :: primitive :: u32 > , } , # [codec (index = 15)] # [doc = "Approve an item to be transferred by a delegated third-party account."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`item`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be approved for delegated transfer."] # [doc = "- `item`: The item to be approved for delegated transfer."] # [doc = "- `delegate`: The account to delegate permission to transfer the item."] # [doc = "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the"] # [doc = "\tnumber of blocks after which the approval will expire"] # [doc = ""] # [doc = "Emits `TransferApproved` on success."] # [doc = ""] # [doc = "Weight: `O(1)`"] approve_transfer { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , delegate : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , maybe_deadline : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 16)] # [doc = "Cancel one of the transfer approvals for a specific item."] # [doc = ""] # [doc = "Origin must be either:"] # [doc = "- the `Force` origin;"] # [doc = "- `Signed` with the signer being the Admin of the `collection`;"] # [doc = "- `Signed` with the signer being the Owner of the `item`;"] # [doc = ""] # [doc = "Arguments:"] # [doc = "- `collection`: The collection of the item of whose approval will be cancelled."] # [doc = "- `item`: The item of the collection of whose approval will be cancelled."] # [doc = "- `delegate`: The account that is going to loose their approval."] # [doc = ""] # [doc = "Emits `ApprovalCancelled` on success."] # [doc = ""] # [doc = "Weight: `O(1)`"] cancel_approval { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , delegate : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 17)] # [doc = "Cancel all the approvals of a specific item."] # [doc = ""] # [doc = "Origin must be either:"] # [doc = "- the `Force` origin;"] # [doc = "- `Signed` with the signer being the Admin of the `collection`;"] # [doc = "- `Signed` with the signer being the Owner of the `item`;"] # [doc = ""] # [doc = "Arguments:"] # [doc = "- `collection`: The collection of the item of whose approvals will be cleared."] # [doc = "- `item`: The item of the collection of whose approvals will be cleared."] # [doc = ""] # [doc = "Emits `AllApprovalsCancelled` on success."] # [doc = ""] # [doc = "Weight: `O(1)`"] clear_all_transfer_approvals { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , } , # [codec (index = 18)] # [doc = "Disallows changing the metadata or attributes of the item."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`collection`."] # [doc = ""] # [doc = "- `collection`: The collection if the `item`."] # [doc = "- `item`: An item to be locked."] # [doc = "- `lock_metadata`: Specifies whether the metadata should be locked."] # [doc = "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace"] # [doc = " should be locked."] # [doc = ""] # [doc = "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace"] # [doc = "only. When the metadata or attributes are locked, it won't be possible the unlock them."] # [doc = ""] # [doc = "Emits `ItemPropertiesLocked`."] # [doc = ""] # [doc = "Weight: `O(1)`"] lock_item_properties { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , lock_metadata : :: core :: primitive :: bool , lock_attributes : :: core :: primitive :: bool , } , # [codec (index = 19)] # [doc = "Set an attribute for a collection or item."] # [doc = ""] # [doc = "Origin must be Signed and must conform to the namespace ruleset:"] # [doc = "- `CollectionOwner` namespace could be modified by the `collection` owner only;"] # [doc = "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`"] # [doc = " should be set in that case;"] # [doc = "- `Account(AccountId)` namespace could be modified only when the `origin` was given a"] # [doc = " permission to do so;"] # [doc = ""] # [doc = "The funds of `origin` are reserved according to the formula:"] # [doc = "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into"] # [doc = "account any already reserved funds."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose item's metadata to set."] # [doc = "- `maybe_item`: The identifier of the item whose metadata to set."] # [doc = "- `namespace`: Attribute's namespace."] # [doc = "- `key`: The key of the attribute."] # [doc = "- `value`: The value to which to set the attribute."] # [doc = ""] # [doc = "Emits `AttributeSet`."] # [doc = ""] # [doc = "Weight: `O(1)`"] set_attribute { collection : :: core :: primitive :: u32 , maybe_item : :: core :: option :: Option < :: core :: primitive :: u32 > , namespace : runtime_types :: frame_support :: traits :: tokens :: misc :: AttributeNamespace < :: subxt :: utils :: AccountId32 > , key : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , value : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 20)] # [doc = "Force-set an attribute for a collection or item."] # [doc = ""] # [doc = "Origin must be `ForceOrigin`."] # [doc = ""] # [doc = "If the attribute already exists and it was set by another account, the deposit"] # [doc = "will be returned to the previous owner."] # [doc = ""] # [doc = "- `set_as`: An optional owner of the attribute."] # [doc = "- `collection`: The identifier of the collection whose item's metadata to set."] # [doc = "- `maybe_item`: The identifier of the item whose metadata to set."] # [doc = "- `namespace`: Attribute's namespace."] # [doc = "- `key`: The key of the attribute."] # [doc = "- `value`: The value to which to set the attribute."] # [doc = ""] # [doc = "Emits `AttributeSet`."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_set_attribute { set_as : :: core :: option :: Option < :: subxt :: utils :: AccountId32 > , collection : :: core :: primitive :: u32 , maybe_item : :: core :: option :: Option < :: core :: primitive :: u32 > , namespace : runtime_types :: frame_support :: traits :: tokens :: misc :: AttributeNamespace < :: subxt :: utils :: AccountId32 > , key : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , value : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 21)] # [doc = "Clear an attribute for a collection or item."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "attribute."] # [doc = ""] # [doc = "Any deposit is freed for the collection's owner."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose item's metadata to clear."] # [doc = "- `maybe_item`: The identifier of the item whose metadata to clear."] # [doc = "- `namespace`: Attribute's namespace."] # [doc = "- `key`: The key of the attribute."] # [doc = ""] # [doc = "Emits `AttributeCleared`."] # [doc = ""] # [doc = "Weight: `O(1)`"] clear_attribute { collection : :: core :: primitive :: u32 , maybe_item : :: core :: option :: Option < :: core :: primitive :: u32 > , namespace : runtime_types :: frame_support :: traits :: tokens :: misc :: AttributeNamespace < :: subxt :: utils :: AccountId32 > , key : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 22)] # [doc = "Approve item's attributes to be changed by a delegated third-party account."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `item`."] # [doc = ""] # [doc = "- `collection`: A collection of the item."] # [doc = "- `item`: The item that holds attributes."] # [doc = "- `delegate`: The account to delegate permission to change attributes of the item."] # [doc = ""] # [doc = "Emits `ItemAttributesApprovalAdded` on success."] approve_item_attributes { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , delegate : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 23)] # [doc = "Cancel the previously provided approval to change item's attributes."] # [doc = "All the previously set attributes by the `delegate` will be removed."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `item`."] # [doc = ""] # [doc = "- `collection`: Collection that the item is contained within."] # [doc = "- `item`: The item that holds attributes."] # [doc = "- `delegate`: The previously approved account to remove."] # [doc = ""] # [doc = "Emits `ItemAttributesApprovalRemoved` on success."] cancel_item_attributes_approval { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , delegate : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , witness : runtime_types :: pallet_nfts :: types :: CancelAttributesApprovalWitness , } , # [codec (index = 24)] # [doc = "Set the metadata for an item."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`collection`."] # [doc = ""] # [doc = "If the origin is Signed, then funds of signer are reserved according to the formula:"] # [doc = "`MetadataDepositBase + DepositPerByte * data.len` taking into"] # [doc = "account any already reserved funds."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose item's metadata to set."] # [doc = "- `item`: The identifier of the item whose metadata to set."] # [doc = "- `data`: The general information of this item. Limited in length by `StringLimit`."] # [doc = ""] # [doc = "Emits `ItemMetadataSet`."] # [doc = ""] # [doc = "Weight: `O(1)`"] set_metadata { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , data : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 25)] # [doc = "Clear the metadata for an item."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`collection`."] # [doc = ""] # [doc = "Any deposit is freed for the collection's owner."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose item's metadata to clear."] # [doc = "- `item`: The identifier of the item whose metadata to clear."] # [doc = ""] # [doc = "Emits `ItemMetadataCleared`."] # [doc = ""] # [doc = "Weight: `O(1)`"] clear_metadata { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , } , # [codec (index = 26)] # [doc = "Set the metadata for a collection."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] # [doc = "the `collection`."] # [doc = ""] # [doc = "If the origin is `Signed`, then funds of signer are reserved according to the formula:"] # [doc = "`MetadataDepositBase + DepositPerByte * data.len` taking into"] # [doc = "account any already reserved funds."] # [doc = ""] # [doc = "- `collection`: The identifier of the item whose metadata to update."] # [doc = "- `data`: The general information of this item. Limited in length by `StringLimit`."] # [doc = ""] # [doc = "Emits `CollectionMetadataSet`."] # [doc = ""] # [doc = "Weight: `O(1)`"] set_collection_metadata { collection : :: core :: primitive :: u32 , data : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 27)] # [doc = "Clear the metadata for a collection."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] # [doc = "the `collection`."] # [doc = ""] # [doc = "Any deposit is freed for the collection's owner."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose metadata to clear."] # [doc = ""] # [doc = "Emits `CollectionMetadataCleared`."] # [doc = ""] # [doc = "Weight: `O(1)`"] clear_collection_metadata { collection : :: core :: primitive :: u32 , } , # [codec (index = 28)] # [doc = "Set (or reset) the acceptance of ownership for a particular account."] # [doc = ""] # [doc = "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a"] # [doc = "provider reference."] # [doc = ""] # [doc = "- `maybe_collection`: The identifier of the collection whose ownership the signer is"] # [doc = " willing to accept, or if `None`, an indication that the signer is willing to accept no"] # [doc = " ownership transferal."] # [doc = ""] # [doc = "Emits `OwnershipAcceptanceChanged`."] set_accept_ownership { maybe_collection : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 29)] # [doc = "Set the maximum number of items a collection could have."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] # [doc = "the `collection`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection to change."] # [doc = "- `max_supply`: The maximum number of items a collection could have."] # [doc = ""] # [doc = "Emits `CollectionMaxSupplySet` event when successful."] set_collection_max_supply { collection : :: core :: primitive :: u32 , max_supply : :: core :: primitive :: u32 , } , # [codec (index = 30)] # [doc = "Update mint settings."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] # [doc = "the `collection`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection to change."] # [doc = "- `mint_settings`: The new mint settings."] # [doc = ""] # [doc = "Emits `CollectionMintSettingsUpdated` event when successful."] update_mint_settings { collection : :: core :: primitive :: u32 , mint_settings : runtime_types :: pallet_nfts :: types :: MintSettings < :: core :: primitive :: u128 , :: core :: primitive :: u32 , :: core :: primitive :: u32 > , } , # [codec (index = 31)] # [doc = "Set (or reset) the price for an item."] # [doc = ""] # [doc = "Origin must be Signed and must be the owner of the asset `item`."] # [doc = ""] # [doc = "- `collection`: The collection of the item."] # [doc = "- `item`: The item to set the price for."] # [doc = "- `price`: The price for the item. Pass `None`, to reset the price."] # [doc = "- `buyer`: Restricts the buy operation to a specific account."] # [doc = ""] # [doc = "Emits `ItemPriceSet` on success if the price is not `None`."] # [doc = "Emits `ItemPriceRemoved` on success if the price is `None`."] set_price { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , price : :: core :: option :: Option < :: core :: primitive :: u128 > , whitelisted_buyer : :: core :: option :: Option < :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > > , } , # [codec (index = 32)] # [doc = "Allows to buy an item if it's up for sale."] # [doc = ""] # [doc = "Origin must be Signed and must not be the owner of the `item`."] # [doc = ""] # [doc = "- `collection`: The collection of the item."] # [doc = "- `item`: The item the sender wants to buy."] # [doc = "- `bid_price`: The price the sender is willing to pay."] # [doc = ""] # [doc = "Emits `ItemBought` on success."] buy_item { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , bid_price : :: core :: primitive :: u128 , } , # [codec (index = 33)] # [doc = "Allows to pay the tips."] # [doc = ""] # [doc = "Origin must be Signed."] # [doc = ""] # [doc = "- `tips`: Tips array."] # [doc = ""] # [doc = "Emits `TipSent` on every tip transfer."] pay_tips { tips : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < runtime_types :: pallet_nfts :: types :: ItemTip < :: core :: primitive :: u32 , :: core :: primitive :: u32 , :: subxt :: utils :: AccountId32 , :: core :: primitive :: u128 > > , } , # [codec (index = 34)] # [doc = "Register a new atomic swap, declaring an intention to send an `item` in exchange for"] # [doc = "`desired_item` from origin to target on the current blockchain."] # [doc = "The target can execute the swap during the specified `duration` of blocks (if set)."] # [doc = "Additionally, the price could be set for the desired `item`."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `item`."] # [doc = ""] # [doc = "- `collection`: The collection of the item."] # [doc = "- `item`: The item an owner wants to give."] # [doc = "- `desired_collection`: The collection of the desired item."] # [doc = "- `desired_item`: The desired item an owner wants to receive."] # [doc = "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`."] # [doc = "- `duration`: A deadline for the swap. Specified by providing the number of blocks"] # [doc = "\tafter which the swap will expire."] # [doc = ""] # [doc = "Emits `SwapCreated` on success."] create_swap { offered_collection : :: core :: primitive :: u32 , offered_item : :: core :: primitive :: u32 , desired_collection : :: core :: primitive :: u32 , maybe_desired_item : :: core :: option :: Option < :: core :: primitive :: u32 > , maybe_price : :: core :: option :: Option < runtime_types :: pallet_nfts :: types :: PriceWithDirection < :: core :: primitive :: u128 > > , duration : :: core :: primitive :: u32 , } , # [codec (index = 35)] # [doc = "Cancel an atomic swap."] # [doc = ""] # [doc = "Origin must be Signed."] # [doc = "Origin must be an owner of the `item` if the deadline hasn't expired."] # [doc = ""] # [doc = "- `collection`: The collection of the item."] # [doc = "- `item`: The item an owner wants to give."] # [doc = ""] # [doc = "Emits `SwapCancelled` on success."] cancel_swap { offered_collection : :: core :: primitive :: u32 , offered_item : :: core :: primitive :: u32 , } , # [codec (index = 36)] # [doc = "Claim an atomic swap."] # [doc = "This method executes a pending swap, that was created by a counterpart before."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `item`."] # [doc = ""] # [doc = "- `send_collection`: The collection of the item to be sent."] # [doc = "- `send_item`: The item to be sent."] # [doc = "- `receive_collection`: The collection of the item to be received."] # [doc = "- `receive_item`: The item to be received."] # [doc = "- `witness_price`: A price that was previously agreed on."] # [doc = ""] # [doc = "Emits `SwapClaimed` on success."] claim_swap { send_collection : :: core :: primitive :: u32 , send_item : :: core :: primitive :: u32 , receive_collection : :: core :: primitive :: u32 , receive_item : :: core :: primitive :: u32 , witness_price : :: core :: option :: Option < runtime_types :: pallet_nfts :: types :: PriceWithDirection < :: core :: primitive :: u128 > > , } , # [codec (index = 37)] # [doc = "Mint an item by providing the pre-signed approval."] # [doc = ""] # [doc = "Origin must be Signed."] # [doc = ""] # [doc = "- `mint_data`: The pre-signed approval that consists of the information about the item,"] # [doc = " its metadata, attributes, who can mint it (`None` for anyone) and until what block"] # [doc = " number."] # [doc = "- `signature`: The signature of the `data` object."] # [doc = "- `signer`: The `data` object's signer. Should be an owner of the collection."] # [doc = ""] # [doc = "Emits `Issued` on success."] # [doc = "Emits `AttributeSet` if the attributes were provided."] # [doc = "Emits `ItemMetadataSet` if the metadata was not empty."] mint_pre_signed { mint_data : runtime_types :: pallet_nfts :: types :: PreSignedMint < :: core :: primitive :: u32 , :: core :: primitive :: u32 , :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , signature : runtime_types :: sp_runtime :: MultiSignature , signer : :: subxt :: utils :: AccountId32 , } , # [codec (index = 38)] # [doc = "Set attributes for an item by providing the pre-signed approval."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `data.item`."] # [doc = ""] # [doc = "- `data`: The pre-signed approval that consists of the information about the item,"] # [doc = " attributes to update and until what block number."] # [doc = "- `signature`: The signature of the `data` object."] # [doc = "- `signer`: The `data` object's signer. Should be an owner of the collection for the"] # [doc = " `CollectionOwner` namespace."] # [doc = ""] # [doc = "Emits `AttributeSet` for each provided attribute."] # [doc = "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before."] # [doc = "Emits `PreSignedAttributesSet` on success."] set_attributes_pre_signed { data : runtime_types :: pallet_nfts :: types :: PreSignedAttributes < :: core :: primitive :: u32 , :: core :: primitive :: u32 , :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , signature : runtime_types :: sp_runtime :: MultiSignature , signer : :: subxt :: utils :: AccountId32 , } , } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BitFlags<_0>( + pub ::core::primitive::u64, + #[codec(skip)] pub ::core::marker::PhantomData<_0>, + ); + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CancelAttributesApprovalWitness { + pub account_attributes: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CollectionConfig<_0, _1, _2> { + pub settings: runtime_types::pallet_nfts::types::BitFlags< + runtime_types::pallet_nfts::types::CollectionSetting, + >, + pub max_supply: ::core::option::Option<_1>, + pub mint_settings: + runtime_types::pallet_nfts::types::MintSettings<_0, _1, _1>, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<_2>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum CollectionSetting { + #[codec(index = 1)] + TransferableItems, + #[codec(index = 2)] + UnlockedMetadata, + #[codec(index = 4)] + UnlockedAttributes, + #[codec(index = 8)] + UnlockedMaxSupply, + #[codec(index = 16)] + DepositRequired, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct DestroyWitness { + #[codec(compact)] + pub items: ::core::primitive::u32, + #[codec(compact)] + pub item_metadatas: ::core::primitive::u32, + #[codec(compact)] + pub attributes: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ItemConfig { + pub settings: runtime_types::pallet_nfts::types::BitFlags< + runtime_types::pallet_nfts::types::ItemSetting, + >, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ItemSetting { + #[codec(index = 1)] + Transferable, + #[codec(index = 2)] + UnlockedMetadata, + #[codec(index = 4)] + UnlockedAttributes, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ItemTip<_0, _1, _2, _3> { + pub collection: _0, + pub item: _0, + pub receiver: _2, + pub amount: _3, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<_1>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MintSettings<_0, _1, _2> { + pub mint_type: runtime_types::pallet_nfts::types::MintType<_1>, + pub price: ::core::option::Option<_0>, + pub start_block: ::core::option::Option<_1>, + pub end_block: ::core::option::Option<_1>, + pub default_item_settings: + runtime_types::pallet_nfts::types::BitFlags< + runtime_types::pallet_nfts::types::ItemSetting, + >, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<_2>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum MintType<_0> { + #[codec(index = 0)] + Issuer, + #[codec(index = 1)] + Public, + #[codec(index = 2)] + HolderOf(_0), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MintWitness<_0> { + pub owner_of_item: _0, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct PreSignedAttributes < _0 , _1 , _2 , _3 > { pub collection : _0 , pub item : _0 , pub attributes : :: std :: vec :: Vec < (:: std :: vec :: Vec < :: core :: primitive :: u8 > , :: std :: vec :: Vec < :: core :: primitive :: u8 > ,) > , pub namespace : runtime_types :: frame_support :: traits :: tokens :: misc :: AttributeNamespace < _2 > , pub deadline : _0 , # [codec (skip)] pub __subxt_unused_type_params : :: core :: marker :: PhantomData < (_3 , _1) > } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct PreSignedMint<_0, _1, _2, _3> { + pub collection: _0, + pub item: _0, + pub attributes: ::std::vec::Vec<( + ::std::vec::Vec<::core::primitive::u8>, + ::std::vec::Vec<::core::primitive::u8>, + )>, + pub metadata: ::std::vec::Vec<::core::primitive::u8>, + pub only_account: ::core::option::Option<_2>, + pub deadline: _0, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<(_3, _1)>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum PriceDirection { + #[codec(index = 0)] + Send, + #[codec(index = 1)] + Receive, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct PriceWithDirection<_0> { + pub amount: _0, + pub direction: runtime_types::pallet_nfts::types::PriceDirection, + } + } + } + pub mod pallet_nis { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Place a bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."] + #[doc = ""] + #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"] + #[doc = " consolidated, removed. Must be at least `MinBid`."] + #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"] + #[doc = " thawed. Must be greater than 1 and no more than `QueueCount`."] + #[doc = ""] + #[doc = "Complexities:"] + #[doc = "- `Queues[duration].len()` (just take max)."] + place_bid { + #[codec(compact)] + amount: ::core::primitive::u128, + duration: ::core::primitive::u32, + }, + #[codec(index = 1)] + #[doc = "Retract a previously placed bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"] + #[doc = "of `amount` for `duration`."] + #[doc = ""] + #[doc = "- `amount`: The amount of the previous bid."] + #[doc = "- `duration`: The duration of the previous bid."] + retract_bid { + #[codec(compact)] + amount: ::core::primitive::u128, + duration: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Ensure we have sufficient funding for all potential payouts."] + #[doc = ""] + #[doc = "- `origin`: Must be accepted by `FundOrigin`."] + fund_deficit, + #[codec(index = 3)] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"] + #[doc = " well as any fungible counterpart."] + #[doc = "- `index`: The index of the receipt."] + #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"] + #[doc = " `None`, then all of it should be."] + thaw_private { + #[codec(compact)] + index: ::core::primitive::u32, + maybe_proportion: ::core::option::Option< + runtime_types::sp_arithmetic::per_things::Perquintill, + >, + }, + #[codec(index = 4)] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"] + #[doc = " for receipt `index`."] + #[doc = "- `index`: The index of the receipt."] + thaw_communal { + #[codec(compact)] + index: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Make a private receipt communal and create fungible counterparts for its owner."] + communify { + #[codec(compact)] + index: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."] + privatize { + #[codec(compact)] + index: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_nomination_pools { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Stake funds with a pool. The amount to bond is transferred from the member to the"] + #[doc = "pools account and immediately increases the pools bond."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "* An account can only be a member of a single pool."] + #[doc = "* An account cannot join the same pool multiple times."] + #[doc = "* This call will *not* dust the member account, so the member must have at least"] + #[doc = " `existential deposit + amount` in their account."] + #[doc = "* Only a pool with [`PoolState::Open`] can be joined"] + join { + #[codec(compact)] + amount: ::core::primitive::u128, + pool_id: ::core::primitive::u32, + }, + #[codec(index = 1)] + #[doc = "Bond `extra` more funds from `origin` into the pool to which they already belong."] + #[doc = ""] + #[doc = "Additional funds can come from either the free balance of the account, of from the"] + #[doc = "accumulated rewards, see [`BondExtra`]."] + #[doc = ""] + #[doc = "Bonding extra funds implies an automatic payout of all pending rewards as well."] + #[doc = "See `bond_extra_other` to bond pending rewards of `other` members."] + bond_extra { + extra: runtime_types::pallet_nomination_pools::BondExtra< + ::core::primitive::u128, + >, + }, + #[codec(index = 2)] + #[doc = "A bonded member can use this to claim their payout based on the rewards that the pool"] + #[doc = "has accumulated since their last claimed payout (OR since joining if this is there first"] + #[doc = "time claiming rewards). The payout will be transferred to the member's account."] + #[doc = ""] + #[doc = "The member will earn rewards pro rata based on the members stake vs the sum of the"] + #[doc = "members in the pools stake. Rewards do not \"expire\"."] + #[doc = ""] + #[doc = "See `claim_payout_other` to caim rewards on bahalf of some `other` pool member."] + claim_payout, + #[codec(index = 3)] + #[doc = "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It"] + #[doc = "implicitly collects the rewards one last time, since not doing so would mean some"] + #[doc = "rewards would be forfeited."] + #[doc = ""] + #[doc = "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any"] + #[doc = "account)."] + #[doc = ""] + #[doc = "# Conditions for a permissionless dispatch."] + #[doc = ""] + #[doc = "* The pool is blocked and the caller is either the root or bouncer. This is refereed to"] + #[doc = " as a kick."] + #[doc = "* The pool is destroying and the member is not the depositor."] + #[doc = "* The pool is destroying, the member is the depositor and no other members are in the"] + #[doc = " pool."] + #[doc = ""] + #[doc = "## Conditions for permissioned dispatch (i.e. the caller is also the"] + #[doc = "`member_account`):"] + #[doc = ""] + #[doc = "* The caller is not the depositor."] + #[doc = "* The caller is the depositor, the pool is destroying and no other members are in the"] + #[doc = " pool."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "If there are too many unlocking chunks to unbond with the pool account,"] + #[doc = "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks."] + #[doc = "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]"] + #[doc = "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks"] + #[doc = "are available). However, it may not be possible to release the current unlocking chunks,"] + #[doc = "in which case, the result of this call will likely be the `NoMoreChunks` error from the"] + #[doc = "staking system."] + unbond { + member_account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + unbonding_points: ::core::primitive::u128, + }, + #[codec(index = 4)] + #[doc = "Call `withdraw_unbonded` for the pools account. This call can be made by any account."] + #[doc = ""] + #[doc = "This is useful if their are too many unlocking chunks to call `unbond`, and some"] + #[doc = "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user"] + #[doc = "would probably see an error like `NoMoreChunks` emitted from the staking system when"] + #[doc = "they attempt to unbond."] + pool_withdraw_unbonded { + pool_id: ::core::primitive::u32, + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an"] + #[doc = "error is returned."] + #[doc = ""] + #[doc = "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any"] + #[doc = "account)."] + #[doc = ""] + #[doc = "# Conditions for a permissionless dispatch"] + #[doc = ""] + #[doc = "* The pool is in destroy mode and the target is not the depositor."] + #[doc = "* The target is the depositor and they are the only member in the sub pools."] + #[doc = "* The pool is blocked and the caller is either the root or bouncer."] + #[doc = ""] + #[doc = "# Conditions for permissioned dispatch"] + #[doc = ""] + #[doc = "* The caller is the target and they are not the depositor."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "If the target is the depositor, the pool will be destroyed."] + withdraw_unbonded { + member_account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Create a new delegation pool."] + #[doc = ""] + #[doc = "# Arguments"] + #[doc = ""] + #[doc = "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of"] + #[doc = " deposit since the pools creator cannot fully unbond funds until the pool is being"] + #[doc = " destroyed."] + #[doc = "* `index` - A disambiguation index for creating the account. Likely only useful when"] + #[doc = " creating multiple pools in the same extrinsic."] + #[doc = "* `root` - The account to set as [`PoolRoles::root`]."] + #[doc = "* `nominator` - The account to set as the [`PoolRoles::nominator`]."] + #[doc = "* `bouncer` - The account to set as the [`PoolRoles::bouncer`]."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "In addition to `amount`, the caller will transfer the existential deposit; so the caller"] + #[doc = "needs at have at least `amount + existential_deposit` transferrable."] + create { + #[codec(compact)] + amount: ::core::primitive::u128, + root: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + nominator: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + bouncer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 7)] + #[doc = "Create a new delegation pool with a previously used pool id"] + #[doc = ""] + #[doc = "# Arguments"] + #[doc = ""] + #[doc = "same as `create` with the inclusion of"] + #[doc = "* `pool_id` - `A valid PoolId."] + create_with_pool_id { + #[codec(compact)] + amount: ::core::primitive::u128, + root: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + nominator: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + bouncer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + pool_id: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Nominate on behalf of the pool."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed by the pool nominator or the pool"] + #[doc = "root role."] + #[doc = ""] + #[doc = "This directly forward the call to the staking pallet, on behalf of the pool bonded"] + #[doc = "account."] + nominate { + pool_id: ::core::primitive::u32, + validators: ::std::vec::Vec<::subxt::utils::AccountId32>, + }, + #[codec(index = 9)] + #[doc = "Set a new state for the pool."] + #[doc = ""] + #[doc = "If a pool is already in the `Destroying` state, then under no condition can its state"] + #[doc = "change again."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be either:"] + #[doc = ""] + #[doc = "1. signed by the bouncer, or the root role of the pool,"] + #[doc = "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and"] + #[doc = " then the state of the pool can be permissionlessly changed to `Destroying`."] + set_state { + pool_id: ::core::primitive::u32, + state: runtime_types::pallet_nomination_pools::PoolState, + }, + #[codec(index = 10)] + #[doc = "Set a new metadata for the pool."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed by the bouncer, or the root role"] + #[doc = "of the pool."] + set_metadata { + pool_id: ::core::primitive::u32, + metadata: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 11)] + #[doc = "Update configurations for the nomination pools. The origin for this call must be"] + #[doc = "Root."] + #[doc = ""] + #[doc = "# Arguments"] + #[doc = ""] + #[doc = "* `min_join_bond` - Set [`MinJoinBond`]."] + #[doc = "* `min_create_bond` - Set [`MinCreateBond`]."] + #[doc = "* `max_pools` - Set [`MaxPools`]."] + #[doc = "* `max_members` - Set [`MaxPoolMembers`]."] + #[doc = "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]."] + set_configs { + min_join_bond: runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u128, + >, + min_create_bond: runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u128, + >, + max_pools: runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u32, + >, + max_members: runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u32, + >, + max_members_per_pool: + runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u32, + >, + }, + #[codec(index = 12)] + #[doc = "Update the roles of the pool."] + #[doc = ""] + #[doc = "The root is the only entity that can change any of the roles, including itself,"] + #[doc = "excluding the depositor, who can never change."] + #[doc = ""] + #[doc = "It emits an event, notifying UIs of the role change. This event is quite relevant to"] + #[doc = "most pool members and they should be informed of changes to pool roles."] + update_roles { + pool_id: ::core::primitive::u32, + new_root: runtime_types::pallet_nomination_pools::ConfigOp< + ::subxt::utils::AccountId32, + >, + new_nominator: runtime_types::pallet_nomination_pools::ConfigOp< + ::subxt::utils::AccountId32, + >, + new_bouncer: runtime_types::pallet_nomination_pools::ConfigOp< + ::subxt::utils::AccountId32, + >, + }, + #[codec(index = 13)] + #[doc = "Chill on behalf of the pool."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed by the pool nominator or the pool"] + #[doc = "root role, same as [`Pallet::nominate`]."] + #[doc = ""] + #[doc = "This directly forward the call to the staking pallet, on behalf of the pool bonded"] + #[doc = "account."] + chill { pool_id: ::core::primitive::u32 }, + #[codec(index = 14)] + #[doc = "`origin` bonds funds from `extra` for some pool member `member` into their respective"] + #[doc = "pools."] + #[doc = ""] + #[doc = "`origin` can bond extra funds from free balance or pending rewards when `origin =="] + #[doc = "other`."] + #[doc = ""] + #[doc = "In the case of `origin != other`, `origin` can only bond extra pending rewards of"] + #[doc = "`other` members assuming set_claim_permission for the given member is"] + #[doc = "`PermissionlessAll` or `PermissionlessCompound`."] + bond_extra_other { + member: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + extra: runtime_types::pallet_nomination_pools::BondExtra< + ::core::primitive::u128, + >, + }, + #[codec(index = 15)] + #[doc = "Allows a pool member to set a claim permission to allow or disallow permissionless"] + #[doc = "bonding and withdrawing."] + #[doc = ""] + #[doc = "By default, this is `Permissioned`, which implies only the pool member themselves can"] + #[doc = "claim their pending rewards. If a pool member wishes so, they can set this to"] + #[doc = "`PermissionlessAll` to allow any account to claim their rewards and bond extra to the"] + #[doc = "pool."] + #[doc = ""] + #[doc = "# Arguments"] + #[doc = ""] + #[doc = "* `origin` - Member of a pool."] + #[doc = "* `actor` - Account to claim reward. // improve this"] + set_claim_permission { + permission: + runtime_types::pallet_nomination_pools::ClaimPermission, + }, + #[codec(index = 16)] + #[doc = "`origin` can claim payouts on some pool member `other`'s behalf."] + #[doc = ""] + #[doc = "Pool member `other` must have a `PermissionlessAll` or `PermissionlessWithdraw` in order"] + #[doc = "for this call to be successful."] + claim_payout_other { other: ::subxt::utils::AccountId32 }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum BondExtra<_0> { + #[codec(index = 0)] + FreeBalance(_0), + #[codec(index = 1)] + Rewards, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ClaimPermission { + #[codec(index = 0)] + Permissioned, + #[codec(index = 1)] + PermissionlessCompound, + #[codec(index = 2)] + PermissionlessWithdraw, + #[codec(index = 3)] + PermissionlessAll, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ConfigOp<_0> { + #[codec(index = 0)] + Noop, + #[codec(index = 1)] + Set(_0), + #[codec(index = 2)] + Remove, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum PoolState { + #[codec(index = 0)] + Open, + #[codec(index = 1)] + Blocked, + #[codec(index = 2)] + Destroying, + } + } + pub mod pallet_preimage { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Register a preimage on-chain."] + #[doc = ""] + #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"] + #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."] + note_preimage { + bytes: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Clear an unrequested preimage from the runtime storage."] + #[doc = ""] + #[doc = "If `len` is provided, then it will be a much cheaper operation."] + #[doc = ""] + #[doc = "- `hash`: The hash of the preimage to be removed from the store."] + #[doc = "- `len`: The length of the preimage of `hash`."] + unnote_preimage { hash: ::subxt::utils::H256 }, + #[codec(index = 2)] + #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."] + #[doc = ""] + #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"] + #[doc = "a user may have paid, and take the control of the preimage out of their hands."] + request_preimage { hash: ::subxt::utils::H256 }, + #[codec(index = 3)] + #[doc = "Clear a previously made request for a preimage."] + #[doc = ""] + #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."] + unrequest_preimage { hash: ::subxt::utils::H256 }, + } + } + } + pub mod pallet_proxy { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] + proxy { + real: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + force_proxy_type: ::core::option::Option< + runtime_types::kitchensink_runtime::ProxyType, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."] + #[doc = "- `proxy_type`: The permissions allowed for this proxy account."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + add_proxy { + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + proxy_type: runtime_types::kitchensink_runtime::ProxyType, + delay: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Unregister a proxy account for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."] + #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."] + remove_proxy { + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + proxy_type: runtime_types::kitchensink_runtime::ProxyType, + delay: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Unregister all proxy accounts for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "WARNING: This may be called on accounts created by `pure`, however if done, then"] + #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"] + remove_proxies, + #[codec(index = 4)] + #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"] + #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."] + #[doc = ""] + #[doc = "Requires a `Signed` origin."] + #[doc = ""] + #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"] + #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"] + #[doc = "allow for maximum flexibility."] + #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"] + #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"] + #[doc = "want to use `0`."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + #[doc = ""] + #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"] + #[doc = "same sender, with the same parameters."] + #[doc = ""] + #[doc = "Fails if there are insufficient funds to pay for deposit."] + create_pure { + proxy_type: runtime_types::kitchensink_runtime::ProxyType, + delay: ::core::primitive::u32, + index: ::core::primitive::u16, + }, + #[codec(index = 5)] + #[doc = "Removes a previously spawned pure proxy."] + #[doc = ""] + #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"] + #[doc = "inaccessible."] + #[doc = ""] + #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"] + #[doc = "`pure` with corresponding parameters."] + #[doc = ""] + #[doc = "- `spawner`: The account that originally called `pure` to create this account."] + #[doc = "- `index`: The disambiguation index originally passed to `pure`. Probably `0`."] + #[doc = "- `proxy_type`: The proxy type originally passed to `pure`."] + #[doc = "- `height`: The height of the chain when the call to `pure` was processed."] + #[doc = "- `ext_index`: The extrinsic index in which the call to `pure` was processed."] + #[doc = ""] + #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"] + #[doc = "account whose `pure` call has corresponding parameters."] + kill_pure { + spawner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + proxy_type: runtime_types::kitchensink_runtime::ProxyType, + index: ::core::primitive::u16, + #[codec(compact)] + height: ::core::primitive::u32, + #[codec(compact)] + ext_index: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Publish the hash of a proxy-call that will be made in the future."] + #[doc = ""] + #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"] + #[doc = "if the delay associated with the proxy relationship is greater than zero."] + #[doc = ""] + #[doc = "No more than `MaxPending` announcements may be made at any one time."] + #[doc = ""] + #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"] + #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] + announce { + real: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call_hash: ::subxt::utils::H256, + }, + #[codec(index = 7)] + #[doc = "Remove a given announcement."] + #[doc = ""] + #[doc = "May be called by a proxy account to remove a call they previously announced and return"] + #[doc = "the deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] + remove_announcement { + real: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call_hash: ::subxt::utils::H256, + }, + #[codec(index = 8)] + #[doc = "Remove the given announcement of a delegate."] + #[doc = ""] + #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"] + #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `delegate`: The account that previously announced the call."] + #[doc = "- `call_hash`: The hash of the call to be made."] + reject_announcement { + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call_hash: ::subxt::utils::H256, + }, + #[codec(index = 9)] + #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "Removes any corresponding announcement(s)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] + proxy_announced { + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + real: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + force_proxy_type: ::core::option::Option< + runtime_types::kitchensink_runtime::ProxyType, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + } + } + } + pub mod pallet_ranked_collective { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Introduce a new member."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AdminOrigin`."] + #[doc = "- `who`: Account of non-member which will become a member."] + #[doc = "- `rank`: The rank to give the new member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + add_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Increment the rank of an existing member by one."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AdminOrigin`."] + #[doc = "- `who`: Account of existing member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + promote_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 2)] + #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"] + #[doc = "then they are removed entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AdminOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."] + demote_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 3)] + #[doc = "Remove the member entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AdminOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = "- `min_rank`: The rank of the member or greater."] + #[doc = ""] + #[doc = "Weight: `O(min_rank)`."] + remove_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + min_rank: ::core::primitive::u16, + }, + #[codec(index = 4)] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by a member account."] + #[doc = "- `poll`: Index of a poll which is ongoing."] + #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."] + #[doc = ""] + #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."] + vote { + poll: ::core::primitive::u32, + aye: ::core::primitive::bool, + }, + #[codec(index = 5)] + #[doc = "Remove votes from the given poll. It must have ended."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by any account."] + #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"] + #[doc = " exist."] + #[doc = "- `max`: Maximum number of vote items from remove in this call."] + #[doc = ""] + #[doc = "Transaction fees are waived if the operation is successful."] + #[doc = ""] + #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."] + cleanup_poll { + poll_index: ::core::primitive::u32, + max: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_recovery { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Send a call through a recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."] + #[doc = "- `call`: The call you want to make with the recovered account."] + as_recovered { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Allow ROOT to bypass the recovery process and set an a rescuer account"] + #[doc = "for a lost account directly."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The \"lost account\" to be recovered."] + #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."] + set_recovered { + lost: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + rescuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 2)] + #[doc = "Create a recovery configuration for your account. This makes your account recoverable."] + #[doc = ""] + #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"] + #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"] + #[doc = "in full when the user calls `remove_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"] + #[doc = " ordered and contain no duplicate values."] + #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"] + #[doc = " account can be recovered. Should be less than or equal to the length of the list of"] + #[doc = " friends."] + #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"] + #[doc = " needs to pass before the account can be recovered."] + create_recovery { + friends: ::std::vec::Vec<::subxt::utils::AccountId32>, + threshold: ::core::primitive::u16, + delay_period: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Initiate the process for recovering a recoverable account."] + #[doc = ""] + #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"] + #[doc = "recovery process. This deposit will always be repatriated to the account"] + #[doc = "trying to be recovered. See `close_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to recover. This account needs to be"] + #[doc = " recoverable (i.e. have a recovery configuration)."] + initiate_recovery { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 4)] + #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"] + #[doc = "process for that account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""] + #[doc = "for the recoverable account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The lost account that you want to recover."] + #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."] + #[doc = ""] + #[doc = "The combination of these two parameters must point to an active recovery"] + #[doc = "process."] + vouch_recovery { + lost: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + rescuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 5)] + #[doc = "Allow a successful rescuer to claim their recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""] + #[doc = "who has successfully completed the account recovery process: collected"] + #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"] + #[doc = " you."] + claim_recovery { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 6)] + #[doc = "As the controller of a recoverable account, close an active recovery"] + #[doc = "process for your account."] + #[doc = ""] + #[doc = "Payment: By calling this function, the recoverable account will receive"] + #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account with an active recovery process for it."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `rescuer`: The account trying to rescue this recoverable account."] + close_recovery { + rescuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 7)] + #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."] + #[doc = ""] + #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"] + #[doc = "recovery attempts before calling this function else it will fail."] + #[doc = ""] + #[doc = "Payment: By calling this function the recoverable account will unreserve"] + #[doc = "their recovery configuration deposit."] + #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account (i.e. has a recovery configuration)."] + remove_recovery, + #[codec(index = 8)] + #[doc = "Cancel the ability to use `as_recovered` for `account`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you are able to call on-behalf-of."] + cancel_recovered { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + } + } + } + pub mod pallet_referenda { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] + submit { + proposal_origin: ::std::boxed::Box< + runtime_types::kitchensink_runtime::OriginCaller, + >, + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + enactment_moment: + runtime_types::frame_support::traits::schedule::DispatchTime< + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] + place_decision_deposit { index: ::core::primitive::u32 }, + #[codec(index = 2)] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] + refund_decision_deposit { index: ::core::primitive::u32 }, + #[codec(index = 3)] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] + cancel { index: ::core::primitive::u32 }, + #[codec(index = 4)] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] + kill { index: ::core::primitive::u32 }, + #[codec(index = 5)] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] + nudge_referendum { index: ::core::primitive::u32 }, + #[codec(index = 6)] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] + one_fewer_deciding { track: ::core::primitive::u16 }, + #[codec(index = 7)] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] + refund_submission_deposit { index: ::core::primitive::u32 }, + #[codec(index = 8)] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] + set_metadata { + index: ::core::primitive::u32, + maybe_hash: ::core::option::Option<::subxt::utils::H256>, + }, + } + } + } + pub mod pallet_remark { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Index and store data off chain."] + store { + remark: ::std::vec::Vec<::core::primitive::u8>, + }, + } + } + } + pub mod pallet_root_testing { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "A dispatch that will fill the block weight up to the given ratio."] + fill_block { + ratio: runtime_types::sp_arithmetic::per_things::Perbill, + }, + } + } + } + pub mod pallet_scheduler { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Anonymously schedule a task."] + schedule { + when: ::core::primitive::u32, + maybe_periodic: ::core::option::Option<( + ::core::primitive::u32, + ::core::primitive::u32, + )>, + priority: ::core::primitive::u8, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Cancel an anonymously scheduled task."] + cancel { + when: ::core::primitive::u32, + index: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Schedule a named task."] + schedule_named { + id: [::core::primitive::u8; 32usize], + when: ::core::primitive::u32, + maybe_periodic: ::core::option::Option<( + ::core::primitive::u32, + ::core::primitive::u32, + )>, + priority: ::core::primitive::u8, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 3)] + #[doc = "Cancel a named scheduled task."] + cancel_named { + id: [::core::primitive::u8; 32usize], + }, + #[codec(index = 4)] + #[doc = "Anonymously schedule a task after a delay."] + schedule_after { + after: ::core::primitive::u32, + maybe_periodic: ::core::option::Option<( + ::core::primitive::u32, + ::core::primitive::u32, + )>, + priority: ::core::primitive::u8, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 5)] + #[doc = "Schedule a named task after a delay."] + schedule_named_after { + id: [::core::primitive::u8; 32usize], + after: ::core::primitive::u32, + maybe_periodic: ::core::option::Option<( + ::core::primitive::u32, + ::core::primitive::u32, + )>, + priority: ::core::primitive::u8, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + } + } + } + pub mod pallet_session { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Sets the session key(s) of the function caller to `keys`."] + #[doc = "Allows an account to set its session key prior to becoming a validator."] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be signed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"] + #[doc = " fixed."] + set_keys { + keys: runtime_types::kitchensink_runtime::SessionKeys, + proof: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Removes any session key(s) of the function caller."] + #[doc = ""] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be Signed and the account must be either be"] + #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"] + #[doc = "means being a controller account) or directly convertible into a validator ID (which"] + #[doc = "usually means being a stash account)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"] + #[doc = " `T::Keys::key_ids()` which is fixed."] + purge_keys, + } + } + } + pub mod pallet_society { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "A user outside of the society can make a bid for entry."] + #[doc = ""] + #[doc = "Payment: `CandidateDeposit` will be reserved for making a bid. It is returned"] + #[doc = "when the bid becomes a member, or if the bid calls `unbid`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + B + C + logM + logB + X)"] + #[doc = "\t - B (len of bids)"] + #[doc = " - C (len of candidates)"] + #[doc = " - M (len of members)"] + #[doc = " - X (balance reserve)"] + bid { value: ::core::primitive::u128 }, + #[codec(index = 1)] + #[doc = "A bidder can remove their bid for entry into society."] + #[doc = "By doing so, they will have their candidate deposit returned or"] + #[doc = "they will unvouch their voucher."] + #[doc = ""] + #[doc = "Payment: The bid deposit is unreserved if the user made a bid."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who wants to unbid."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(B + X)"] + #[doc = " - B (len of bids)"] + #[doc = " - X (balance unreserve)"] + unbid { pos: ::core::primitive::u32 }, + #[codec(index = 2)] + #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."] + #[doc = ""] + #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"] + #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"] + #[doc = "the suspension judgement origin, the member will be banned from vouching again."] + #[doc = ""] + #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"] + #[doc = "be paid as a portion of the reward the member will receive for joining the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The user who you would like to vouch for."] + #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"] + #[doc = "a member in the society."] + #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"] + #[doc = "the society. Tips larger than `value` will be saturated upon payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + B + C + logM + logB + X)"] + #[doc = " - B (len of bids)"] + #[doc = " - C (len of candidates)"] + #[doc = " - M (len of members)"] + #[doc = " - X (balance reserve)"] + vouch { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + value: ::core::primitive::u128, + tip: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"] + #[doc = "only a bidder (and not a candidate)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(B)"] + #[doc = " - B (len of bids)"] + unvouch { pos: ::core::primitive::u32 }, + #[codec(index = 4)] + #[doc = "As a member, vote on a candidate."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `candidate`: The candidate that the member would like to bid on."] + #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"] + #[doc = " rejected (`false`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM + C)"] + #[doc = " - C (len of candidates)"] + #[doc = " - M (len of members)"] + vote { + candidate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + approve: ::core::primitive::bool, + }, + #[codec(index = 5)] + #[doc = "As a member, vote on the defender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `approve`: A boolean which says if the candidate should be"] + #[doc = "approved (`true`) or rejected (`false`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM)"] + #[doc = " - M (len of members)"] + defender_vote { approve: ::core::primitive::bool }, + #[codec(index = 6)] + #[doc = "Transfer the first matured payout for the sender and remove it from the records."] + #[doc = ""] + #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"] + #[doc = "payouts."] + #[doc = ""] + #[doc = "Payment: The member will receive a payment equal to their first matured"] + #[doc = "payout to their free balance."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member with"] + #[doc = "payouts remaining."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM + P + X)"] + #[doc = " - M (len of members)"] + #[doc = " - P (number of payouts for a particular member)"] + #[doc = " - X (currency transfer call)"] + payout, + #[codec(index = 7)] + #[doc = "Found the society."] + #[doc = ""] + #[doc = "This is done as a discrete action in order to allow for the"] + #[doc = "pallet to be included into a running chain and can only be done once."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `founder` - The first member and head of the newly founded society."] + #[doc = "- `max_members` - The initial max number of members for the society."] + #[doc = "- `rules` - The rules of this society concerning membership."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + found { + founder: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + max_members: ::core::primitive::u32, + rules: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 8)] + #[doc = "Annul the founding of the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"] + #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"] + #[doc = "member."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + unfound, + #[codec(index = 9)] + #[doc = "Allow suspension judgement origin to make judgement on a suspended member."] + #[doc = ""] + #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"] + #[doc = "any of the existing storage items for that member."] + #[doc = ""] + #[doc = "If a suspended member is rejected, remove all associated storage items, including"] + #[doc = "their payouts, and remove any vouched bids they currently have."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended member to be judged."] + #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"] + #[doc = " (`true`) or rejects (`false`) a suspended member."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM + B)"] + #[doc = " - B (len of bids)"] + #[doc = " - M (len of members)"] + judge_suspended_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + forgive: ::core::primitive::bool, + }, + #[codec(index = 10)] + #[doc = "Allow suspended judgement origin to make judgement on a suspended candidate."] + #[doc = ""] + #[doc = "If the judgement is `Approve`, we add them to society as a member with the appropriate"] + #[doc = "payment for joining society."] + #[doc = ""] + #[doc = "If the judgement is `Reject`, we either slash the deposit of the bid, giving it back"] + #[doc = "to the society treasury, or we ban the voucher from vouching again."] + #[doc = ""] + #[doc = "If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go"] + #[doc = "through the induction process again."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended candidate to be judged."] + #[doc = "- `judgement` - `Approve`, `Reject`, or `Rebid`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM + B + X)"] + #[doc = " - B (len of bids)"] + #[doc = " - M (len of members)"] + #[doc = " - X (balance action)"] + judge_suspended_candidate { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + judgement: runtime_types::pallet_society::Judgement, + }, + #[codec(index = 11)] + #[doc = "Allows root origin to change the maximum number of members in society."] + #[doc = "Max membership count must be greater than 1."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `max` - The maximum number of members for the society."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + set_max_members { max: ::core::primitive::u32 }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Judgement { + #[codec(index = 0)] + Rebid, + #[codec(index = 1)] + Reject, + #[codec(index = 2)] + Approve, + } + } + pub mod pallet_staking { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Take the origin account as a stash and lock up `value` of its balance. `controller` will"] + #[doc = "be the account that controls it."] + #[doc = ""] + #[doc = "`value` must be more than the `minimum_balance` specified by `T::Currency`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the stash account."] + #[doc = ""] + #[doc = "Emits `Bonded`."] + #[doc = "## Complexity"] + #[doc = "- Independent of the arguments. Moderate complexity."] + #[doc = "- O(1)."] + #[doc = "- Three extra DB entries."] + #[doc = ""] + #[doc = "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned"] + #[doc = "unless the `origin` falls below _existential deposit_ and gets removed as dust."] + bond { + controller: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + payee: runtime_types::pallet_staking::RewardDestination< + ::subxt::utils::AccountId32, + >, + }, + #[codec(index = 1)] + #[doc = "Add some extra amount that have appeared in the stash `free_balance` into the balance up"] + #[doc = "for staking."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the stash, not the controller."] + #[doc = ""] + #[doc = "Use this if there are additional funds in your stash account that you wish to bond."] + #[doc = "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose"] + #[doc = "any limitation on the amount that can be added."] + #[doc = ""] + #[doc = "Emits `Bonded`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Independent of the arguments. Insignificant complexity."] + #[doc = "- O(1)."] + bond_extra { + #[codec(compact)] + max_additional: ::core::primitive::u128, + }, + #[codec(index = 2)] + #[doc = "Schedule a portion of the stash to be unlocked ready for transfer out after the bond"] + #[doc = "period ends. If this leaves an amount actively bonded less than"] + #[doc = "T::Currency::minimum_balance(), then it is increased to the full amount."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "Once the unlock period is done, you can call `withdraw_unbonded` to actually move"] + #[doc = "the funds out of management ready for transfer."] + #[doc = ""] + #[doc = "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)"] + #[doc = "can co-exists at the same time. If there are no unlocking chunks slots available"] + #[doc = "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible)."] + #[doc = ""] + #[doc = "If a user encounters the `InsufficientBond` error when calling this extrinsic,"] + #[doc = "they should call `chill` first in order to free up their bonded funds."] + #[doc = ""] + #[doc = "Emits `Unbonded`."] + #[doc = ""] + #[doc = "See also [`Call::withdraw_unbonded`]."] + unbond { + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "Remove any unlocked chunks from the `unlocking` queue from our management."] + #[doc = ""] + #[doc = "This essentially frees up that balance to be used by the stash account to do"] + #[doc = "whatever it wants."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller."] + #[doc = ""] + #[doc = "Emits `Withdrawn`."] + #[doc = ""] + #[doc = "See also [`Call::unbond`]."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(S) where S is the number of slashing spans to remove"] + #[doc = "NOTE: Weight annotation is the kill scenario, we refund otherwise."] + withdraw_unbonded { + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 4)] + #[doc = "Declare the desire to validate for the origin controller."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + validate { + prefs: runtime_types::pallet_staking::ValidatorPrefs, + }, + #[codec(index = 5)] + #[doc = "Declare the desire to nominate `targets` for the origin controller."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- The transaction's complexity is proportional to the size of `targets` (N)"] + #[doc = "which is capped at CompactAssignments::LIMIT (T::MaxNominations)."] + #[doc = "- Both the reads and writes follow a similar pattern."] + nominate { + targets: ::std::vec::Vec< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 6)] + #[doc = "Declare no desire to either validate or nominate."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Independent of the arguments. Insignificant complexity."] + #[doc = "- Contains one read."] + #[doc = "- Writes are limited to the `origin` account key."] + chill, + #[codec(index = 7)] + #[doc = "(Re-)set the payment target for a controller."] + #[doc = ""] + #[doc = "Effects will be felt instantly (as soon as this function is completed successfully)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + #[doc = "- Independent of the arguments. Insignificant complexity."] + #[doc = "- Contains a limited number of reads."] + #[doc = "- Writes are limited to the `origin` account key."] + #[doc = "---------"] + set_payee { + payee: runtime_types::pallet_staking::RewardDestination< + ::subxt::utils::AccountId32, + >, + }, + #[codec(index = 8)] + #[doc = "(Re-)set the controller of a stash."] + #[doc = ""] + #[doc = "Effects will be felt instantly (as soon as this function is completed successfully)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the stash, not the controller."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(1)"] + #[doc = "- Independent of the arguments. Insignificant complexity."] + #[doc = "- Contains a limited number of reads."] + #[doc = "- Writes are limited to the `origin` account key."] + set_controller { + controller: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 9)] + #[doc = "Sets the ideal number of validators."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(1)"] + set_validator_count { + #[codec(compact)] + new: ::core::primitive::u32, + }, + #[codec(index = 10)] + #[doc = "Increments the ideal number of validators upto maximum of"] + #[doc = "`ElectionProviderBase::MaxWinners`."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "Same as [`Self::set_validator_count`]."] + increase_validator_count { + #[codec(compact)] + additional: ::core::primitive::u32, + }, + #[codec(index = 11)] + #[doc = "Scale up the ideal number of validators by a factor upto maximum of"] + #[doc = "`ElectionProviderBase::MaxWinners`."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "Same as [`Self::set_validator_count`]."] + scale_validator_count { + factor: runtime_types::sp_arithmetic::per_things::Percent, + }, + #[codec(index = 12)] + #[doc = "Force there to be no new eras indefinitely."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "# Warning"] + #[doc = ""] + #[doc = "The election process starts multiple blocks before the end of the era."] + #[doc = "Thus the election process may be ongoing when this is called. In this case the"] + #[doc = "election will continue until the next era is triggered."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- No arguments."] + #[doc = "- Weight: O(1)"] + force_no_eras, + #[codec(index = 13)] + #[doc = "Force there to be a new era at the end of the next session. After this, it will be"] + #[doc = "reset to normal (non-forced) behaviour."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "# Warning"] + #[doc = ""] + #[doc = "The election process starts multiple blocks before the end of the era."] + #[doc = "If this is called just before a new era is triggered, the election process may not"] + #[doc = "have enough blocks to get a result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- No arguments."] + #[doc = "- Weight: O(1)"] + force_new_era, + #[codec(index = 14)] + #[doc = "Set the validators who cannot be slashed (if any)."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + set_invulnerables { + invulnerables: ::std::vec::Vec<::subxt::utils::AccountId32>, + }, + #[codec(index = 15)] + #[doc = "Force a current staker to become completely unstaked, immediately."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + force_unstake { + stash: ::subxt::utils::AccountId32, + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 16)] + #[doc = "Force there to be a new era at the end of sessions indefinitely."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "# Warning"] + #[doc = ""] + #[doc = "The election process starts multiple blocks before the end of the era."] + #[doc = "If this is called just before a new era is triggered, the election process may not"] + #[doc = "have enough blocks to get a result."] + force_new_era_always, + #[codec(index = 17)] + #[doc = "Cancel enactment of a deferred slash."] + #[doc = ""] + #[doc = "Can be called by the `T::AdminOrigin`."] + #[doc = ""] + #[doc = "Parameters: era and indices of the slashes for that era to kill."] + cancel_deferred_slash { + era: ::core::primitive::u32, + slash_indices: ::std::vec::Vec<::core::primitive::u32>, + }, + #[codec(index = 18)] + #[doc = "Pay out all the stakers behind a single validator for a single era."] + #[doc = ""] + #[doc = "- `validator_stash` is the stash account of the validator. Their nominators, up to"] + #[doc = " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards."] + #[doc = "- `era` may be any era between `[current_era - history_depth; current_era]`."] + #[doc = ""] + #[doc = "The origin of this call must be _Signed_. Any account can call this function, even if"] + #[doc = "it is not one of the stakers."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- At most O(MaxNominatorRewardedPerValidator)."] + payout_stakers { + validator_stash: ::subxt::utils::AccountId32, + era: ::core::primitive::u32, + }, + #[codec(index = 19)] + #[doc = "Rebond a portion of the stash scheduled to be unlocked."] + #[doc = ""] + #[doc = "The dispatch origin must be signed by the controller."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Time complexity: O(L), where L is unlocking chunks"] + #[doc = "- Bounded by `MaxUnlockingChunks`."] + rebond { + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 20)] + #[doc = "Remove all data structures concerning a staker/stash once it is at a state where it can"] + #[doc = "be considered `dust` in the staking system. The requirements are:"] + #[doc = ""] + #[doc = "1. the `total_balance` of the stash is below existential deposit."] + #[doc = "2. or, the `ledger.total` of the stash is below existential deposit."] + #[doc = ""] + #[doc = "The former can happen in cases like a slash; the latter when a fully unbonded account"] + #[doc = "is still receiving staking rewards in `RewardDestination::Staked`."] + #[doc = ""] + #[doc = "It can be called by anyone, as long as `stash` meets the above requirements."] + #[doc = ""] + #[doc = "Refunds the transaction fees upon successful execution."] + reap_stash { + stash: ::subxt::utils::AccountId32, + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 21)] + #[doc = "Remove the given nominations from the calling validator."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "- `who`: A list of nominator stash accounts who are nominating this validator which"] + #[doc = " should no longer be nominating this validator."] + #[doc = ""] + #[doc = "Note: Making this call only makes sense if you first set the validator preferences to"] + #[doc = "block any further nominations."] + kick { + who: ::std::vec::Vec< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 22)] + #[doc = "Update the various staking configurations ."] + #[doc = ""] + #[doc = "* `min_nominator_bond`: The minimum active bond needed to be a nominator."] + #[doc = "* `min_validator_bond`: The minimum active bond needed to be a validator."] + #[doc = "* `max_nominator_count`: The max number of users who can be a nominator at once. When"] + #[doc = " set to `None`, no limit is enforced."] + #[doc = "* `max_validator_count`: The max number of users who can be a validator at once. When"] + #[doc = " set to `None`, no limit is enforced."] + #[doc = "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which"] + #[doc = " should be filled in order for the `chill_other` transaction to work."] + #[doc = "* `min_commission`: The minimum amount of commission that each validators must maintain."] + #[doc = " This is checked only upon calling `validate`. Existing validators are not affected."] + #[doc = ""] + #[doc = "RuntimeOrigin must be Root to call this function."] + #[doc = ""] + #[doc = "NOTE: Existing nominators and validators will not be affected by this update."] + #[doc = "to kick people under the new limits, `chill_other` should be called."] + set_staking_configs { + min_nominator_bond: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u128, + >, + min_validator_bond: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u128, + >, + max_nominator_count: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u32, + >, + max_validator_count: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u32, + >, + chill_threshold: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + runtime_types::sp_arithmetic::per_things::Percent, + >, + min_commission: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + runtime_types::sp_arithmetic::per_things::Perbill, + >, + }, + #[codec(index = 23)] + #[doc = "Declare a `controller` to stop participating as either a validator or nominator."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_, but can be called by anyone."] + #[doc = ""] + #[doc = "If the caller is the same as the controller being targeted, then no further checks are"] + #[doc = "enforced, and this function behaves just like `chill`."] + #[doc = ""] + #[doc = "If the caller is different than the controller being targeted, the following conditions"] + #[doc = "must be met:"] + #[doc = ""] + #[doc = "* `controller` must belong to a nominator who has become non-decodable,"] + #[doc = ""] + #[doc = "Or:"] + #[doc = ""] + #[doc = "* A `ChillThreshold` must be set and checked which defines how close to the max"] + #[doc = " nominators or validators we must reach before users can start chilling one-another."] + #[doc = "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine"] + #[doc = " how close we are to the threshold."] + #[doc = "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines"] + #[doc = " if this is a person that should be chilled because they have not met the threshold"] + #[doc = " bond required."] + #[doc = ""] + #[doc = "This can be helpful if bond requirements are updated, and we need to remove old users"] + #[doc = "who do not satisfy these requirements."] + chill_other { + controller: ::subxt::utils::AccountId32, + }, + #[codec(index = 24)] + #[doc = "Force a validator to have at least the minimum commission. This will not affect a"] + #[doc = "validator who already has a commission greater than or equal to the minimum. Any account"] + #[doc = "can call this."] + force_apply_min_commission { + validator_stash: ::subxt::utils::AccountId32, + }, + #[codec(index = 25)] + #[doc = "Sets the minimum amount of commission that each validators must maintain."] + #[doc = ""] + #[doc = "This call has lower privilege requirements than `set_staking_config` and can be called"] + #[doc = "by the `T::AdminOrigin`. Root can always call this."] + set_min_commission { + new: runtime_types::sp_arithmetic::per_things::Perbill, + }, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ConfigOp<_0> { + #[codec(index = 0)] + Noop, + #[codec(index = 1)] + Set(_0), + #[codec(index = 2)] + Remove, + } + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum RewardDestination<_0> { + #[codec(index = 0)] + Staked, + #[codec(index = 1)] + Stash, + #[codec(index = 2)] + Controller, + #[codec(index = 3)] + Account(_0), + #[codec(index = 4)] + None, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ValidatorPrefs { + #[codec(compact)] + pub commission: runtime_types::sp_arithmetic::per_things::Perbill, + pub blocked: ::core::primitive::bool, + } + } + pub mod pallet_state_trie_migration { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Control the automatic migration."] # [doc = ""] # [doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."] control_auto_migration { maybe_config : :: core :: option :: Option < runtime_types :: pallet_state_trie_migration :: pallet :: MigrationLimits > , } , # [codec (index = 1)] # [doc = "Continue the migration for the given `limits`."] # [doc = ""] # [doc = "The dispatch origin of this call can be any signed account."] # [doc = ""] # [doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"] # [doc = "Upon successful execution, the transaction fee is returned."] # [doc = ""] # [doc = "The (potentially over-estimated) of the byte length of all the data read must be"] # [doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"] # [doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"] # [doc = "`real_size_upper` bytes of read data."] # [doc = ""] # [doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"] # [doc = "generally trigger a migration that they do not intend. This parameter is just a message"] # [doc = "from caller, saying that they believed `witness_task` was the last state of the"] # [doc = "migration, and they only wish for their transaction to do anything, if this assumption"] # [doc = "holds. In case `witness_task` does not match, the transaction fails."] # [doc = ""] # [doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"] # [doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"] # [doc = "`size` limit can always be overwritten."] continue_migrate { limits : runtime_types :: pallet_state_trie_migration :: pallet :: MigrationLimits , real_size_upper : :: core :: primitive :: u32 , witness_task : runtime_types :: pallet_state_trie_migration :: pallet :: MigrationTask , } , # [codec (index = 2)] # [doc = "Migrate the list of top keys by iterating each of them one by one."] # [doc = ""] # [doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] # [doc = "should only be used in case any keys are leftover due to a bug."] migrate_custom_top { keys : :: std :: vec :: Vec < :: std :: vec :: Vec < :: core :: primitive :: u8 > > , witness_size : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Migrate the list of child keys by iterating each of them one by one."] # [doc = ""] # [doc = "All of the given child keys must be present under one `child_root`."] # [doc = ""] # [doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] # [doc = "should only be used in case any keys are leftover due to a bug."] migrate_custom_child { root : :: std :: vec :: Vec < :: core :: primitive :: u8 > , child_keys : :: std :: vec :: Vec < :: std :: vec :: Vec < :: core :: primitive :: u8 > > , total_size : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Set the maximum limit of the signed migration."] set_signed_max_limits { limits : runtime_types :: pallet_state_trie_migration :: pallet :: MigrationLimits , } , # [codec (index = 5)] # [doc = "Forcefully set the progress the running migration."] # [doc = ""] # [doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"] # [doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"] # [doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"] # [doc = "used, so probably it is already migrated."] # [doc = ""] # [doc = "In case you mess things up, you can also, in principle, use this to reset the migration"] # [doc = "process."] force_set_progress { progress_top : runtime_types :: pallet_state_trie_migration :: pallet :: Progress , progress_child : runtime_types :: pallet_state_trie_migration :: pallet :: Progress , } , } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MigrationLimits { + pub size: ::core::primitive::u32, + pub item: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MigrationTask { + pub progress_top: + runtime_types::pallet_state_trie_migration::pallet::Progress, + pub progress_child: + runtime_types::pallet_state_trie_migration::pallet::Progress, + pub size: ::core::primitive::u32, + pub top_items: ::core::primitive::u32, + pub child_items: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Progress { + #[codec(index = 0)] + ToStart, + #[codec(index = 1)] + LastKey( + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ), + #[codec(index = 2)] + Complete, + } + } + } + pub mod pallet_sudo { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + sudo { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Sudo user to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + sudo_unchecked_weight { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 2)] + #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"] + #[doc = "key."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + set_key { + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 3)] + #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"] + #[doc = "a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + sudo_as { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + } + } + } + pub mod pallet_timestamp { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Set the current time."] + #[doc = ""] + #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"] + #[doc = "phase, if this call hasn't been invoked by that time."] + #[doc = ""] + #[doc = "The timestamp should be greater than the previous one by the amount specified by"] + #[doc = "`MinimumPeriod`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Inherent`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"] + #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in"] + #[doc = " `on_finalize`)"] + #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."] + set { + #[codec(compact)] + now: ::core::primitive::u64, + }, + } + } + } + pub mod pallet_tips { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Report something `reason` that deserves a tip and claim any eventual the finder's fee."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`."] + #[doc = ""] + #[doc = "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be"] + #[doc = " a UTF-8-encoded URL."] + #[doc = "- `who`: The account which should be credited for the tip."] + #[doc = ""] + #[doc = "Emits `NewTip` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)` where `R` length of `reason`."] + #[doc = " - encoding and hashing of 'reason'"] + report_awesome { + reason: ::std::vec::Vec<::core::primitive::u8>, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Retract a prior tip-report from `report_awesome`, and cancel the process of tipping."] + #[doc = ""] + #[doc = "If successful, the original deposit will be unreserved."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the tip identified by `hash`"] + #[doc = "must have been reported by the signing account through `report_awesome` (and not"] + #[doc = "through `tip_new`)."] + #[doc = ""] + #[doc = "- `hash`: The identity of the open tip for which a tip value is declared. This is formed"] + #[doc = " as the hash of the tuple of the original tip `reason` and the beneficiary account ID."] + #[doc = ""] + #[doc = "Emits `TipRetracted` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`"] + #[doc = " - Depends on the length of `T::Hash` which is fixed."] + retract_tip { hash: ::subxt::utils::H256 }, + #[codec(index = 2)] + #[doc = "Give a tip for something new; no finder's fee will be taken."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must be a"] + #[doc = "member of the `Tippers` set."] + #[doc = ""] + #[doc = "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be"] + #[doc = " a UTF-8-encoded URL."] + #[doc = "- `who`: The account which should be credited for the tip."] + #[doc = "- `tip_value`: The amount of tip that the sender would like to give. The median tip"] + #[doc = " value of active tippers will be given to the `who`."] + #[doc = ""] + #[doc = "Emits `NewTip` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + T)` where `R` length of `reason`, `T` is the number of tippers."] + #[doc = " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by"] + #[doc = " `ContainsLengthBound`. The actual cost depends on the implementation of"] + #[doc = " `T::Tippers`."] + #[doc = " - `O(R)`: hashing and encoding of reason of length `R`"] + tip_new { + reason: ::std::vec::Vec<::core::primitive::u8>, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + tip_value: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "Declare a tip value for an already-open tip."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must be a"] + #[doc = "member of the `Tippers` set."] + #[doc = ""] + #[doc = "- `hash`: The identity of the open tip for which a tip value is declared. This is formed"] + #[doc = " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary"] + #[doc = " account ID."] + #[doc = "- `tip_value`: The amount of tip that the sender would like to give. The median tip"] + #[doc = " value of active tippers will be given to the `who`."] + #[doc = ""] + #[doc = "Emits `TipClosing` if the threshold of tippers has been reached and the countdown period"] + #[doc = "has started."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`, insert"] + #[doc = " tip and check closing, `T` is charged as upper bound given by `ContainsLengthBound`."] + #[doc = " The actual cost depends on the implementation of `T::Tippers`."] + #[doc = ""] + #[doc = " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it"] + #[doc = " is weighted as if almost full i.e of length `T-1`."] + tip { + hash: ::subxt::utils::H256, + #[codec(compact)] + tip_value: ::core::primitive::u128, + }, + #[codec(index = 4)] + #[doc = "Close and payout a tip."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "The tip identified by `hash` must have finished its countdown period."] + #[doc = ""] + #[doc = "- `hash`: The identity of the open tip for which a tip value is declared. This is formed"] + #[doc = " as the hash of the tuple of the original tip `reason` and the beneficiary account ID."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- : `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`. `T`"] + #[doc = " is charged as upper bound given by `ContainsLengthBound`. The actual cost depends on"] + #[doc = " the implementation of `T::Tippers`."] + close_tip { hash: ::subxt::utils::H256 }, + #[codec(index = 5)] + #[doc = "Remove and slash an already-open tip."] + #[doc = ""] + #[doc = "May only be called from `T::RejectOrigin`."] + #[doc = ""] + #[doc = "As a result, the finder is slashed and the deposits are lost."] + #[doc = ""] + #[doc = "Emits `TipSlashed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + slash_tip { hash: ::subxt::utils::H256 }, + } + } + } + pub mod pallet_transaction_storage { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Index and store data off chain. Minimum data size is 1 bytes, maximum is"] # [doc = "`MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`"] # [doc = "is called."] # [doc = "## Complexity"] # [doc = "- O(n*log(n)) of data size, as all data is pushed to an in-memory trie."] store { data : :: std :: vec :: Vec < :: core :: primitive :: u8 > , } , # [codec (index = 1)] # [doc = "Renew previously stored data. Parameters are the block number that contains"] # [doc = "previous `store` or `renew` call and transaction index within that block."] # [doc = "Transaction index is emitted in the `Stored` or `Renewed` event."] # [doc = "Applies same fees as `store`."] # [doc = "## Complexity"] # [doc = "- O(1)."] renew { block : :: core :: primitive :: u32 , index : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Check storage proof for block number `block_number() - StoragePeriod`."] # [doc = "If such block does not exist the proof is expected to be `None`."] # [doc = "## Complexity"] # [doc = "- Linear w.r.t the number of indexed transactions in the proved block for random"] # [doc = " probing."] # [doc = "There's a DB read for each transaction."] check_proof { proof : runtime_types :: sp_transaction_storage_proof :: TransactionStorageProof , } , } + } + } + pub mod pallet_treasury { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Put forward a suggestion for spending. A deposit proportional to the value"] + #[doc = "is reserved and slashed if the proposal is rejected. It is returned once the"] + #[doc = "proposal is awarded."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + propose_spend { + #[codec(compact)] + value: ::core::primitive::u128, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Reject a proposed spend. The original deposit will be slashed."] + #[doc = ""] + #[doc = "May only be called from `T::RejectOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + reject_proposal { + #[codec(compact)] + proposal_id: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Approve a proposal. At a later time, the proposal will be allocated to the beneficiary"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::ApproveOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = " - O(1)."] + approve_proposal { + #[codec(compact)] + proposal_id: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "- `origin`: Must be `SpendOrigin` with the `Success` value being at least `amount`."] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The destination account for the transfer."] + #[doc = ""] + #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"] + #[doc = "beneficiary."] + spend { + #[codec(compact)] + amount: ::core::primitive::u128, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 4)] + #[doc = "Force a previously approved proposal to be removed from the approval queue."] + #[doc = "The original deposit will no longer be returned."] + #[doc = ""] + #[doc = "May only be called from `T::RejectOrigin`."] + #[doc = "- `proposal_id`: The index of a proposal"] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(A) where `A` is the number of approvals"] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,"] + #[doc = "i.e., the proposal has not been approved. This could also mean the proposal does not"] + #[doc = "exist altogether, thus there is no way it would have been approved in the first place."] + remove_approval { + #[codec(compact)] + proposal_id: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_uniques { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Issue a new collection of non-fungible items from a public origin."] + #[doc = ""] + #[doc = "This new collection has no items initially and its owner is the origin."] + #[doc = ""] + #[doc = "The origin must conform to the configured `CreateOrigin` and have sufficient funds free."] + #[doc = ""] + #[doc = "`ItemDeposit` funds of sender are reserved."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `collection`: The identifier of the new collection. This must not be currently in use."] + #[doc = "- `admin`: The admin of this collection. The admin is the initial address of each"] + #[doc = "member of the collection's admin team."] + #[doc = ""] + #[doc = "Emits `Created` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + create { + collection: ::core::primitive::u32, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Issue a new collection of non-fungible items from a privileged origin."] + #[doc = ""] + #[doc = "This new collection has no items initially."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin`."] + #[doc = ""] + #[doc = "Unlike `create`, no funds are reserved."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the new item. This must not be currently in use."] + #[doc = "- `owner`: The owner of this collection of items. The owner has full superuser"] + #[doc = " permissions"] + #[doc = "over this item, but may later change and configure the permissions using"] + #[doc = "`transfer_ownership` and `set_team`."] + #[doc = ""] + #[doc = "Emits `ForceCreated` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_create { + collection: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + free_holding: ::core::primitive::bool, + }, + #[codec(index = 2)] + #[doc = "Destroy a collection of fungible items."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the"] + #[doc = "owner of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection to be destroyed."] + #[doc = "- `witness`: Information on the items minted in the collection. This must be"] + #[doc = "correct."] + #[doc = ""] + #[doc = "Emits `Destroyed` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(n + m)` where:"] + #[doc = "- `n = witness.items`"] + #[doc = "- `m = witness.item_metadatas`"] + #[doc = "- `a = witness.attributes`"] + destroy { + collection: ::core::primitive::u32, + witness: runtime_types::pallet_uniques::types::DestroyWitness, + }, + #[codec(index = 3)] + #[doc = "Mint an item of a particular collection."] + #[doc = ""] + #[doc = "The origin must be Signed and the sender must be the Issuer of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be minted."] + #[doc = "- `item`: The item value of the item to be minted."] + #[doc = "- `beneficiary`: The initial owner of the minted item."] + #[doc = ""] + #[doc = "Emits `Issued` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + mint { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 4)] + #[doc = "Destroy a single item."] + #[doc = ""] + #[doc = "Origin must be Signed and the signing account must be either:"] + #[doc = "- the Admin of the `collection`;"] + #[doc = "- the Owner of the `item`;"] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be burned."] + #[doc = "- `item`: The item of the item to be burned."] + #[doc = "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the"] + #[doc = " item is owned by this value."] + #[doc = ""] + #[doc = "Emits `Burned` with the actual amount burned."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: `check_owner.is_some()`."] + burn { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + check_owner: ::core::option::Option< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 5)] + #[doc = "Move an item from the sender account to another."] + #[doc = ""] + #[doc = "This resets the approved account of the item."] + #[doc = ""] + #[doc = "Origin must be Signed and the signing account must be either:"] + #[doc = "- the Admin of the `collection`;"] + #[doc = "- the Owner of the `item`;"] + #[doc = "- the approved delegate for the `item` (in this case, the approval is reset)."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = "- `collection`: The collection of the item to be transferred."] + #[doc = "- `item`: The item of the item to be transferred."] + #[doc = "- `dest`: The account to receive ownership of the item."] + #[doc = ""] + #[doc = "Emits `Transferred`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + transfer { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 6)] + #[doc = "Reevaluate the deposits on some items."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection to be frozen."] + #[doc = "- `items`: The items of the collection whose deposits will be reevaluated."] + #[doc = ""] + #[doc = "NOTE: This exists as a best-effort function. Any items which are unknown or"] + #[doc = "in the case that the owner account does not have reservable funds to pay for a"] + #[doc = "deposit increase are ignored. Generally the owner isn't going to call this on items"] + #[doc = "whose existing deposit is less than the refreshed deposit as it would only cost them,"] + #[doc = "so it's of little consequence."] + #[doc = ""] + #[doc = "It will still return an error in the case that the collection is unknown of the signer"] + #[doc = "is not permitted to call it."] + #[doc = ""] + #[doc = "Weight: `O(items.len())`"] + redeposit { + collection: ::core::primitive::u32, + items: ::std::vec::Vec<::core::primitive::u32>, + }, + #[codec(index = 7)] + #[doc = "Disallow further unprivileged transfer of an item."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be frozen."] + #[doc = "- `item`: The item of the item to be frozen."] + #[doc = ""] + #[doc = "Emits `Frozen`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + freeze { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Re-allow unprivileged transfer of an item."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be thawed."] + #[doc = "- `item`: The item of the item to be thawed."] + #[doc = ""] + #[doc = "Emits `Thawed`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + thaw { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + }, + #[codec(index = 9)] + #[doc = "Disallow further unprivileged transfers for a whole collection."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection to be frozen."] + #[doc = ""] + #[doc = "Emits `CollectionFrozen`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + freeze_collection { collection: ::core::primitive::u32 }, + #[codec(index = 10)] + #[doc = "Re-allow unprivileged transfers for a whole collection."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Admin of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection to be thawed."] + #[doc = ""] + #[doc = "Emits `CollectionThawed`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + thaw_collection { collection: ::core::primitive::u32 }, + #[codec(index = 11)] + #[doc = "Change the Owner of a collection."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection whose owner should be changed."] + #[doc = "- `owner`: The new Owner of this collection. They must have called"] + #[doc = " `set_accept_ownership` with `collection` in order for this operation to succeed."] + #[doc = ""] + #[doc = "Emits `OwnerChanged`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + transfer_ownership { + collection: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 12)] + #[doc = "Change the Issuer, Admin and Freezer of a collection."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection whose team should be changed."] + #[doc = "- `issuer`: The new Issuer of this collection."] + #[doc = "- `admin`: The new Admin of this collection."] + #[doc = "- `freezer`: The new Freezer of this collection."] + #[doc = ""] + #[doc = "Emits `TeamChanged`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_team { + collection: ::core::primitive::u32, + issuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + freezer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 13)] + #[doc = "Approve an item to be transferred by a delegated third-party account."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be"] + #[doc = "either the owner of the `item` or the admin of the collection."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be approved for delegated transfer."] + #[doc = "- `item`: The item of the item to be approved for delegated transfer."] + #[doc = "- `delegate`: The account to delegate permission to transfer the item."] + #[doc = ""] + #[doc = "Important NOTE: The `approved` account gets reset after each transfer."] + #[doc = ""] + #[doc = "Emits `ApprovedTransfer` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + approve_transfer { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 14)] + #[doc = "Cancel the prior approval for the transfer of an item by a delegate."] + #[doc = ""] + #[doc = "Origin must be either:"] + #[doc = "- the `Force` origin;"] + #[doc = "- `Signed` with the signer being the Admin of the `collection`;"] + #[doc = "- `Signed` with the signer being the Owner of the `item`;"] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = "- `collection`: The collection of the item of whose approval will be cancelled."] + #[doc = "- `item`: The item of the item of whose approval will be cancelled."] + #[doc = "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to"] + #[doc = " which permission of transfer is delegated."] + #[doc = ""] + #[doc = "Emits `ApprovalCancelled` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + cancel_approval { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + maybe_check_delegate: ::core::option::Option< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 15)] + #[doc = "Alter the attributes of a given item."] + #[doc = ""] + #[doc = "Origin must be `ForceOrigin`."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the item."] + #[doc = "- `owner`: The new Owner of this item."] + #[doc = "- `issuer`: The new Issuer of this item."] + #[doc = "- `admin`: The new Admin of this item."] + #[doc = "- `freezer`: The new Freezer of this item."] + #[doc = "- `free_holding`: Whether a deposit is taken for holding an item of this collection."] + #[doc = "- `is_frozen`: Whether this collection is frozen except for permissioned/admin"] + #[doc = "instructions."] + #[doc = ""] + #[doc = "Emits `ItemStatusChanged` with the identity of the item."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_item_status { + collection: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + issuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + freezer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + free_holding: ::core::primitive::bool, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 16)] + #[doc = "Set an attribute for a collection or item."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] + #[doc = "`collection`."] + #[doc = ""] + #[doc = "If the origin is Signed, then funds of signer are reserved according to the formula:"] + #[doc = "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into"] + #[doc = "account any already reserved funds."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose item's metadata to set."] + #[doc = "- `maybe_item`: The identifier of the item whose metadata to set."] + #[doc = "- `key`: The key of the attribute."] + #[doc = "- `value`: The value to which to set the attribute."] + #[doc = ""] + #[doc = "Emits `AttributeSet`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_attribute { + collection: ::core::primitive::u32, + maybe_item: ::core::option::Option<::core::primitive::u32>, + key: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + value: + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 17)] + #[doc = "Clear an attribute for a collection or item."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] + #[doc = "`collection`."] + #[doc = ""] + #[doc = "Any deposit is freed for the collection's owner."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose item's metadata to clear."] + #[doc = "- `maybe_item`: The identifier of the item whose metadata to clear."] + #[doc = "- `key`: The key of the attribute."] + #[doc = ""] + #[doc = "Emits `AttributeCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + clear_attribute { + collection: ::core::primitive::u32, + maybe_item: ::core::option::Option<::core::primitive::u32>, + key: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 18)] + #[doc = "Set the metadata for an item."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] + #[doc = "`collection`."] + #[doc = ""] + #[doc = "If the origin is Signed, then funds of signer are reserved according to the formula:"] + #[doc = "`MetadataDepositBase + DepositPerByte * data.len` taking into"] + #[doc = "account any already reserved funds."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose item's metadata to set."] + #[doc = "- `item`: The identifier of the item whose metadata to set."] + #[doc = "- `data`: The general information of this item. Limited in length by `StringLimit`."] + #[doc = "- `is_frozen`: Whether the metadata should be frozen against further changes."] + #[doc = ""] + #[doc = "Emits `MetadataSet`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_metadata { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + data: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 19)] + #[doc = "Clear the metadata for an item."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] + #[doc = "`item`."] + #[doc = ""] + #[doc = "Any deposit is freed for the collection's owner."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose item's metadata to clear."] + #[doc = "- `item`: The identifier of the item whose metadata to clear."] + #[doc = ""] + #[doc = "Emits `MetadataCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + clear_metadata { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + }, + #[codec(index = 20)] + #[doc = "Set the metadata for a collection."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] + #[doc = "the `collection`."] + #[doc = ""] + #[doc = "If the origin is `Signed`, then funds of signer are reserved according to the formula:"] + #[doc = "`MetadataDepositBase + DepositPerByte * data.len` taking into"] + #[doc = "account any already reserved funds."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the item whose metadata to update."] + #[doc = "- `data`: The general information of this item. Limited in length by `StringLimit`."] + #[doc = "- `is_frozen`: Whether the metadata should be frozen against further changes."] + #[doc = ""] + #[doc = "Emits `CollectionMetadataSet`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_collection_metadata { + collection: ::core::primitive::u32, + data: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 21)] + #[doc = "Clear the metadata for a collection."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] + #[doc = "the `collection`."] + #[doc = ""] + #[doc = "Any deposit is freed for the collection's owner."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose metadata to clear."] + #[doc = ""] + #[doc = "Emits `CollectionMetadataCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + clear_collection_metadata { collection: ::core::primitive::u32 }, + #[codec(index = 22)] + #[doc = "Set (or reset) the acceptance of ownership for a particular account."] + #[doc = ""] + #[doc = "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a"] + #[doc = "provider reference."] + #[doc = ""] + #[doc = "- `maybe_collection`: The identifier of the collection whose ownership the signer is"] + #[doc = " willing to accept, or if `None`, an indication that the signer is willing to accept no"] + #[doc = " ownership transferal."] + #[doc = ""] + #[doc = "Emits `OwnershipAcceptanceChanged`."] + set_accept_ownership { + maybe_collection: ::core::option::Option<::core::primitive::u32>, + }, + #[codec(index = 23)] + #[doc = "Set the maximum amount of items a collection could have."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] + #[doc = "the `collection`."] + #[doc = ""] + #[doc = "Note: This function can only succeed once per collection."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection to change."] + #[doc = "- `max_supply`: The maximum amount of items a collection could have."] + #[doc = ""] + #[doc = "Emits `CollectionMaxSupplySet` event when successful."] + set_collection_max_supply { + collection: ::core::primitive::u32, + max_supply: ::core::primitive::u32, + }, + #[codec(index = 24)] + #[doc = "Set (or reset) the price for an item."] + #[doc = ""] + #[doc = "Origin must be Signed and must be the owner of the asset `item`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item."] + #[doc = "- `item`: The item to set the price for."] + #[doc = "- `price`: The price for the item. Pass `None`, to reset the price."] + #[doc = "- `buyer`: Restricts the buy operation to a specific account."] + #[doc = ""] + #[doc = "Emits `ItemPriceSet` on success if the price is not `None`."] + #[doc = "Emits `ItemPriceRemoved` on success if the price is `None`."] + set_price { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + price: ::core::option::Option<::core::primitive::u128>, + whitelisted_buyer: ::core::option::Option< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 25)] + #[doc = "Allows to buy an item if it's up for sale."] + #[doc = ""] + #[doc = "Origin must be Signed and must not be the owner of the `item`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item."] + #[doc = "- `item`: The item the sender wants to buy."] + #[doc = "- `bid_price`: The price the sender is willing to pay."] + #[doc = ""] + #[doc = "Emits `ItemBought` on success."] + buy_item { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + bid_price: ::core::primitive::u128, + }, + } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct DestroyWitness { + #[codec(compact)] + pub items: ::core::primitive::u32, + #[codec(compact)] + pub item_metadatas: ::core::primitive::u32, + #[codec(compact)] + pub attributes: ::core::primitive::u32, + } + } + } + pub mod pallet_utility { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Send a batch of dispatch calls."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + #[doc = ""] + #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"] + #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"] + #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"] + #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"] + #[doc = "event is deposited."] + batch { + calls: ::std::vec::Vec< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Send a call through an indexed pseudonym of the sender."] + #[doc = ""] + #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"] + #[doc = "use the same filter as the origin of this call."] + #[doc = ""] + #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."] + #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"] + #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"] + #[doc = "in the Multisig pallet instead."] + #[doc = ""] + #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + as_derivative { + index: ::core::primitive::u16, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 2)] + #[doc = "Send a batch of dispatch calls and atomically execute them."] + #[doc = "The whole transaction will rollback and fail if any of the calls failed."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + batch_all { + calls: ::std::vec::Vec< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 3)] + #[doc = "Dispatches a function call with a provided origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + dispatch_as { + as_origin: ::std::boxed::Box< + runtime_types::kitchensink_runtime::OriginCaller, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 4)] + #[doc = "Send a batch of dispatch calls."] + #[doc = "Unlike `batch`, it allows errors and won't interrupt."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + force_batch { + calls: ::std::vec::Vec< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 5)] + #[doc = "Dispatch a function call with a specified weight."] + #[doc = ""] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Root origin to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + with_weight { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + weight: runtime_types::sp_weights::weight_v2::Weight, + }, + } + } + } + pub mod pallet_vesting { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Unlock any vested funds of the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + vest, + #[codec(index = 1)] + #[doc = "Unlock any vested funds of a `target` account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + vest_other { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 2)] + #[doc = "Create a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account receiving the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + vested_transfer { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + schedule: + runtime_types::pallet_vesting::vesting_info::VestingInfo< + ::core::primitive::u128, + ::core::primitive::u32, + >, + }, + #[codec(index = 3)] + #[doc = "Force a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `source`: The account whose funds should be transferred."] + #[doc = "- `target`: The account that should be transferred the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + force_vested_transfer { + source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + schedule: + runtime_types::pallet_vesting::vesting_info::VestingInfo< + ::core::primitive::u128, + ::core::primitive::u32, + >, + }, + #[codec(index = 4)] + #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"] + #[doc = "the highest possible start and end blocks. If both schedules have already started the"] + #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"] + #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"] + #[doc = "unmodified."] + #[doc = ""] + #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."] + #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."] + #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"] + #[doc = "and both will be removed."] + #[doc = ""] + #[doc = "Merged schedule attributes:"] + #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"] + #[doc = " current_block)`."] + #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."] + #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `schedule1_index`: index of the first schedule to merge."] + #[doc = "- `schedule2_index`: index of the second schedule to merge."] + merge_schedules { + schedule1_index: ::core::primitive::u32, + schedule2_index: ::core::primitive::u32, + }, + } + } + pub mod vesting_info { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct VestingInfo<_0, _1> { + pub locked: _0, + pub per_block: _0, + pub starting_block: _1, + } + } + } + pub mod pallet_whitelist { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + whitelist_call { call_hash: ::subxt::utils::H256 }, + #[codec(index = 1)] + remove_whitelisted_call { call_hash: ::subxt::utils::H256 }, + #[codec(index = 2)] + dispatch_whitelisted_call { + call_hash: ::subxt::utils::H256, + call_encoded_len: ::core::primitive::u32, + call_weight_witness: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 3)] + dispatch_whitelisted_call_with_preimage { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + } + } + } + pub mod sp_arithmetic { + use super::runtime_types; + pub mod per_things { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct PerU16(pub ::core::primitive::u16); + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Perbill(pub ::core::primitive::u32); + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Percent(pub ::core::primitive::u8); + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Perquintill(pub ::core::primitive::u64); + } + } + pub mod sp_authority_discovery { + use super::runtime_types; + pub mod app { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub runtime_types::sp_core::sr25519::Public); + } + } + pub mod sp_consensus_babe { + use super::runtime_types; + pub mod app { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub runtime_types::sp_core::sr25519::Public); + } + pub mod digests { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum NextConfigDescriptor { + #[codec(index = 1)] + V1 { + c: (::core::primitive::u64, ::core::primitive::u64), + allowed_slots: runtime_types::sp_consensus_babe::AllowedSlots, + }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum AllowedSlots { + #[codec(index = 0)] + PrimarySlots, + #[codec(index = 1)] + PrimaryAndSecondaryPlainSlots, + #[codec(index = 2)] + PrimaryAndSecondaryVRFSlots, + } + } + pub mod sp_consensus_grandpa { + use super::runtime_types; + pub mod app { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub runtime_types::sp_core::ed25519::Public); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub runtime_types::sp_core::ed25519::Signature); + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Equivocation<_0, _1> { + #[codec(index = 0)] + Prevote( + runtime_types::finality_grandpa::Equivocation< + runtime_types::sp_consensus_grandpa::app::Public, + runtime_types::finality_grandpa::Prevote<_0, _1>, + runtime_types::sp_consensus_grandpa::app::Signature, + >, + ), + #[codec(index = 1)] + Precommit( + runtime_types::finality_grandpa::Equivocation< + runtime_types::sp_consensus_grandpa::app::Public, + runtime_types::finality_grandpa::Precommit<_0, _1>, + runtime_types::sp_consensus_grandpa::app::Signature, + >, + ), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct EquivocationProof<_0, _1> { + pub set_id: ::core::primitive::u64, + pub equivocation: + runtime_types::sp_consensus_grandpa::Equivocation<_0, _1>, + } + } + pub mod sp_consensus_slots { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct EquivocationProof<_0, _1> { + pub offender: _1, + pub slot: runtime_types::sp_consensus_slots::Slot, + pub first_header: _0, + pub second_header: _0, + } + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Slot(pub ::core::primitive::u64); + } + pub mod sp_core { + use super::runtime_types; + pub mod ecdsa { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub [::core::primitive::u8; 65usize]); + } + pub mod ed25519 { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub [::core::primitive::u8; 32usize]); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub [::core::primitive::u8; 64usize]); + } + pub mod offchain { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct OpaqueMultiaddr(pub ::std::vec::Vec<::core::primitive::u8>); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct OpaqueNetworkState { + pub peer_id: runtime_types::sp_core::OpaquePeerId, + pub external_addresses: ::std::vec::Vec< + runtime_types::sp_core::offchain::OpaqueMultiaddr, + >, + } + } + pub mod sr25519 { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub [::core::primitive::u8; 32usize]); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub [::core::primitive::u8; 64usize]); + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct OpaquePeerId(pub ::std::vec::Vec<::core::primitive::u8>); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Void {} + } + pub mod sp_npos_elections { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ElectionScore { + pub minimal_stake: ::core::primitive::u128, + pub sum_stake: ::core::primitive::u128, + pub sum_stake_squared: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Support<_0> { + pub total: ::core::primitive::u128, + pub voters: ::std::vec::Vec<(_0, ::core::primitive::u128)>, + } + } + pub mod sp_runtime { + use super::runtime_types; + pub mod generic { + use super::runtime_types; + pub mod digest { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Digest { + pub logs: ::std::vec::Vec< + runtime_types::sp_runtime::generic::digest::DigestItem, + >, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum DigestItem { + #[codec(index = 6)] + PreRuntime( + [::core::primitive::u8; 4usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + #[codec(index = 4)] + Consensus( + [::core::primitive::u8; 4usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + #[codec(index = 5)] + Seal( + [::core::primitive::u8; 4usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + #[codec(index = 0)] + Other(::std::vec::Vec<::core::primitive::u8>), + #[codec(index = 8)] + RuntimeEnvironmentUpdated, + } + } + pub mod era { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Era { + #[codec(index = 0)] + Immortal, + #[codec(index = 1)] + Mortal1(::core::primitive::u8), + #[codec(index = 2)] + Mortal2(::core::primitive::u8), + #[codec(index = 3)] + Mortal3(::core::primitive::u8), + #[codec(index = 4)] + Mortal4(::core::primitive::u8), + #[codec(index = 5)] + Mortal5(::core::primitive::u8), + #[codec(index = 6)] + Mortal6(::core::primitive::u8), + #[codec(index = 7)] + Mortal7(::core::primitive::u8), + #[codec(index = 8)] + Mortal8(::core::primitive::u8), + #[codec(index = 9)] + Mortal9(::core::primitive::u8), + #[codec(index = 10)] + Mortal10(::core::primitive::u8), + #[codec(index = 11)] + Mortal11(::core::primitive::u8), + #[codec(index = 12)] + Mortal12(::core::primitive::u8), + #[codec(index = 13)] + Mortal13(::core::primitive::u8), + #[codec(index = 14)] + Mortal14(::core::primitive::u8), + #[codec(index = 15)] + Mortal15(::core::primitive::u8), + #[codec(index = 16)] + Mortal16(::core::primitive::u8), + #[codec(index = 17)] + Mortal17(::core::primitive::u8), + #[codec(index = 18)] + Mortal18(::core::primitive::u8), + #[codec(index = 19)] + Mortal19(::core::primitive::u8), + #[codec(index = 20)] + Mortal20(::core::primitive::u8), + #[codec(index = 21)] + Mortal21(::core::primitive::u8), + #[codec(index = 22)] + Mortal22(::core::primitive::u8), + #[codec(index = 23)] + Mortal23(::core::primitive::u8), + #[codec(index = 24)] + Mortal24(::core::primitive::u8), + #[codec(index = 25)] + Mortal25(::core::primitive::u8), + #[codec(index = 26)] + Mortal26(::core::primitive::u8), + #[codec(index = 27)] + Mortal27(::core::primitive::u8), + #[codec(index = 28)] + Mortal28(::core::primitive::u8), + #[codec(index = 29)] + Mortal29(::core::primitive::u8), + #[codec(index = 30)] + Mortal30(::core::primitive::u8), + #[codec(index = 31)] + Mortal31(::core::primitive::u8), + #[codec(index = 32)] + Mortal32(::core::primitive::u8), + #[codec(index = 33)] + Mortal33(::core::primitive::u8), + #[codec(index = 34)] + Mortal34(::core::primitive::u8), + #[codec(index = 35)] + Mortal35(::core::primitive::u8), + #[codec(index = 36)] + Mortal36(::core::primitive::u8), + #[codec(index = 37)] + Mortal37(::core::primitive::u8), + #[codec(index = 38)] + Mortal38(::core::primitive::u8), + #[codec(index = 39)] + Mortal39(::core::primitive::u8), + #[codec(index = 40)] + Mortal40(::core::primitive::u8), + #[codec(index = 41)] + Mortal41(::core::primitive::u8), + #[codec(index = 42)] + Mortal42(::core::primitive::u8), + #[codec(index = 43)] + Mortal43(::core::primitive::u8), + #[codec(index = 44)] + Mortal44(::core::primitive::u8), + #[codec(index = 45)] + Mortal45(::core::primitive::u8), + #[codec(index = 46)] + Mortal46(::core::primitive::u8), + #[codec(index = 47)] + Mortal47(::core::primitive::u8), + #[codec(index = 48)] + Mortal48(::core::primitive::u8), + #[codec(index = 49)] + Mortal49(::core::primitive::u8), + #[codec(index = 50)] + Mortal50(::core::primitive::u8), + #[codec(index = 51)] + Mortal51(::core::primitive::u8), + #[codec(index = 52)] + Mortal52(::core::primitive::u8), + #[codec(index = 53)] + Mortal53(::core::primitive::u8), + #[codec(index = 54)] + Mortal54(::core::primitive::u8), + #[codec(index = 55)] + Mortal55(::core::primitive::u8), + #[codec(index = 56)] + Mortal56(::core::primitive::u8), + #[codec(index = 57)] + Mortal57(::core::primitive::u8), + #[codec(index = 58)] + Mortal58(::core::primitive::u8), + #[codec(index = 59)] + Mortal59(::core::primitive::u8), + #[codec(index = 60)] + Mortal60(::core::primitive::u8), + #[codec(index = 61)] + Mortal61(::core::primitive::u8), + #[codec(index = 62)] + Mortal62(::core::primitive::u8), + #[codec(index = 63)] + Mortal63(::core::primitive::u8), + #[codec(index = 64)] + Mortal64(::core::primitive::u8), + #[codec(index = 65)] + Mortal65(::core::primitive::u8), + #[codec(index = 66)] + Mortal66(::core::primitive::u8), + #[codec(index = 67)] + Mortal67(::core::primitive::u8), + #[codec(index = 68)] + Mortal68(::core::primitive::u8), + #[codec(index = 69)] + Mortal69(::core::primitive::u8), + #[codec(index = 70)] + Mortal70(::core::primitive::u8), + #[codec(index = 71)] + Mortal71(::core::primitive::u8), + #[codec(index = 72)] + Mortal72(::core::primitive::u8), + #[codec(index = 73)] + Mortal73(::core::primitive::u8), + #[codec(index = 74)] + Mortal74(::core::primitive::u8), + #[codec(index = 75)] + Mortal75(::core::primitive::u8), + #[codec(index = 76)] + Mortal76(::core::primitive::u8), + #[codec(index = 77)] + Mortal77(::core::primitive::u8), + #[codec(index = 78)] + Mortal78(::core::primitive::u8), + #[codec(index = 79)] + Mortal79(::core::primitive::u8), + #[codec(index = 80)] + Mortal80(::core::primitive::u8), + #[codec(index = 81)] + Mortal81(::core::primitive::u8), + #[codec(index = 82)] + Mortal82(::core::primitive::u8), + #[codec(index = 83)] + Mortal83(::core::primitive::u8), + #[codec(index = 84)] + Mortal84(::core::primitive::u8), + #[codec(index = 85)] + Mortal85(::core::primitive::u8), + #[codec(index = 86)] + Mortal86(::core::primitive::u8), + #[codec(index = 87)] + Mortal87(::core::primitive::u8), + #[codec(index = 88)] + Mortal88(::core::primitive::u8), + #[codec(index = 89)] + Mortal89(::core::primitive::u8), + #[codec(index = 90)] + Mortal90(::core::primitive::u8), + #[codec(index = 91)] + Mortal91(::core::primitive::u8), + #[codec(index = 92)] + Mortal92(::core::primitive::u8), + #[codec(index = 93)] + Mortal93(::core::primitive::u8), + #[codec(index = 94)] + Mortal94(::core::primitive::u8), + #[codec(index = 95)] + Mortal95(::core::primitive::u8), + #[codec(index = 96)] + Mortal96(::core::primitive::u8), + #[codec(index = 97)] + Mortal97(::core::primitive::u8), + #[codec(index = 98)] + Mortal98(::core::primitive::u8), + #[codec(index = 99)] + Mortal99(::core::primitive::u8), + #[codec(index = 100)] + Mortal100(::core::primitive::u8), + #[codec(index = 101)] + Mortal101(::core::primitive::u8), + #[codec(index = 102)] + Mortal102(::core::primitive::u8), + #[codec(index = 103)] + Mortal103(::core::primitive::u8), + #[codec(index = 104)] + Mortal104(::core::primitive::u8), + #[codec(index = 105)] + Mortal105(::core::primitive::u8), + #[codec(index = 106)] + Mortal106(::core::primitive::u8), + #[codec(index = 107)] + Mortal107(::core::primitive::u8), + #[codec(index = 108)] + Mortal108(::core::primitive::u8), + #[codec(index = 109)] + Mortal109(::core::primitive::u8), + #[codec(index = 110)] + Mortal110(::core::primitive::u8), + #[codec(index = 111)] + Mortal111(::core::primitive::u8), + #[codec(index = 112)] + Mortal112(::core::primitive::u8), + #[codec(index = 113)] + Mortal113(::core::primitive::u8), + #[codec(index = 114)] + Mortal114(::core::primitive::u8), + #[codec(index = 115)] + Mortal115(::core::primitive::u8), + #[codec(index = 116)] + Mortal116(::core::primitive::u8), + #[codec(index = 117)] + Mortal117(::core::primitive::u8), + #[codec(index = 118)] + Mortal118(::core::primitive::u8), + #[codec(index = 119)] + Mortal119(::core::primitive::u8), + #[codec(index = 120)] + Mortal120(::core::primitive::u8), + #[codec(index = 121)] + Mortal121(::core::primitive::u8), + #[codec(index = 122)] + Mortal122(::core::primitive::u8), + #[codec(index = 123)] + Mortal123(::core::primitive::u8), + #[codec(index = 124)] + Mortal124(::core::primitive::u8), + #[codec(index = 125)] + Mortal125(::core::primitive::u8), + #[codec(index = 126)] + Mortal126(::core::primitive::u8), + #[codec(index = 127)] + Mortal127(::core::primitive::u8), + #[codec(index = 128)] + Mortal128(::core::primitive::u8), + #[codec(index = 129)] + Mortal129(::core::primitive::u8), + #[codec(index = 130)] + Mortal130(::core::primitive::u8), + #[codec(index = 131)] + Mortal131(::core::primitive::u8), + #[codec(index = 132)] + Mortal132(::core::primitive::u8), + #[codec(index = 133)] + Mortal133(::core::primitive::u8), + #[codec(index = 134)] + Mortal134(::core::primitive::u8), + #[codec(index = 135)] + Mortal135(::core::primitive::u8), + #[codec(index = 136)] + Mortal136(::core::primitive::u8), + #[codec(index = 137)] + Mortal137(::core::primitive::u8), + #[codec(index = 138)] + Mortal138(::core::primitive::u8), + #[codec(index = 139)] + Mortal139(::core::primitive::u8), + #[codec(index = 140)] + Mortal140(::core::primitive::u8), + #[codec(index = 141)] + Mortal141(::core::primitive::u8), + #[codec(index = 142)] + Mortal142(::core::primitive::u8), + #[codec(index = 143)] + Mortal143(::core::primitive::u8), + #[codec(index = 144)] + Mortal144(::core::primitive::u8), + #[codec(index = 145)] + Mortal145(::core::primitive::u8), + #[codec(index = 146)] + Mortal146(::core::primitive::u8), + #[codec(index = 147)] + Mortal147(::core::primitive::u8), + #[codec(index = 148)] + Mortal148(::core::primitive::u8), + #[codec(index = 149)] + Mortal149(::core::primitive::u8), + #[codec(index = 150)] + Mortal150(::core::primitive::u8), + #[codec(index = 151)] + Mortal151(::core::primitive::u8), + #[codec(index = 152)] + Mortal152(::core::primitive::u8), + #[codec(index = 153)] + Mortal153(::core::primitive::u8), + #[codec(index = 154)] + Mortal154(::core::primitive::u8), + #[codec(index = 155)] + Mortal155(::core::primitive::u8), + #[codec(index = 156)] + Mortal156(::core::primitive::u8), + #[codec(index = 157)] + Mortal157(::core::primitive::u8), + #[codec(index = 158)] + Mortal158(::core::primitive::u8), + #[codec(index = 159)] + Mortal159(::core::primitive::u8), + #[codec(index = 160)] + Mortal160(::core::primitive::u8), + #[codec(index = 161)] + Mortal161(::core::primitive::u8), + #[codec(index = 162)] + Mortal162(::core::primitive::u8), + #[codec(index = 163)] + Mortal163(::core::primitive::u8), + #[codec(index = 164)] + Mortal164(::core::primitive::u8), + #[codec(index = 165)] + Mortal165(::core::primitive::u8), + #[codec(index = 166)] + Mortal166(::core::primitive::u8), + #[codec(index = 167)] + Mortal167(::core::primitive::u8), + #[codec(index = 168)] + Mortal168(::core::primitive::u8), + #[codec(index = 169)] + Mortal169(::core::primitive::u8), + #[codec(index = 170)] + Mortal170(::core::primitive::u8), + #[codec(index = 171)] + Mortal171(::core::primitive::u8), + #[codec(index = 172)] + Mortal172(::core::primitive::u8), + #[codec(index = 173)] + Mortal173(::core::primitive::u8), + #[codec(index = 174)] + Mortal174(::core::primitive::u8), + #[codec(index = 175)] + Mortal175(::core::primitive::u8), + #[codec(index = 176)] + Mortal176(::core::primitive::u8), + #[codec(index = 177)] + Mortal177(::core::primitive::u8), + #[codec(index = 178)] + Mortal178(::core::primitive::u8), + #[codec(index = 179)] + Mortal179(::core::primitive::u8), + #[codec(index = 180)] + Mortal180(::core::primitive::u8), + #[codec(index = 181)] + Mortal181(::core::primitive::u8), + #[codec(index = 182)] + Mortal182(::core::primitive::u8), + #[codec(index = 183)] + Mortal183(::core::primitive::u8), + #[codec(index = 184)] + Mortal184(::core::primitive::u8), + #[codec(index = 185)] + Mortal185(::core::primitive::u8), + #[codec(index = 186)] + Mortal186(::core::primitive::u8), + #[codec(index = 187)] + Mortal187(::core::primitive::u8), + #[codec(index = 188)] + Mortal188(::core::primitive::u8), + #[codec(index = 189)] + Mortal189(::core::primitive::u8), + #[codec(index = 190)] + Mortal190(::core::primitive::u8), + #[codec(index = 191)] + Mortal191(::core::primitive::u8), + #[codec(index = 192)] + Mortal192(::core::primitive::u8), + #[codec(index = 193)] + Mortal193(::core::primitive::u8), + #[codec(index = 194)] + Mortal194(::core::primitive::u8), + #[codec(index = 195)] + Mortal195(::core::primitive::u8), + #[codec(index = 196)] + Mortal196(::core::primitive::u8), + #[codec(index = 197)] + Mortal197(::core::primitive::u8), + #[codec(index = 198)] + Mortal198(::core::primitive::u8), + #[codec(index = 199)] + Mortal199(::core::primitive::u8), + #[codec(index = 200)] + Mortal200(::core::primitive::u8), + #[codec(index = 201)] + Mortal201(::core::primitive::u8), + #[codec(index = 202)] + Mortal202(::core::primitive::u8), + #[codec(index = 203)] + Mortal203(::core::primitive::u8), + #[codec(index = 204)] + Mortal204(::core::primitive::u8), + #[codec(index = 205)] + Mortal205(::core::primitive::u8), + #[codec(index = 206)] + Mortal206(::core::primitive::u8), + #[codec(index = 207)] + Mortal207(::core::primitive::u8), + #[codec(index = 208)] + Mortal208(::core::primitive::u8), + #[codec(index = 209)] + Mortal209(::core::primitive::u8), + #[codec(index = 210)] + Mortal210(::core::primitive::u8), + #[codec(index = 211)] + Mortal211(::core::primitive::u8), + #[codec(index = 212)] + Mortal212(::core::primitive::u8), + #[codec(index = 213)] + Mortal213(::core::primitive::u8), + #[codec(index = 214)] + Mortal214(::core::primitive::u8), + #[codec(index = 215)] + Mortal215(::core::primitive::u8), + #[codec(index = 216)] + Mortal216(::core::primitive::u8), + #[codec(index = 217)] + Mortal217(::core::primitive::u8), + #[codec(index = 218)] + Mortal218(::core::primitive::u8), + #[codec(index = 219)] + Mortal219(::core::primitive::u8), + #[codec(index = 220)] + Mortal220(::core::primitive::u8), + #[codec(index = 221)] + Mortal221(::core::primitive::u8), + #[codec(index = 222)] + Mortal222(::core::primitive::u8), + #[codec(index = 223)] + Mortal223(::core::primitive::u8), + #[codec(index = 224)] + Mortal224(::core::primitive::u8), + #[codec(index = 225)] + Mortal225(::core::primitive::u8), + #[codec(index = 226)] + Mortal226(::core::primitive::u8), + #[codec(index = 227)] + Mortal227(::core::primitive::u8), + #[codec(index = 228)] + Mortal228(::core::primitive::u8), + #[codec(index = 229)] + Mortal229(::core::primitive::u8), + #[codec(index = 230)] + Mortal230(::core::primitive::u8), + #[codec(index = 231)] + Mortal231(::core::primitive::u8), + #[codec(index = 232)] + Mortal232(::core::primitive::u8), + #[codec(index = 233)] + Mortal233(::core::primitive::u8), + #[codec(index = 234)] + Mortal234(::core::primitive::u8), + #[codec(index = 235)] + Mortal235(::core::primitive::u8), + #[codec(index = 236)] + Mortal236(::core::primitive::u8), + #[codec(index = 237)] + Mortal237(::core::primitive::u8), + #[codec(index = 238)] + Mortal238(::core::primitive::u8), + #[codec(index = 239)] + Mortal239(::core::primitive::u8), + #[codec(index = 240)] + Mortal240(::core::primitive::u8), + #[codec(index = 241)] + Mortal241(::core::primitive::u8), + #[codec(index = 242)] + Mortal242(::core::primitive::u8), + #[codec(index = 243)] + Mortal243(::core::primitive::u8), + #[codec(index = 244)] + Mortal244(::core::primitive::u8), + #[codec(index = 245)] + Mortal245(::core::primitive::u8), + #[codec(index = 246)] + Mortal246(::core::primitive::u8), + #[codec(index = 247)] + Mortal247(::core::primitive::u8), + #[codec(index = 248)] + Mortal248(::core::primitive::u8), + #[codec(index = 249)] + Mortal249(::core::primitive::u8), + #[codec(index = 250)] + Mortal250(::core::primitive::u8), + #[codec(index = 251)] + Mortal251(::core::primitive::u8), + #[codec(index = 252)] + Mortal252(::core::primitive::u8), + #[codec(index = 253)] + Mortal253(::core::primitive::u8), + #[codec(index = 254)] + Mortal254(::core::primitive::u8), + #[codec(index = 255)] + Mortal255(::core::primitive::u8), + } + } + pub mod header { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Header<_0, _1> { + pub parent_hash: ::subxt::utils::H256, + #[codec(compact)] + pub number: _0, + pub state_root: ::subxt::utils::H256, + pub extrinsics_root: ::subxt::utils::H256, + pub digest: runtime_types::sp_runtime::generic::digest::Digest, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<_1>, + } + } + pub mod unchecked_extrinsic { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct UncheckedExtrinsic<_0, _1, _2, _3>( + pub ::std::vec::Vec<::core::primitive::u8>, + #[codec(skip)] pub ::core::marker::PhantomData<(_1, _0, _2, _3)>, + ); + } + } + pub mod traits { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BlakeTwo256; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum MultiSignature { + #[codec(index = 0)] + Ed25519(runtime_types::sp_core::ed25519::Signature), + #[codec(index = 1)] + Sr25519(runtime_types::sp_core::sr25519::Signature), + #[codec(index = 2)] + Ecdsa(runtime_types::sp_core::ecdsa::Signature), + } + } + pub mod sp_session { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MembershipProof { + pub session: ::core::primitive::u32, + pub trie_nodes: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + pub validator_count: ::core::primitive::u32, + } + } + pub mod sp_transaction_storage_proof { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct TransactionStorageProof { + pub chunk: ::std::vec::Vec<::core::primitive::u8>, + pub proof: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + } + } + pub mod sp_weights { + use super::runtime_types; + pub mod weight_v2 { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Weight { + #[codec(compact)] + pub ref_time: ::core::primitive::u64, + #[codec(compact)] + pub proof_size: ::core::primitive::u64, + } + } + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct OldWeight(pub ::core::primitive::u64); + } + } + #[doc = r" The default error type returned when there is a runtime issue,"] + #[doc = r" exposed here for ease of use."] + pub type DispatchError = runtime_types::sp_runtime::DispatchError; + pub fn constants() -> ConstantsApi { + ConstantsApi + } + pub fn storage() -> StorageApi { + StorageApi + } + pub fn tx() -> TransactionApi { + TransactionApi + } + pub struct ConstantsApi; + impl ConstantsApi { + pub fn balances(&self) -> balances::constants::ConstantsApi { + balances::constants::ConstantsApi + } + } + pub struct StorageApi; + impl StorageApi { + pub fn balances(&self) -> balances::storage::StorageApi { + balances::storage::StorageApi + } + } + pub struct TransactionApi; + impl TransactionApi { + pub fn balances(&self) -> balances::calls::TransactionApi { + balances::calls::TransactionApi + } + } + #[doc = r" check whether the Client you are using is aligned with the statically generated codegen."] + pub fn validate_codegen>( + client: &C, + ) -> Result<(), ::subxt::error::MetadataError> { + let runtime_metadata_hash = client.metadata().metadata_hash(&PALLETS); + if runtime_metadata_hash + != [ + 83u8, 136u8, 130u8, 96u8, 143u8, 113u8, 229u8, 107u8, 41u8, 31u8, 166u8, + 254u8, 194u8, 33u8, 137u8, 153u8, 215u8, 35u8, 129u8, 80u8, 147u8, 52u8, + 36u8, 136u8, 200u8, 65u8, 108u8, 230u8, 160u8, 3u8, 219u8, 139u8, + ] + { + Err(::subxt::error::MetadataError::IncompatibleMetadata) + } else { + Ok(()) + } + } +} diff --git a/balances.json b/balances.json new file mode 100644 index 0000000000..a08956c8d5 --- /dev/null +++ b/balances.json @@ -0,0 +1,23586 @@ +[ + 1635018093, + { + "V14": { + "types": { + "types": [ + { + "id": 0, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 1 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "type": 5, + "typeName": "grandpa::Equivocation,\nAuthoritySignature>" + } + ], + "index": 0 + }, + { + "name": "Precommit", + "fields": [ + { + "type": 14, + "typeName": "grandpa::Equivocation,\nAuthoritySignature>" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 1, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 2, + "type": { + "def": { + "array": { + "len": 32, + "type": 3 + } + } + } + }, + { + "id": 3, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 5, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 6 + }, + { + "name": "V", + "type": 8 + }, + { + "name": "S", + "type": 9 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64" + }, + { + "name": "identity", + "type": 6, + "typeName": "Id" + }, + { + "name": "first", + "type": 13, + "typeName": "(V, S)" + }, + { + "name": "second", + "type": 13, + "typeName": "(V, S)" + } + ] + } + } + } + }, + { + "id": 6, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 7, + "typeName": "ed25519::Public" + } + ] + } + } + } + }, + { + "id": 7, + "type": { + "path": [ + "sp_core", + "ed25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 8, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 1 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 1, + "typeName": "H" + }, + { + "name": "target_number", + "type": 4, + "typeName": "N" + } + ] + } + } + } + }, + { + "id": 9, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 10, + "typeName": "ed25519::Signature" + } + ] + } + } + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_core", + "ed25519", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 11, + "typeName": "[u8; 64]" + } + ] + } + } + } + }, + { + "id": 11, + "type": { + "def": { + "array": { + "len": 64, + "type": 3 + } + } + } + }, + { + "id": 12, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 13, + "type": { + "def": { + "tuple": [ + 8, + 9 + ] + } + } + }, + { + "id": 14, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 6 + }, + { + "name": "V", + "type": 15 + }, + { + "name": "S", + "type": 9 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64" + }, + { + "name": "identity", + "type": 6, + "typeName": "Id" + }, + { + "name": "first", + "type": 16, + "typeName": "(V, S)" + }, + { + "name": "second", + "type": 16, + "typeName": "(V, S)" + } + ] + } + } + } + }, + { + "id": 15, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 1 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 1, + "typeName": "H" + }, + { + "name": "target_number", + "type": 4, + "typeName": "N" + } + ] + } + } + } + }, + { + "id": 16, + "type": { + "def": { + "tuple": [ + 15, + 9 + ] + } + } + }, + { + "id": 17, + "type": { + "def": { + "array": { + "len": 5, + "type": 18 + } + } + } + }, + { + "id": 18, + "type": { + "def": { + "tuple": [ + 19, + 21 + ] + } + } + }, + { + "id": 19, + "type": { + "def": { + "compact": { + "type": 20 + } + } + } + }, + { + "id": 20, + "type": { + "def": { + "primitive": "u16" + } + } + }, + { + "id": 21, + "type": { + "def": { + "compact": { + "type": 22 + } + } + } + }, + { + "id": 22, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "def": { + "composite": { + "fields": [ + { + "type": 20, + "typeName": "u16" + } + ] + } + } + } + }, + { + "id": 23, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 24, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 25, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 20, + "typeName": "u16" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 25, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 271, + "typeName": "Box" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 25, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "weight", + "type": 144, + "typeName": "Weight" + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 25, + "type": { + "def": { + "sequence": { + "type": 26 + } + } + } + }, + { + "id": 26, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeCall" + ], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "type": 27, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 0 + }, + { + "name": "Utility", + "fields": [ + { + "type": 24, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 1 + }, + { + "name": "Babe", + "fields": [ + { + "type": 32, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 2 + }, + { + "name": "Timestamp", + "fields": [ + { + "type": 48, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 3 + }, + { + "name": "Indices", + "fields": [ + { + "type": 50, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 5 + }, + { + "name": "Balances", + "fields": [ + { + "type": 55, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 6 + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "type": 58, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 9 + }, + { + "name": "Staking", + "fields": [ + { + "type": 115, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 10 + }, + { + "name": "Session", + "fields": [ + { + "type": 128, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 11 + }, + { + "name": "Democracy", + "fields": [ + { + "type": 132, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 12 + }, + { + "name": "Council", + "fields": [ + { + "type": 140, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 13 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 145, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 14 + }, + { + "name": "Elections", + "fields": [ + { + "type": 146, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 15 + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "type": 148, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 16 + }, + { + "name": "Grandpa", + "fields": [ + { + "type": 149, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 17 + }, + { + "name": "Treasury", + "fields": [ + { + "type": 151, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 18 + }, + { + "name": "Contracts", + "fields": [ + { + "type": 152, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 19 + }, + { + "name": "Sudo", + "fields": [ + { + "type": 155, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 20 + }, + { + "name": "ImOnline", + "fields": [ + { + "type": 156, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 21 + }, + { + "name": "Identity", + "fields": [ + { + "type": 164, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 26 + }, + { + "name": "Society", + "fields": [ + { + "type": 206, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 27 + }, + { + "name": "Recovery", + "fields": [ + { + "type": 208, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 28 + }, + { + "name": "Vesting", + "fields": [ + { + "type": 209, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 29 + }, + { + "name": "Scheduler", + "fields": [ + { + "type": 211, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 30 + }, + { + "name": "Glutton", + "fields": [ + { + "type": 214, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 31 + }, + { + "name": "Preimage", + "fields": [ + { + "type": 215, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 32 + }, + { + "name": "Proxy", + "fields": [ + { + "type": 216, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 33 + }, + { + "name": "Multisig", + "fields": [ + { + "type": 219, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 34 + }, + { + "name": "Bounties", + "fields": [ + { + "type": 221, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 35 + }, + { + "name": "Tips", + "fields": [ + { + "type": 222, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 36 + }, + { + "name": "Assets", + "fields": [ + { + "type": 223, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 37 + }, + { + "name": "Lottery", + "fields": [ + { + "type": 224, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 39 + }, + { + "name": "Nis", + "fields": [ + { + "type": 225, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 40 + }, + { + "name": "Uniques", + "fields": [ + { + "type": 228, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 41 + }, + { + "name": "Nfts", + "fields": [ + { + "type": 235, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 42 + }, + { + "name": "TransactionStorage", + "fields": [ + { + "type": 260, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 43 + }, + { + "name": "VoterList", + "fields": [ + { + "type": 262, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 44 + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "type": 263, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 45 + }, + { + "name": "ChildBounties", + "fields": [ + { + "type": 269, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 46 + }, + { + "name": "Referenda", + "fields": [ + { + "type": 270, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 47 + }, + { + "name": "Remark", + "fields": [ + { + "type": 278, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 48 + }, + { + "name": "RootTesting", + "fields": [ + { + "type": 279, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 49 + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "type": 280, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 50 + }, + { + "name": "Whitelist", + "fields": [ + { + "type": 285, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 51 + }, + { + "name": "AllianceMotion", + "fields": [ + { + "type": 286, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 52 + }, + { + "name": "Alliance", + "fields": [ + { + "type": 287, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 53 + }, + { + "name": "NominationPools", + "fields": [ + { + "type": 296, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 54 + }, + { + "name": "RankedPolls", + "fields": [ + { + "type": 303, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 55 + }, + { + "name": "RankedCollective", + "fields": [ + { + "type": 304, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 56 + }, + { + "name": "FastUnstake", + "fields": [ + { + "type": 305, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 57 + }, + { + "name": "MessageQueue", + "fields": [ + { + "type": 306, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 58 + }, + { + "name": "Pov", + "fields": [ + { + "type": 307, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor" + } + ], + "index": 59 + } + ] + } + } + } + }, + { + "id": 27, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 28, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "## Complexity", + "- `O(1)`" + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64" + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 28, + "typeName": "Vec" + } + ], + "index": 2, + "docs": [ + "Set the new runtime code.", + "", + "## Complexity", + "- `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`" + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 28, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "## Complexity", + "- `O(C)` where `C` length of `code`" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 29, + "typeName": "Vec" + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 31, + "typeName": "Vec" + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 28, + "typeName": "Key" + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 28, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 28, + "type": { + "def": { + "sequence": { + "type": 3 + } + } + } + }, + { + "id": 29, + "type": { + "def": { + "sequence": { + "type": 30 + } + } + } + }, + { + "id": 30, + "type": { + "def": { + "tuple": [ + 28, + 28 + ] + } + } + }, + { + "id": 31, + "type": { + "def": { + "sequence": { + "type": 28 + } + } + } + }, + { + "id": 32, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 33, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 44, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 0, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 33, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 44, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 1, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported.", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 45, + "typeName": "NextConfigDescriptor" + } + ], + "index": 2, + "docs": [ + "Plan an epoch config change. The epoch config change is recorded and will be enacted on", + "the next call to `enact_epoch_change`. The config will be activated one epoch after.", + "Multiple calls to this method will replace any existing planned config change that had", + "not been enacted yet." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 33, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 34 + }, + { + "name": "Id", + "type": 41 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 41, + "typeName": "Id" + }, + { + "name": "slot", + "type": 43, + "typeName": "Slot" + }, + { + "name": "first_header", + "type": 34, + "typeName": "Header" + }, + { + "name": "second_header", + "type": 34, + "typeName": "Header" + } + ] + } + } + } + }, + { + "id": 34, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": 35 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 1, + "typeName": "Hash::Output" + }, + { + "name": "number", + "type": 36, + "typeName": "Number" + }, + { + "name": "state_root", + "type": 1, + "typeName": "Hash::Output" + }, + { + "name": "extrinsics_root", + "type": 1, + "typeName": "Hash::Output" + }, + { + "name": "digest", + "type": 37, + "typeName": "Digest" + } + ] + } + } + } + }, + { + "id": 35, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "def": { + "composite": {} + } + } + }, + { + "id": 36, + "type": { + "def": { + "compact": { + "type": 4 + } + } + } + }, + { + "id": 37, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 38, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 38, + "type": { + "def": { + "sequence": { + "type": 39 + } + } + } + }, + { + "id": 39, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "type": 40, + "typeName": "ConsensusEngineId" + }, + { + "type": 28, + "typeName": "Vec" + } + ], + "index": 6 + }, + { + "name": "Consensus", + "fields": [ + { + "type": 40, + "typeName": "ConsensusEngineId" + }, + { + "type": 28, + "typeName": "Vec" + } + ], + "index": 4 + }, + { + "name": "Seal", + "fields": [ + { + "type": 40, + "typeName": "ConsensusEngineId" + }, + { + "type": 28, + "typeName": "Vec" + } + ], + "index": 5 + }, + { + "name": "Other", + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ], + "index": 0 + }, + { + "name": "RuntimeEnvironmentUpdated", + "index": 8 + } + ] + } + } + } + }, + { + "id": 40, + "type": { + "def": { + "array": { + "len": 4, + "type": 3 + } + } + } + }, + { + "id": 41, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 42, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 42, + "type": { + "path": [ + "sp_core", + "sr25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 43, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 44, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex" + }, + { + "name": "trie_nodes", + "type": 31, + "typeName": "Vec>" + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount" + } + ] + } + } + } + }, + { + "id": 45, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 46, + "typeName": "(u64, u64)" + }, + { + "name": "allowed_slots", + "type": 47, + "typeName": "AllowedSlots" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 46, + "type": { + "def": { + "tuple": [ + 12, + 12 + ] + } + } + }, + { + "id": 47, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "index": 0 + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "index": 1 + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "index": 2 + } + ] + } + } + } + }, + { + "id": 48, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 49, + "typeName": "T::Moment" + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "`MinimumPeriod`.", + "", + "The dispatch origin for this call must be `Inherent`.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 49, + "type": { + "def": { + "compact": { + "type": 12 + } + } + } + }, + { + "id": 50, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + }, + { + "name": "freeze", + "type": 54, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex" + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 51, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 52 + }, + { + "name": "AccountIndex", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "type": 52, + "typeName": "AccountId" + } + ], + "index": 0 + }, + { + "name": "Index", + "fields": [ + { + "type": 36, + "typeName": "AccountIndex" + } + ], + "index": 1 + }, + { + "name": "Raw", + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ], + "index": 2 + }, + { + "name": "Address32", + "fields": [ + { + "type": 2, + "typeName": "[u8; 32]" + } + ], + "index": 3 + }, + { + "name": "Address20", + "fields": [ + { + "type": 53, + "typeName": "[u8; 20]" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 52, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "def": { + "composite": { + "fields": [ + { + "type": 2, + "typeName": "[u8; 32]" + } + ] + } + } + } + }, + { + "id": 53, + "type": { + "def": { + "array": { + "len": 20, + "type": 3 + } + } + } + }, + { + "id": 54, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 55, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer", + "fields": [ + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor.", + "", + "## Complexity", + "- Dependent on arguments but not critical, given proper implementations for input config", + " types. See related functions below.", + "- It contains a limited number of reads and writes internally and no complex", + " computation.", + "", + "Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check", + " that the transfer will not kill the origin account." + ] + }, + { + "name": "set_balance", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "new_free", + "type": 56, + "typeName": "T::Balance" + }, + { + "name": "new_reserved", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "Set the balances of a given account.", + "", + "This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + "also alter the total issuance of the system (`TotalIssuance`) appropriately.", + "If the new free or reserved balance is below the existential deposit,", + "it will reset the account nonce (`frame_system::AccountNonce`).", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer`, except the origin must be root and the source account may be", + "specified.", + "## Complexity", + "- Same as transfer, but additional read and write because the source account is not", + " assumed to be in the overlay." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer`] call, but with a check that the transfer will not kill the", + "origin account.", + "", + "99% of the time you want [`transfer`] instead.", + "", + "[`transfer`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "keep_alive", + "type": 54, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true). ## Complexity", + "- O(1). Just like transfer, but reading the user's transferable balance first." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 56, + "type": { + "def": { + "compact": { + "type": 57 + } + } + } + }, + { + "id": 57, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 58, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 59, + "typeName": "Box>>" + }, + { + "name": "witness", + "type": 107, + "typeName": "SolutionOrSnapshotSize" + } + ], + "index": 0, + "docs": [ + "Submit a solution for the unsigned phase.", + "", + "The dispatch origin fo this call must be __none__.", + "", + "This submission is checked on the fly. Moreover, this unsigned solution is only", + "validated when submitted to the pool from the **local** node. Effectively, this means", + "that only active validators can submit this transaction when authoring a block (similar", + "to an inherent).", + "", + "To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + "panic if the solution submitted by the validator is invalid in any way, effectively", + "putting their authoring reward at risk.", + "", + "No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 108, + "typeName": "Option" + } + ], + "index": 1, + "docs": [ + "Set a new value for `MinimumUntrustedScore`.", + "", + "Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + "This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 109, + "typeName": "Supports" + } + ], + "index": 2, + "docs": [ + "Set a solution in the queue, to be handed out to the client of this pallet in the next", + "call to `ElectionProvider::elect`.", + "", + "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + "The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + "feasibility check itself can in principle cause the election process to fail (due to", + "memory/weight constrains)." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 59, + "typeName": "Box>>" + } + ], + "index": 3, + "docs": [ + "Submit a solution for the signed phase.", + "", + "The dispatch origin fo this call must be __signed__.", + "", + "The solution is potentially queued, based on the claimed score and processed at the end", + "of the signed phase.", + "", + "A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + "might be rewarded, slashed, or get all or a part of the deposit back." + ] + }, + { + "name": "governance_fallback", + "fields": [ + { + "name": "maybe_max_voters", + "type": 114, + "typeName": "Option" + }, + { + "name": "maybe_max_targets", + "type": 114, + "typeName": "Option" + } + ], + "index": 4, + "docs": [ + "Trigger the governance fallback.", + "", + "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to", + "calling [`Call::set_emergency_election_result`]." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 59, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 60 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 60, + "typeName": "S" + }, + { + "name": "score", + "type": 106, + "typeName": "ElectionScore" + }, + { + "name": "round", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 60, + "type": { + "path": [ + "kitchensink_runtime", + "NposSolution16" + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 61 + }, + { + "name": "votes2", + "type": 63 + }, + { + "name": "votes3", + "type": 65 + }, + { + "name": "votes4", + "type": 68 + }, + { + "name": "votes5", + "type": 71 + }, + { + "name": "votes6", + "type": 74 + }, + { + "name": "votes7", + "type": 76 + }, + { + "name": "votes8", + "type": 79 + }, + { + "name": "votes9", + "type": 82 + }, + { + "name": "votes10", + "type": 85 + }, + { + "name": "votes11", + "type": 88 + }, + { + "name": "votes12", + "type": 91 + }, + { + "name": "votes13", + "type": 94 + }, + { + "name": "votes14", + "type": 97 + }, + { + "name": "votes15", + "type": 100 + }, + { + "name": "votes16", + "type": 103 + } + ] + } + } + } + }, + { + "id": 61, + "type": { + "def": { + "sequence": { + "type": 62 + } + } + } + }, + { + "id": 62, + "type": { + "def": { + "tuple": [ + 36, + 19 + ] + } + } + }, + { + "id": 63, + "type": { + "def": { + "sequence": { + "type": 64 + } + } + } + }, + { + "id": 64, + "type": { + "def": { + "tuple": [ + 36, + 18, + 19 + ] + } + } + }, + { + "id": 65, + "type": { + "def": { + "sequence": { + "type": 66 + } + } + } + }, + { + "id": 66, + "type": { + "def": { + "tuple": [ + 36, + 67, + 19 + ] + } + } + }, + { + "id": 67, + "type": { + "def": { + "array": { + "len": 2, + "type": 18 + } + } + } + }, + { + "id": 68, + "type": { + "def": { + "sequence": { + "type": 69 + } + } + } + }, + { + "id": 69, + "type": { + "def": { + "tuple": [ + 36, + 70, + 19 + ] + } + } + }, + { + "id": 70, + "type": { + "def": { + "array": { + "len": 3, + "type": 18 + } + } + } + }, + { + "id": 71, + "type": { + "def": { + "sequence": { + "type": 72 + } + } + } + }, + { + "id": 72, + "type": { + "def": { + "tuple": [ + 36, + 73, + 19 + ] + } + } + }, + { + "id": 73, + "type": { + "def": { + "array": { + "len": 4, + "type": 18 + } + } + } + }, + { + "id": 74, + "type": { + "def": { + "sequence": { + "type": 75 + } + } + } + }, + { + "id": 75, + "type": { + "def": { + "tuple": [ + 36, + 17, + 19 + ] + } + } + }, + { + "id": 76, + "type": { + "def": { + "sequence": { + "type": 77 + } + } + } + }, + { + "id": 77, + "type": { + "def": { + "tuple": [ + 36, + 78, + 19 + ] + } + } + }, + { + "id": 78, + "type": { + "def": { + "array": { + "len": 6, + "type": 18 + } + } + } + }, + { + "id": 79, + "type": { + "def": { + "sequence": { + "type": 80 + } + } + } + }, + { + "id": 80, + "type": { + "def": { + "tuple": [ + 36, + 81, + 19 + ] + } + } + }, + { + "id": 81, + "type": { + "def": { + "array": { + "len": 7, + "type": 18 + } + } + } + }, + { + "id": 82, + "type": { + "def": { + "sequence": { + "type": 83 + } + } + } + }, + { + "id": 83, + "type": { + "def": { + "tuple": [ + 36, + 84, + 19 + ] + } + } + }, + { + "id": 84, + "type": { + "def": { + "array": { + "len": 8, + "type": 18 + } + } + } + }, + { + "id": 85, + "type": { + "def": { + "sequence": { + "type": 86 + } + } + } + }, + { + "id": 86, + "type": { + "def": { + "tuple": [ + 36, + 87, + 19 + ] + } + } + }, + { + "id": 87, + "type": { + "def": { + "array": { + "len": 9, + "type": 18 + } + } + } + }, + { + "id": 88, + "type": { + "def": { + "sequence": { + "type": 89 + } + } + } + }, + { + "id": 89, + "type": { + "def": { + "tuple": [ + 36, + 90, + 19 + ] + } + } + }, + { + "id": 90, + "type": { + "def": { + "array": { + "len": 10, + "type": 18 + } + } + } + }, + { + "id": 91, + "type": { + "def": { + "sequence": { + "type": 92 + } + } + } + }, + { + "id": 92, + "type": { + "def": { + "tuple": [ + 36, + 93, + 19 + ] + } + } + }, + { + "id": 93, + "type": { + "def": { + "array": { + "len": 11, + "type": 18 + } + } + } + }, + { + "id": 94, + "type": { + "def": { + "sequence": { + "type": 95 + } + } + } + }, + { + "id": 95, + "type": { + "def": { + "tuple": [ + 36, + 96, + 19 + ] + } + } + }, + { + "id": 96, + "type": { + "def": { + "array": { + "len": 12, + "type": 18 + } + } + } + }, + { + "id": 97, + "type": { + "def": { + "sequence": { + "type": 98 + } + } + } + }, + { + "id": 98, + "type": { + "def": { + "tuple": [ + 36, + 99, + 19 + ] + } + } + }, + { + "id": 99, + "type": { + "def": { + "array": { + "len": 13, + "type": 18 + } + } + } + }, + { + "id": 100, + "type": { + "def": { + "sequence": { + "type": 101 + } + } + } + }, + { + "id": 101, + "type": { + "def": { + "tuple": [ + 36, + 102, + 19 + ] + } + } + }, + { + "id": 102, + "type": { + "def": { + "array": { + "len": 14, + "type": 18 + } + } + } + }, + { + "id": 103, + "type": { + "def": { + "sequence": { + "type": 104 + } + } + } + }, + { + "id": 104, + "type": { + "def": { + "tuple": [ + 36, + 105, + 19 + ] + } + } + }, + { + "id": 105, + "type": { + "def": { + "array": { + "len": 15, + "type": 18 + } + } + } + }, + { + "id": 106, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 57, + "typeName": "ExtendedBalance" + }, + { + "name": "sum_stake", + "type": 57, + "typeName": "ExtendedBalance" + }, + { + "name": "sum_stake_squared", + "type": 57, + "typeName": "ExtendedBalance" + } + ] + } + } + } + }, + { + "id": 107, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 36, + "typeName": "u32" + }, + { + "name": "targets", + "type": 36, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 108, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 106 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 106 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 109, + "type": { + "def": { + "sequence": { + "type": 110 + } + } + } + }, + { + "id": 110, + "type": { + "def": { + "tuple": [ + 52, + 111 + ] + } + } + }, + { + "id": 111, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 52 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 57, + "typeName": "ExtendedBalance" + }, + { + "name": "voters", + "type": 112, + "typeName": "Vec<(AccountId, ExtendedBalance)>" + } + ] + } + } + } + }, + { + "id": 112, + "type": { + "def": { + "sequence": { + "type": 113 + } + } + } + }, + { + "id": 113, + "type": { + "def": { + "tuple": [ + 52, + 57 + ] + } + } + }, + { + "id": 114, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 4 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 115, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "controller", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "payee", + "type": 116, + "typeName": "RewardDestination" + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "## Complexity", + "- Independent of the arguments. Moderate complexity.", + "- O(1).", + "- Three extra DB entries.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ and gets removed as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- O(1)." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + "This essentially frees up that balance to be used by the stash account to do", + "whatever it wants.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Complexity", + "O(S) where S is the number of slashing spans to remove", + "NOTE: Weight annotation is the kill scenario, we refund otherwise." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 117, + "typeName": "ValidatorPrefs" + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 120, + "typeName": "Vec>" + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- The transaction's complexity is proportional to the size of `targets` (N)", + "which is capped at CompactAssignments::LIMIT (T::MaxNominations).", + "- Both the reads and writes follow a similar pattern." + ] + }, + { + "name": "chill", + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 116, + "typeName": "RewardDestination" + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key.", + "---------" + ] + }, + { + "name": "set_controller", + "fields": [ + { + "name": "controller", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 8, + "docs": [ + "(Re-)set the controller of a stash.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "## Complexity", + "O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 36, + "typeName": "u32" + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "O(1)" + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 36, + "typeName": "u32" + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators upto maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 121, + "typeName": "Percent" + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor upto maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "force_new_era", + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 122, + "typeName": "Vec" + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_new_era_always", + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + }, + { + "name": "slash_indices", + "type": 123, + "typeName": "Vec" + } + ], + "index": 17, + "docs": [ + "Cancel enactment of a deferred slash.", + "", + "Can be called by the `T::AdminOrigin`.", + "", + "Parameters: era and indices of the slashes for that era to kill." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 18, + "docs": [ + "Pay out all the stakers behind a single validator for a single era.", + "", + "- `validator_stash` is the stash account of the validator. Their nominators, up to", + " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "## Complexity", + "- At most O(MaxNominatorRewardedPerValidator)." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller.", + "", + "## Complexity", + "- Time complexity: O(L), where L is unlocking chunks", + "- Bounded by `MaxUnlockingChunks`." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below existential deposit.", + "2. or, the `ledger.total` of the stash is below existential deposit.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 120, + "typeName": "Vec>" + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 124, + "typeName": "ConfigOp>" + }, + { + "name": "min_validator_bond", + "type": 124, + "typeName": "ConfigOp>" + }, + { + "name": "max_nominator_count", + "type": 125, + "typeName": "ConfigOp" + }, + { + "name": "max_validator_count", + "type": 125, + "typeName": "ConfigOp" + }, + { + "name": "chill_threshold", + "type": 126, + "typeName": "ConfigOp" + }, + { + "name": "min_commission", + "type": 127, + "typeName": "ConfigOp" + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "controller", + "type": 52, + "typeName": "T::AccountId" + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 52, + "typeName": "T::AccountId" + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 119, + "typeName": "Perbill" + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 116, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 52 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "index": 0 + }, + { + "name": "Stash", + "index": 1 + }, + { + "name": "Controller", + "index": 2 + }, + { + "name": "Account", + "fields": [ + { + "type": 52, + "typeName": "AccountId" + } + ], + "index": 3 + }, + { + "name": "None", + "index": 4 + } + ] + } + } + } + }, + { + "id": 117, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 118, + "typeName": "Perbill" + }, + { + "name": "blocked", + "type": 54, + "typeName": "bool" + } + ] + } + } + } + }, + { + "id": 118, + "type": { + "def": { + "compact": { + "type": 119 + } + } + } + }, + { + "id": 119, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 120, + "type": { + "def": { + "sequence": { + "type": 51 + } + } + } + }, + { + "id": 121, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "u8" + } + ] + } + } + } + }, + { + "id": 122, + "type": { + "def": { + "sequence": { + "type": 52 + } + } + } + }, + { + "id": 123, + "type": { + "def": { + "sequence": { + "type": 4 + } + } + } + }, + { + "id": 124, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 57 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 57, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 125, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 4, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 126, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 121 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 121, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 127, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 119 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 119, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 128, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 129, + "typeName": "T::Keys" + }, + { + "name": "proof", + "type": 28, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 129, + "type": { + "path": [ + "kitchensink_runtime", + "SessionKeys" + ], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 6, + "typeName": "::Public" + }, + { + "name": "babe", + "type": 41, + "typeName": "::Public" + }, + { + "name": "im_online", + "type": 130, + "typeName": "::Public" + }, + { + "name": "authority_discovery", + "type": 131, + "typeName": "::Public" + } + ] + } + } + } + }, + { + "id": 130, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 42, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 131, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "def": { + "composite": { + "fields": [ + { + "type": 42, + "typeName": "sr25519::Public" + } + ] + } + } + } + }, + { + "id": 132, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "proposal", + "type": 133, + "typeName": "BoundedCallOf" + }, + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Propose a sensitive action to be taken.", + "", + "The dispatch origin of this call must be _Signed_ and the sender must", + "have funds to cover the deposit.", + "", + "- `proposal_hash`: The hash of the proposal preimage.", + "- `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + "Emits `Proposed`." + ] + }, + { + "name": "second", + "fields": [ + { + "name": "proposal", + "type": 36, + "typeName": "PropIndex" + } + ], + "index": 1, + "docs": [ + "Signals agreement with a particular proposal.", + "", + "The dispatch origin of this call must be _Signed_ and the sender", + "must have funds to cover the deposit, equal to the original deposit.", + "", + "- `proposal`: The index of the proposal to second." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "ref_index", + "type": 36, + "typeName": "ReferendumIndex" + }, + { + "name": "vote", + "type": 135, + "typeName": "AccountVote>" + } + ], + "index": 2, + "docs": [ + "Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `ref_index`: The index of the referendum to vote for.", + "- `vote`: The vote configuration." + ] + }, + { + "name": "emergency_cancel", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + "referendum.", + "", + "The dispatch origin of this call must be `CancellationOrigin`.", + "", + "-`ref_index`: The index of the referendum to cancel.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "fields": [ + { + "name": "proposal", + "type": 133, + "typeName": "BoundedCallOf" + } + ], + "index": 4, + "docs": [ + "Schedule a referendum to be tabled once it is legal to schedule an external", + "referendum.", + "", + "The dispatch origin of this call must be `ExternalOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal." + ] + }, + { + "name": "external_propose_majority", + "fields": [ + { + "name": "proposal", + "type": 133, + "typeName": "BoundedCallOf" + } + ], + "index": 5, + "docs": [ + "Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + "an external referendum.", + "", + "The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "fields": [ + { + "name": "proposal", + "type": 133, + "typeName": "BoundedCallOf" + } + ], + "index": 6, + "docs": [ + "Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + "schedule an external referendum.", + "", + "The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "H256" + }, + { + "name": "voting_period", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 7, + "docs": [ + "Schedule the currently externally-proposed majority-carries referendum to be tabled", + "immediately. If there is no externally-proposed referendum currently, or if there is one", + "but it is not a majority-carries referendum then it fails.", + "", + "The dispatch of this call must be `FastTrackOrigin`.", + "", + "- `proposal_hash`: The hash of the current external proposal.", + "- `voting_period`: The period that is allowed for voting on this proposal. Increased to", + "\tMust be always greater than zero.", + "\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`.", + "- `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + "Emits `Started`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "H256" + } + ], + "index": 8, + "docs": [ + "Veto and blacklist the external proposal hash.", + "", + "The dispatch origin of this call must be `VetoOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + "Emits `Vetoed`.", + "", + "Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "fields": [ + { + "name": "ref_index", + "type": 36, + "typeName": "ReferendumIndex" + } + ], + "index": 9, + "docs": [ + "Remove a referendum.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "- `ref_index`: The index of the referendum to cancel.", + "", + "# Weight: `O(1)`." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "to", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "conviction", + "type": 137, + "typeName": "Conviction" + }, + { + "name": "balance", + "type": 57, + "typeName": "BalanceOf" + } + ], + "index": 10, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "index": 11, + "docs": [ + "Undelegate the voting power of the sending account.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "index": 12, + "docs": [ + "Clears all public proposals.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Unlock tokens that have an expired lock.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 14, + "docs": [ + "Remove a vote for a referendum.", + "", + "If:", + "- the referendum was cancelled, or", + "- the referendum is ongoing, or", + "- the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the referendum has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for referendum `index`.", + "", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 15, + "docs": [ + "Remove a vote for a referendum.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the referendum was cancelled, because the voter lost the referendum or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "blacklist", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "H256" + }, + { + "name": "maybe_ref_index", + "type": 114, + "typeName": "Option" + } + ], + "index": 16, + "docs": [ + "Permanently place a proposal into the blacklist. This prevents it from ever being", + "proposed again.", + "", + "If called on a queued public or external proposal, then this will result in it being", + "removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + "then it will be cancelled.", + "", + "The dispatch origin of this call must be `BlacklistOrigin`.", + "", + "- `proposal_hash`: The proposal hash to blacklist permanently.", + "- `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + "cancelled.", + "", + "Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "fields": [ + { + "name": "prop_index", + "type": 36, + "typeName": "PropIndex" + } + ], + "index": 17, + "docs": [ + "Remove a proposal.", + "", + "The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + "- `prop_index`: The index of the proposal to cancel.", + "", + "Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "owner", + "type": 138, + "typeName": "MetadataOwner" + }, + { + "name": "maybe_hash", + "type": 139, + "typeName": "Option" + } + ], + "index": 18, + "docs": [ + "Set or clear a metadata of a proposal or a referendum.", + "", + "Parameters:", + "- `origin`: Must correspond to the `MetadataOwner`.", + " - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`", + " threshold.", + " - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`", + " threshold.", + " - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`", + " threshold.", + " - `Signed` by a creator for a public proposal.", + " - `Signed` to clear a metadata for a finished referendum.", + " - `Root` to set a metadata for an ongoing referendum.", + "- `owner`: an identifier of a metadata owner.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 133, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 1, + "typeName": "Hash" + } + ], + "index": 0 + }, + { + "name": "Inline", + "fields": [ + { + "type": 134, + "typeName": "BoundedInline" + } + ], + "index": 1 + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 1, + "typeName": "Hash" + }, + { + "name": "len", + "type": 4, + "typeName": "u32" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 134, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 135, + "type": { + "path": [ + "pallet_democracy", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 57 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 136, + "typeName": "Vote" + }, + { + "name": "balance", + "type": 57, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 57, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 57, + "typeName": "Balance" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 136, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Vote" + ], + "def": { + "composite": { + "fields": [ + { + "type": 3 + } + ] + } + } + } + }, + { + "id": 137, + "type": { + "path": [ + "pallet_democracy", + "conviction", + "Conviction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Locked1x", + "index": 1 + }, + { + "name": "Locked2x", + "index": 2 + }, + { + "name": "Locked3x", + "index": 3 + }, + { + "name": "Locked4x", + "index": 4 + }, + { + "name": "Locked5x", + "index": 5 + }, + { + "name": "Locked6x", + "index": 6 + } + ] + } + } + } + }, + { + "id": 138, + "type": { + "path": [ + "pallet_democracy", + "types", + "MetadataOwner" + ], + "def": { + "variant": { + "variants": [ + { + "name": "External", + "index": 0 + }, + { + "name": "Proposal", + "fields": [ + { + "type": 4, + "typeName": "PropIndex" + } + ], + "index": 1 + }, + { + "name": "Referendum", + "fields": [ + { + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 139, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 1 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 140, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 122, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 141, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 26, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 36, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 26, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 54, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 142, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 144, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 141, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 52 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 52 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 142, + "type": { + "def": { + "compact": { + "type": 143 + } + } + } + }, + { + "id": 143, + "type": { + "path": [ + "sp_weights", + "OldWeight" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 144, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 49, + "typeName": "u64" + }, + { + "name": "proof_size", + "type": 49, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 145, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 122, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 141, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 26, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 36, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 26, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 54, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 142, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 144, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 146, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "votes", + "type": 122, + "typeName": "Vec" + }, + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "Vote for a set of candidates for the upcoming round of election. This can be called to", + "set the initial votes, or update already existing votes.", + "", + "Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + "reserved. The deposit is based on the number of votes and can be updated over time.", + "", + "The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + "If `value` is more than `who`'s free balance, then the maximum of the two is used.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "It is the responsibility of the caller to **NOT** place all of their balance into the", + "lock and keep some for further operations." + ] + }, + { + "name": "remove_voter", + "index": 1, + "docs": [ + "Remove `origin` as a voter.", + "", + "This removes the lock and returns the deposit.", + "", + "The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "fields": [ + { + "name": "candidate_count", + "type": 36, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + "All candidates are wiped at the end of the term. They either become a member/runner-up,", + "or leave the system while their deposit is slashed.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + "to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + "The number of current candidates must be provided as witness data.", + "## Complexity", + "O(C + log(C)) where C is candidate_count." + ] + }, + { + "name": "renounce_candidacy", + "fields": [ + { + "name": "renouncing", + "type": 147, + "typeName": "Renouncing" + } + ], + "index": 3, + "docs": [ + "Renounce one's intention to be a candidate for the next election round. 3 potential", + "outcomes exist:", + "", + "- `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + "- `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + "- `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + "The dispatch origin of this call must be signed, and have one of the above roles.", + "The type of renouncing must be provided as witness data.", + "", + "## Complexity", + " - Renouncing::Candidate(count): O(count + log(count))", + " - Renouncing::Member: O(1)", + " - Renouncing::RunnerUp: O(1)" + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "slash_bond", + "type": 54, + "typeName": "bool" + }, + { + "name": "rerun_election", + "type": 54, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Remove a particular member from the set. This is effective immediately and the bond of", + "the outgoing member is slashed.", + "", + "If a runner-up is available, then the best runner-up will be removed and replaces the", + "outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is", + "started, else, nothing happens.", + "", + "If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,", + "it is returned.", + "", + "The dispatch origin of this call must be root.", + "", + "Note that this does not affect the designated block number of the next election.", + "", + "## Complexity", + "- Check details of remove_and_replace_member() and do_phragmen()." + ] + }, + { + "name": "clean_defunct_voters", + "fields": [ + { + "name": "num_voters", + "type": 4, + "typeName": "u32" + }, + { + "name": "num_defunct", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + "deposit of the removed voters are returned.", + "", + "This is an root function to be used only for cleaning the state.", + "", + "The dispatch origin of this call must be root.", + "", + "## Complexity", + "- Check is_defunct_voter() details." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 147, + "type": { + "path": [ + "pallet_elections_phragmen", + "Renouncing" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Member", + "index": 0 + }, + { + "name": "RunnerUp", + "index": 1 + }, + { + "name": "Candidate", + "fields": [ + { + "type": 36, + "typeName": "u32" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 148, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Add a member `who` to the set.", + "", + "May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Remove a member `who` from the set.", + "", + "May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "fields": [ + { + "name": "remove", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "add", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Swap out one member `remove` for another `add`.", + "", + "May only be called from `T::SwapOrigin`.", + "", + "Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "fields": [ + { + "name": "members", + "type": 122, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Change the membership to a new set, disregarding the existing membership. Be nice and", + "pass `members` pre-sorted.", + "", + "May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "fields": [ + { + "name": "new", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Swap out the sending member for some other key `new`.", + "", + "May only be called from `Signed` origin of a current member.", + "", + "Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Set the prime member. Must be a current member.", + "", + "May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "index": 6, + "docs": [ + "Remove the prime member if it exists.", + "", + "May only be called from `T::PrimeOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 149, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 150, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 44, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 150, + "typeName": "Box>" + }, + { + "name": "key_owner_proof", + "type": 44, + "typeName": "T::KeyOwnerProof" + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 2, + "docs": [ + "Note that the current authority set of the GRANDPA finality gadget has stalled.", + "", + "This will trigger a forced authority set change at the beginning of the next session, to", + "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume", + "that the block signalling the forced change will not be re-orged e.g. 1000 blocks.", + "The block production rate (which may be slowed down because of finality lagging) should", + "be taken into account when choosing the `delay`. The GRANDPA voters based on the new", + "authority will start voting on top of `best_finalized_block_number` for new finalized", + "blocks. `best_finalized_block_number` should be the highest of the latest finalized", + "block of all validators of the new authority set.", + "", + "Only callable by root." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 150, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 1 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 12, + "typeName": "SetId" + }, + { + "name": "equivocation", + "type": 0, + "typeName": "Equivocation" + } + ] + } + } + } + }, + { + "id": 151, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_spend", + "fields": [ + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Put forward a suggestion for spending. A deposit proportional to the value", + "is reserved and slashed if the proposal is rejected. It is returned once the", + "proposal is awarded.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "reject_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 36, + "typeName": "ProposalIndex" + } + ], + "index": 1, + "docs": [ + "Reject a proposed spend. The original deposit will be slashed.", + "", + "May only be called from `T::RejectOrigin`.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "approve_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 36, + "typeName": "ProposalIndex" + } + ], + "index": 2, + "docs": [ + "Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + "and the original deposit will be returned.", + "", + "May only be called from `T::ApproveOrigin`.", + "", + "## Complexity", + " - O(1)." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "amount", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "beneficiary", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "- `origin`: Must be `SpendOrigin` with the `Success` value being at least `amount`.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 36, + "typeName": "ProposalIndex" + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "The original deposit will no longer be returned.", + "", + "May only be called from `T::RejectOrigin`.", + "- `proposal_id`: The index of a proposal", + "", + "## Complexity", + "- O(A) where `A` is the number of approvals", + "", + "Errors:", + "- `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,", + "i.e., the proposal has not been approved. This could also mean the proposal does not", + "exist altogether, thus there is no way it would have been approved in the first place." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 152, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "call_old_weight", + "fields": [ + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 142, + "typeName": "OldWeight" + }, + { + "name": "storage_deposit_limit", + "type": 153, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "data", + "type": 28, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Deprecated version if [`Self::call`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_with_code_old_weight", + "fields": [ + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 142, + "typeName": "OldWeight" + }, + { + "name": "storage_deposit_limit", + "type": 153, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code", + "type": 28, + "typeName": "Vec" + }, + { + "name": "data", + "type": 28, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 28, + "typeName": "Vec" + } + ], + "index": 1, + "docs": [ + "Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_old_weight", + "fields": [ + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 142, + "typeName": "OldWeight" + }, + { + "name": "storage_deposit_limit", + "type": 153, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code_hash", + "type": 1, + "typeName": "CodeHash" + }, + { + "name": "data", + "type": 28, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 28, + "typeName": "Vec" + } + ], + "index": 2, + "docs": [ + "Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`." + ] + }, + { + "name": "upload_code", + "fields": [ + { + "name": "code", + "type": 28, + "typeName": "Vec" + }, + { + "name": "storage_deposit_limit", + "type": 153, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "determinism", + "type": 154, + "typeName": "Determinism" + } + ], + "index": 3, + "docs": [ + "Upload new `code` without instantiating a contract from it.", + "", + "If the code does not already exist a deposit is reserved from the caller", + "and unreserved only when [`Self::remove_code`] is called. The size of the reserve", + "depends on the instrumented size of the the supplied `code`.", + "", + "If the code already exists in storage it will still return `Ok` and upgrades", + "the in storage version to the current", + "[`InstructionWeights::version`](InstructionWeights).", + "", + "- `determinism`: If this is set to any other value but [`Determinism::Deterministic`]", + " then the only way to use this code is to delegate call into it from an offchain", + " execution. Set to [`Determinism::Deterministic`] if in doubt.", + "", + "# Note", + "", + "Anyone can instantiate a contract from any uploaded code and thus prevent its removal.", + "To avoid this situation a constructor could employ access control so that it can", + "only be instantiated by permissioned entities. The same is true when uploading", + "through [`Self::instantiate_with_code`]." + ] + }, + { + "name": "remove_code", + "fields": [ + { + "name": "code_hash", + "type": 1, + "typeName": "CodeHash" + } + ], + "index": 4, + "docs": [ + "Remove the code stored under `code_hash` and refund the deposit to its owner.", + "", + "A code can only be removed by its original uploader (its owner) and only if it is", + "not used by any contract." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "code_hash", + "type": 1, + "typeName": "CodeHash" + } + ], + "index": 5, + "docs": [ + "Privileged function that changes the code of an existing contract.", + "", + "This takes care of updating refcounts and all other necessary operations. Returns", + "an error if either the `code_hash` or `dest` do not exist.", + "", + "# Note", + "", + "This does **not** change the address of the contract in question. This means", + "that the contract address is no longer derived from its code hash after calling", + "this dispatchable." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 144, + "typeName": "Weight" + }, + { + "name": "storage_deposit_limit", + "type": 153, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "data", + "type": 28, + "typeName": "Vec" + } + ], + "index": 6, + "docs": [ + "Makes a call to an account, optionally transferring some balance.", + "", + "# Parameters", + "", + "* `dest`: Address of the contract to call.", + "* `value`: The balance to transfer from the `origin` to `dest`.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the", + " caller to pay for the storage consumed.", + "* `data`: The input data to pass to the contract.", + "", + "* If the account is a smart-contract account, the associated code will be", + "executed and any value will be transferred.", + "* If the account is a regular account, any value will be transferred.", + "* If no account exists and the call value is not less than `existential_deposit`,", + "a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 144, + "typeName": "Weight" + }, + { + "name": "storage_deposit_limit", + "type": 153, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code", + "type": 28, + "typeName": "Vec" + }, + { + "name": "data", + "type": 28, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 28, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Instantiates a new contract from the supplied `code` optionally transferring", + "some balance.", + "", + "This dispatchable has the same effect as calling [`Self::upload_code`] +", + "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please", + "also check the documentation of [`Self::upload_code`].", + "", + "# Parameters", + "", + "* `value`: The balance to transfer from the `origin` to the newly created contract.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved", + " from the caller to pay for the storage consumed.", + "* `code`: The contract code to deploy in raw bytes.", + "* `data`: The input data to pass to the contract constructor.", + "* `salt`: Used for the address derivation. See [`Pallet::contract_address`].", + "", + "Instantiation is executed as follows:", + "", + "- The supplied `code` is instrumented, deployed, and a `code_hash` is created for that", + " code.", + "- If the `code_hash` already exists on the chain the underlying `code` will be shared.", + "- The destination address is computed based on the sender, code_hash and the salt.", + "- The smart-contract account is created at the computed address.", + "- The `value` is transferred to the new account.", + "- The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "instantiate", + "fields": [ + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "gas_limit", + "type": 144, + "typeName": "Weight" + }, + { + "name": "storage_deposit_limit", + "type": 153, + "typeName": "Option< as codec::HasCompact>::Type>" + }, + { + "name": "code_hash", + "type": 1, + "typeName": "CodeHash" + }, + { + "name": "data", + "type": 28, + "typeName": "Vec" + }, + { + "name": "salt", + "type": 28, + "typeName": "Vec" + } + ], + "index": 8, + "docs": [ + "Instantiates a contract from a previously deployed wasm binary.", + "", + "This function is identical to [`Self::instantiate_with_code`] but without the", + "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + "must be supplied." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 153, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 56 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 56 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 154, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "Determinism" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deterministic", + "index": 0 + }, + { + "name": "AllowIndeterminism", + "index": 1 + } + ] + } + } + } + }, + { + "id": 155, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "sudo", + "fields": [ + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "sudo_unchecked_weight", + "fields": [ + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "weight", + "type": 144, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "This function does not check the weight of the call, and instead allows the", + "Sudo user to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "set_key", + "fields": [ + { + "name": "new", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo", + "key.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "sudo_as", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Signed` origin from", + "a given account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 156, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "heartbeat", + "fields": [ + { + "name": "heartbeat", + "type": 157, + "typeName": "Heartbeat" + }, + { + "name": "signature", + "type": 162, + "typeName": "::Signature" + } + ], + "index": 0, + "docs": [ + "## Complexity:", + "- `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is length of", + " `heartbeat.network_state.external_address`", + " - `O(K)`: decoding of length `K`", + " - `O(E)`: decoding/encoding of length `E`" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 157, + "type": { + "path": [ + "pallet_im_online", + "Heartbeat" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumber" + }, + { + "name": "network_state", + "type": 158, + "typeName": "OpaqueNetworkState" + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex" + }, + { + "name": "authority_index", + "type": 4, + "typeName": "AuthIndex" + }, + { + "name": "validators_len", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 158, + "type": { + "path": [ + "sp_core", + "offchain", + "OpaqueNetworkState" + ], + "def": { + "composite": { + "fields": [ + { + "name": "peer_id", + "type": 159, + "typeName": "OpaquePeerId" + }, + { + "name": "external_addresses", + "type": 160, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 159, + "type": { + "path": [ + "sp_core", + "OpaquePeerId" + ], + "def": { + "composite": { + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 160, + "type": { + "def": { + "sequence": { + "type": 161 + } + } + } + }, + { + "id": 161, + "type": { + "path": [ + "sp_core", + "offchain", + "OpaqueMultiaddr" + ], + "def": { + "composite": { + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 162, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 163, + "typeName": "sr25519::Signature" + } + ] + } + } + } + }, + { + "id": 163, + "type": { + "path": [ + "sp_core", + "sr25519", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 11, + "typeName": "[u8; 64]" + } + ] + } + } + } + }, + { + "id": 164, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_registrar", + "fields": [ + { + "name": "account", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Add a registrar to the system.", + "", + "The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + "- `account`: the account of the registrar.", + "", + "Emits `RegistrarAdded` if successful.", + "", + "## Complexity", + "- `O(R)` where `R` registrar-count (governance-bounded and code-bounded)." + ] + }, + { + "name": "set_identity", + "fields": [ + { + "name": "info", + "type": 165, + "typeName": "Box>" + } + ], + "index": 1, + "docs": [ + "Set an account's identity information and reserve the appropriate deposit.", + "", + "If the account already has identity information, the deposit is taken as part payment", + "for the new deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `info`: The identity information.", + "", + "Emits `IdentitySet` if successful.", + "", + "## Complexity", + "- `O(X + X' + R)`", + " - where `X` additional-field-count (deposit-bounded and code-bounded)", + " - where `R` judgements-count (registrar-count-bounded)" + ] + }, + { + "name": "set_subs", + "fields": [ + { + "name": "subs", + "type": 201, + "typeName": "Vec<(T::AccountId, Data)>" + } + ], + "index": 2, + "docs": [ + "Set the sub-accounts of the sender.", + "", + "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + "and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "- `subs`: The identity's (new) sub-accounts.", + "", + "## Complexity", + "- `O(P + S)`", + " - where `P` old-subs-count (hard- and deposit-bounded).", + " - where `S` subs-count (hard- and deposit-bounded)." + ] + }, + { + "name": "clear_identity", + "index": 3, + "docs": [ + "Clear an account's identity info and all sub-accounts and return all deposits.", + "", + "Payment: All reserved balances on the account are returned.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "Emits `IdentityCleared` if successful.", + "", + "## Complexity", + "- `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "request_judgement", + "fields": [ + { + "name": "reg_index", + "type": 36, + "typeName": "RegistrarIndex" + }, + { + "name": "max_fee", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 4, + "docs": [ + "Request a judgement from a registrar.", + "", + "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + "given.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is requested.", + "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + "```nocompile", + "Self::registrars().get(reg_index).unwrap().fee", + "```", + "", + "Emits `JudgementRequested` if successful.", + "", + "## Complexity", + "- `O(R + X)`.", + " - where `R` registrar-count (governance-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "cancel_request", + "fields": [ + { + "name": "reg_index", + "type": 4, + "typeName": "RegistrarIndex" + } + ], + "index": 5, + "docs": [ + "Cancel a previous request.", + "", + "Payment: A previously reserved deposit is returned on success.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + "Emits `JudgementUnrequested` if successful.", + "", + "## Complexity", + "- `O(R + X)`.", + " - where `R` registrar-count (governance-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "set_fee", + "fields": [ + { + "name": "index", + "type": 36, + "typeName": "RegistrarIndex" + }, + { + "name": "fee", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 6, + "docs": [ + "Set the fee required for a judgement to be requested from a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fee`: the new fee.", + "", + "## Complexity", + "- `O(R)`.", + " - where `R` registrar-count (governance-bounded)." + ] + }, + { + "name": "set_account_id", + "fields": [ + { + "name": "index", + "type": 36, + "typeName": "RegistrarIndex" + }, + { + "name": "new", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 7, + "docs": [ + "Change the account associated with a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `new`: the new account ID.", + "", + "## Complexity", + "- `O(R)`.", + " - where `R` registrar-count (governance-bounded)." + ] + }, + { + "name": "set_fields", + "fields": [ + { + "name": "index", + "type": 36, + "typeName": "RegistrarIndex" + }, + { + "name": "fields", + "type": 203, + "typeName": "IdentityFields" + } + ], + "index": 8, + "docs": [ + "Set the field information for a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fields`: the fields that the registrar concerns themselves with.", + "", + "## Complexity", + "- `O(R)`.", + " - where `R` registrar-count (governance-bounded)." + ] + }, + { + "name": "provide_judgement", + "fields": [ + { + "name": "reg_index", + "type": 36, + "typeName": "RegistrarIndex" + }, + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "judgement", + "type": 205, + "typeName": "Judgement>" + }, + { + "name": "identity", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 9, + "docs": [ + "Provide a judgement for an account's identity.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `reg_index`.", + "", + "- `reg_index`: the index of the registrar whose judgement is being made.", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "- `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "- `identity`: The hash of the [`IdentityInfo`] for that the judgement is provided.", + "", + "Emits `JudgementGiven` if successful.", + "", + "## Complexity", + "- `O(R + X)`.", + " - where `R` registrar-count (governance-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "kill_identity", + "fields": [ + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 10, + "docs": [ + "Remove an account's identity and sub-account information and slash the deposits.", + "", + "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + "`Slash`. Verification request deposits are not returned; they should be cancelled", + "manually using `cancel_request`.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`.", + "", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + "Emits `IdentityKilled` if successful.", + "", + "## Complexity", + "- `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded)." + ] + }, + { + "name": "add_sub", + "fields": [ + { + "name": "sub", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "data", + "type": 168, + "typeName": "Data" + } + ], + "index": 11, + "docs": [ + "Add the given account to the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "fields": [ + { + "name": "sub", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "data", + "type": 168, + "typeName": "Data" + } + ], + "index": 12, + "docs": [ + "Alter the associated name of the given sub-account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "fields": [ + { + "name": "sub", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Remove the given account from the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "index": 14, + "docs": [ + "Remove the sender as a sub-account.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender (*not* the original depositor).", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "super-identity.", + "", + "NOTE: This should not normally be used, but is provided in the case that the non-", + "controller of an account is maliciously registered as a sub-account." + ] + } + ] + } + }, + "docs": [ + "Identity pallet declaration." + ] + } + }, + { + "id": 165, + "type": { + "path": [ + "pallet_identity", + "types", + "IdentityInfo" + ], + "params": [ + { + "name": "FieldLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "additional", + "type": 166, + "typeName": "BoundedVec<(Data, Data), FieldLimit>" + }, + { + "name": "display", + "type": 168, + "typeName": "Data" + }, + { + "name": "legal", + "type": 168, + "typeName": "Data" + }, + { + "name": "web", + "type": 168, + "typeName": "Data" + }, + { + "name": "riot", + "type": 168, + "typeName": "Data" + }, + { + "name": "email", + "type": 168, + "typeName": "Data" + }, + { + "name": "pgp_fingerprint", + "type": 200, + "typeName": "Option<[u8; 20]>" + }, + { + "name": "image", + "type": 168, + "typeName": "Data" + }, + { + "name": "twitter", + "type": 168, + "typeName": "Data" + } + ] + } + } + } + }, + { + "id": 166, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 167 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 199, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 167, + "type": { + "def": { + "tuple": [ + 168, + 168 + ] + } + } + }, + { + "id": 168, + "type": { + "path": [ + "pallet_identity", + "types", + "Data" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Raw0", + "fields": [ + { + "type": 169 + } + ], + "index": 1 + }, + { + "name": "Raw1", + "fields": [ + { + "type": 170 + } + ], + "index": 2 + }, + { + "name": "Raw2", + "fields": [ + { + "type": 171 + } + ], + "index": 3 + }, + { + "name": "Raw3", + "fields": [ + { + "type": 172 + } + ], + "index": 4 + }, + { + "name": "Raw4", + "fields": [ + { + "type": 40 + } + ], + "index": 5 + }, + { + "name": "Raw5", + "fields": [ + { + "type": 173 + } + ], + "index": 6 + }, + { + "name": "Raw6", + "fields": [ + { + "type": 174 + } + ], + "index": 7 + }, + { + "name": "Raw7", + "fields": [ + { + "type": 175 + } + ], + "index": 8 + }, + { + "name": "Raw8", + "fields": [ + { + "type": 176 + } + ], + "index": 9 + }, + { + "name": "Raw9", + "fields": [ + { + "type": 177 + } + ], + "index": 10 + }, + { + "name": "Raw10", + "fields": [ + { + "type": 178 + } + ], + "index": 11 + }, + { + "name": "Raw11", + "fields": [ + { + "type": 179 + } + ], + "index": 12 + }, + { + "name": "Raw12", + "fields": [ + { + "type": 180 + } + ], + "index": 13 + }, + { + "name": "Raw13", + "fields": [ + { + "type": 181 + } + ], + "index": 14 + }, + { + "name": "Raw14", + "fields": [ + { + "type": 182 + } + ], + "index": 15 + }, + { + "name": "Raw15", + "fields": [ + { + "type": 183 + } + ], + "index": 16 + }, + { + "name": "Raw16", + "fields": [ + { + "type": 184 + } + ], + "index": 17 + }, + { + "name": "Raw17", + "fields": [ + { + "type": 185 + } + ], + "index": 18 + }, + { + "name": "Raw18", + "fields": [ + { + "type": 186 + } + ], + "index": 19 + }, + { + "name": "Raw19", + "fields": [ + { + "type": 187 + } + ], + "index": 20 + }, + { + "name": "Raw20", + "fields": [ + { + "type": 53 + } + ], + "index": 21 + }, + { + "name": "Raw21", + "fields": [ + { + "type": 188 + } + ], + "index": 22 + }, + { + "name": "Raw22", + "fields": [ + { + "type": 189 + } + ], + "index": 23 + }, + { + "name": "Raw23", + "fields": [ + { + "type": 190 + } + ], + "index": 24 + }, + { + "name": "Raw24", + "fields": [ + { + "type": 191 + } + ], + "index": 25 + }, + { + "name": "Raw25", + "fields": [ + { + "type": 192 + } + ], + "index": 26 + }, + { + "name": "Raw26", + "fields": [ + { + "type": 193 + } + ], + "index": 27 + }, + { + "name": "Raw27", + "fields": [ + { + "type": 194 + } + ], + "index": 28 + }, + { + "name": "Raw28", + "fields": [ + { + "type": 195 + } + ], + "index": 29 + }, + { + "name": "Raw29", + "fields": [ + { + "type": 196 + } + ], + "index": 30 + }, + { + "name": "Raw30", + "fields": [ + { + "type": 197 + } + ], + "index": 31 + }, + { + "name": "Raw31", + "fields": [ + { + "type": 198 + } + ], + "index": 32 + }, + { + "name": "Raw32", + "fields": [ + { + "type": 2 + } + ], + "index": 33 + }, + { + "name": "BlakeTwo256", + "fields": [ + { + "type": 2 + } + ], + "index": 34 + }, + { + "name": "Sha256", + "fields": [ + { + "type": 2 + } + ], + "index": 35 + }, + { + "name": "Keccak256", + "fields": [ + { + "type": 2 + } + ], + "index": 36 + }, + { + "name": "ShaThree256", + "fields": [ + { + "type": 2 + } + ], + "index": 37 + } + ] + } + } + } + }, + { + "id": 169, + "type": { + "def": { + "array": { + "len": 0, + "type": 3 + } + } + } + }, + { + "id": 170, + "type": { + "def": { + "array": { + "len": 1, + "type": 3 + } + } + } + }, + { + "id": 171, + "type": { + "def": { + "array": { + "len": 2, + "type": 3 + } + } + } + }, + { + "id": 172, + "type": { + "def": { + "array": { + "len": 3, + "type": 3 + } + } + } + }, + { + "id": 173, + "type": { + "def": { + "array": { + "len": 5, + "type": 3 + } + } + } + }, + { + "id": 174, + "type": { + "def": { + "array": { + "len": 6, + "type": 3 + } + } + } + }, + { + "id": 175, + "type": { + "def": { + "array": { + "len": 7, + "type": 3 + } + } + } + }, + { + "id": 176, + "type": { + "def": { + "array": { + "len": 8, + "type": 3 + } + } + } + }, + { + "id": 177, + "type": { + "def": { + "array": { + "len": 9, + "type": 3 + } + } + } + }, + { + "id": 178, + "type": { + "def": { + "array": { + "len": 10, + "type": 3 + } + } + } + }, + { + "id": 179, + "type": { + "def": { + "array": { + "len": 11, + "type": 3 + } + } + } + }, + { + "id": 180, + "type": { + "def": { + "array": { + "len": 12, + "type": 3 + } + } + } + }, + { + "id": 181, + "type": { + "def": { + "array": { + "len": 13, + "type": 3 + } + } + } + }, + { + "id": 182, + "type": { + "def": { + "array": { + "len": 14, + "type": 3 + } + } + } + }, + { + "id": 183, + "type": { + "def": { + "array": { + "len": 15, + "type": 3 + } + } + } + }, + { + "id": 184, + "type": { + "def": { + "array": { + "len": 16, + "type": 3 + } + } + } + }, + { + "id": 185, + "type": { + "def": { + "array": { + "len": 17, + "type": 3 + } + } + } + }, + { + "id": 186, + "type": { + "def": { + "array": { + "len": 18, + "type": 3 + } + } + } + }, + { + "id": 187, + "type": { + "def": { + "array": { + "len": 19, + "type": 3 + } + } + } + }, + { + "id": 188, + "type": { + "def": { + "array": { + "len": 21, + "type": 3 + } + } + } + }, + { + "id": 189, + "type": { + "def": { + "array": { + "len": 22, + "type": 3 + } + } + } + }, + { + "id": 190, + "type": { + "def": { + "array": { + "len": 23, + "type": 3 + } + } + } + }, + { + "id": 191, + "type": { + "def": { + "array": { + "len": 24, + "type": 3 + } + } + } + }, + { + "id": 192, + "type": { + "def": { + "array": { + "len": 25, + "type": 3 + } + } + } + }, + { + "id": 193, + "type": { + "def": { + "array": { + "len": 26, + "type": 3 + } + } + } + }, + { + "id": 194, + "type": { + "def": { + "array": { + "len": 27, + "type": 3 + } + } + } + }, + { + "id": 195, + "type": { + "def": { + "array": { + "len": 28, + "type": 3 + } + } + } + }, + { + "id": 196, + "type": { + "def": { + "array": { + "len": 29, + "type": 3 + } + } + } + }, + { + "id": 197, + "type": { + "def": { + "array": { + "len": 30, + "type": 3 + } + } + } + }, + { + "id": 198, + "type": { + "def": { + "array": { + "len": 31, + "type": 3 + } + } + } + }, + { + "id": 199, + "type": { + "def": { + "sequence": { + "type": 167 + } + } + } + }, + { + "id": 200, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 53 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 53 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 201, + "type": { + "def": { + "sequence": { + "type": 202 + } + } + } + }, + { + "id": 202, + "type": { + "def": { + "tuple": [ + 52, + 168 + ] + } + } + }, + { + "id": 203, + "type": { + "path": [ + "pallet_identity", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 204 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "IdentityField" + } + ] + } + } + } + }, + { + "id": 204, + "type": { + "path": [ + "pallet_identity", + "types", + "IdentityField" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Display", + "index": 1 + }, + { + "name": "Legal", + "index": 2 + }, + { + "name": "Web", + "index": 4 + }, + { + "name": "Riot", + "index": 8 + }, + { + "name": "Email", + "index": 16 + }, + { + "name": "PgpFingerprint", + "index": 32 + }, + { + "name": "Image", + "index": 64 + }, + { + "name": "Twitter", + "index": 128 + } + ] + } + } + } + }, + { + "id": 205, + "type": { + "path": [ + "pallet_identity", + "types", + "Judgement" + ], + "params": [ + { + "name": "Balance", + "type": 57 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unknown", + "index": 0 + }, + { + "name": "FeePaid", + "fields": [ + { + "type": 57, + "typeName": "Balance" + } + ], + "index": 1 + }, + { + "name": "Reasonable", + "index": 2 + }, + { + "name": "KnownGood", + "index": 3 + }, + { + "name": "OutOfDate", + "index": 4 + }, + { + "name": "LowQuality", + "index": 5 + }, + { + "name": "Erroneous", + "index": 6 + } + ] + } + } + } + }, + { + "id": 206, + "type": { + "path": [ + "pallet_society", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bid", + "fields": [ + { + "name": "value", + "type": 57, + "typeName": "BalanceOf" + } + ], + "index": 0, + "docs": [ + "A user outside of the society can make a bid for entry.", + "", + "Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", + "when the bid becomes a member, or if the bid calls `unbid`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `value`: A one time payment the bid would like to receive when joining the society.", + "", + "## Complexity", + "- O(M + B + C + logM + logB + X)", + "\t - B (len of bids)", + " - C (len of candidates)", + " - M (len of members)", + " - X (balance reserve)" + ] + }, + { + "name": "unbid", + "fields": [ + { + "name": "pos", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "A bidder can remove their bid for entry into society.", + "By doing so, they will have their candidate deposit returned or", + "they will unvouch their voucher.", + "", + "Payment: The bid deposit is unreserved if the user made a bid.", + "", + "The dispatch origin for this call must be _Signed_ and a bidder.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who wants to unbid.", + "", + "## Complexity", + "- O(B + X)", + " - B (len of bids)", + " - X (balance unreserve)" + ] + }, + { + "name": "vouch", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "value", + "type": 57, + "typeName": "BalanceOf" + }, + { + "name": "tip", + "type": 57, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + "There is no deposit required to vouch for a new bid, but a member can only vouch for", + "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + "the suspension judgement origin, the member will be banned from vouching again.", + "", + "As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + "be paid as a portion of the reward the member will receive for joining the society.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `who`: The user who you would like to vouch for.", + "- `value`: The total reward to be paid between you and the candidate if they become", + "a member in the society.", + "- `tip`: Your cut of the total `value` payout when the candidate is inducted into", + "the society. Tips larger than `value` will be saturated upon payout.", + "", + "## Complexity", + "- O(M + B + C + logM + logB + X)", + " - B (len of bids)", + " - C (len of candidates)", + " - M (len of members)", + " - X (balance reserve)" + ] + }, + { + "name": "unvouch", + "fields": [ + { + "name": "pos", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "As a vouching member, unvouch a bid. This only works while vouched user is", + "only a bidder (and not a candidate).", + "", + "The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who should be unvouched.", + "", + "## Complexity", + "- O(B)", + " - B (len of bids)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "candidate", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "approve", + "type": 54, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "As a member, vote on a candidate.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `candidate`: The candidate that the member would like to bid on.", + "- `approve`: A boolean which says if the candidate should be approved (`true`) or", + " rejected (`false`).", + "", + "## Complexity", + "- O(M + logM + C)", + " - C (len of candidates)", + " - M (len of members)" + ] + }, + { + "name": "defender_vote", + "fields": [ + { + "name": "approve", + "type": 54, + "typeName": "bool" + } + ], + "index": 5, + "docs": [ + "As a member, vote on the defender.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `approve`: A boolean which says if the candidate should be", + "approved (`true`) or rejected (`false`).", + "", + "## Complexity", + "- O(M + logM)", + " - M (len of members)" + ] + }, + { + "name": "payout", + "index": 6, + "docs": [ + "Transfer the first matured payout for the sender and remove it from the records.", + "", + "NOTE: This extrinsic needs to be called multiple times to claim multiple matured", + "payouts.", + "", + "Payment: The member will receive a payment equal to their first matured", + "payout to their free balance.", + "", + "The dispatch origin for this call must be _Signed_ and a member with", + "payouts remaining.", + "", + "## Complexity", + "- O(M + logM + P + X)", + " - M (len of members)", + " - P (number of payouts for a particular member)", + " - X (currency transfer call)" + ] + }, + { + "name": "found", + "fields": [ + { + "name": "founder", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "max_members", + "type": 4, + "typeName": "u32" + }, + { + "name": "rules", + "type": 28, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Found the society.", + "", + "This is done as a discrete action in order to allow for the", + "pallet to be included into a running chain and can only be done once.", + "", + "The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + "Parameters:", + "- `founder` - The first member and head of the newly founded society.", + "- `max_members` - The initial max number of members for the society.", + "- `rules` - The rules of this society concerning membership.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "unfound", + "index": 8, + "docs": [ + "Annul the founding of the society.", + "", + "The dispatch origin for this call must be Signed, and the signing account must be both", + "the `Founder` and the `Head`. This implies that it may only be done when there is one", + "member.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "judge_suspended_member", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "forgive", + "type": 54, + "typeName": "bool" + } + ], + "index": 9, + "docs": [ + "Allow suspension judgement origin to make judgement on a suspended member.", + "", + "If a suspended member is forgiven, we simply add them back as a member, not affecting", + "any of the existing storage items for that member.", + "", + "If a suspended member is rejected, remove all associated storage items, including", + "their payouts, and remove any vouched bids they currently have.", + "", + "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + "Parameters:", + "- `who` - The suspended member to be judged.", + "- `forgive` - A boolean representing whether the suspension judgement origin forgives", + " (`true`) or rejects (`false`) a suspended member.", + "", + "## Complexity", + "- O(M + logM + B)", + " - B (len of bids)", + " - M (len of members)" + ] + }, + { + "name": "judge_suspended_candidate", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "judgement", + "type": 207, + "typeName": "Judgement" + } + ], + "index": 10, + "docs": [ + "Allow suspended judgement origin to make judgement on a suspended candidate.", + "", + "If the judgement is `Approve`, we add them to society as a member with the appropriate", + "payment for joining society.", + "", + "If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", + "to the society treasury, or we ban the voucher from vouching again.", + "", + "If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", + "through the induction process again.", + "", + "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + "Parameters:", + "- `who` - The suspended candidate to be judged.", + "- `judgement` - `Approve`, `Reject`, or `Rebid`.", + "", + "## Complexity", + "- O(M + logM + B + X)", + " - B (len of bids)", + " - M (len of members)", + " - X (balance action)" + ] + }, + { + "name": "set_max_members", + "fields": [ + { + "name": "max", + "type": 4, + "typeName": "u32" + } + ], + "index": 11, + "docs": [ + "Allows root origin to change the maximum number of members in society.", + "Max membership count must be greater than 1.", + "", + "The dispatch origin for this call must be from _ROOT_.", + "", + "Parameters:", + "- `max` - The maximum number of members for the society.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 207, + "type": { + "path": [ + "pallet_society", + "Judgement" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebid", + "index": 0 + }, + { + "name": "Reject", + "index": 1 + }, + { + "name": "Approve", + "index": 2 + } + ] + } + } + } + }, + { + "id": 208, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_recovered", + "fields": [ + { + "name": "account", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Send a call through a recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you want to make a call on-behalf-of.", + "- `call`: The call you want to make with the recovered account." + ] + }, + { + "name": "set_recovered", + "fields": [ + { + "name": "lost", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "rescuer", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Allow ROOT to bypass the recovery process and set an a rescuer account", + "for a lost account directly.", + "", + "The dispatch origin for this call must be _ROOT_.", + "", + "Parameters:", + "- `lost`: The \"lost account\" to be recovered.", + "- `rescuer`: The \"rescuer account\" which can call as the lost account." + ] + }, + { + "name": "create_recovery", + "fields": [ + { + "name": "friends", + "type": 122, + "typeName": "Vec" + }, + { + "name": "threshold", + "type": 20, + "typeName": "u16" + }, + { + "name": "delay_period", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 2, + "docs": [ + "Create a recovery configuration for your account. This makes your account recoverable.", + "", + "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + "will be reserved for storing the recovery configuration. This deposit is returned", + "in full when the user calls `remove_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + "- `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + "- `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered." + ] + }, + { + "name": "initiate_recovery", + "fields": [ + { + "name": "account", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Initiate the process for recovering a recoverable account.", + "", + "Payment: `RecoveryDeposit` balance will be reserved for initiating the", + "recovery process. This deposit will always be repatriated to the account", + "trying to be recovered. See `close_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration)." + ] + }, + { + "name": "vouch_recovery", + "fields": [ + { + "name": "lost", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "rescuer", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Allow a \"friend\" of a recoverable account to vouch for an active recovery", + "process for that account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + "for the recoverable account.", + "", + "Parameters:", + "- `lost`: The lost account that you want to recover.", + "- `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + "The combination of these two parameters must point to an active recovery", + "process." + ] + }, + { + "name": "claim_recovery", + "fields": [ + { + "name": "account", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Allow a successful rescuer to claim their recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + "who has successfully completed the account recovery process: collected", + "`threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + "Parameters:", + "- `account`: The lost account that you want to claim has been successfully recovered by", + " you." + ] + }, + { + "name": "close_recovery", + "fields": [ + { + "name": "rescuer", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 6, + "docs": [ + "As the controller of a recoverable account, close an active recovery", + "process for your account.", + "", + "Payment: By calling this function, the recoverable account will receive", + "the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account with an active recovery process for it.", + "", + "Parameters:", + "- `rescuer`: The account trying to rescue this recoverable account." + ] + }, + { + "name": "remove_recovery", + "index": 7, + "docs": [ + "Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + "NOTE: The user must make sure to call `close_recovery` on all active", + "recovery attempts before calling this function else it will fail.", + "", + "Payment: By calling this function the recoverable account will unreserve", + "their recovery configuration deposit.", + "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account (i.e. has a recovery configuration)." + ] + }, + { + "name": "cancel_recovered", + "fields": [ + { + "name": "account", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 8, + "docs": [ + "Cancel the ability to use `as_recovered` for `account`.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you are able to call on-behalf-of." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 209, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "schedule", + "type": 210, + "typeName": "VestingInfo, T::BlockNumber>" + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "schedule", + "type": 210, + "typeName": "VestingInfo, T::BlockNumber>" + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32" + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 210, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 57 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 57, + "typeName": "Balance" + }, + { + "name": "per_block", + "type": 57, + "typeName": "Balance" + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber" + } + ] + } + } + } + }, + { + "id": 211, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 212, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 3, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 2, + "typeName": "TaskName" + }, + { + "name": "when", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 212, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 3, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 2, + "typeName": "TaskName" + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 212, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 3, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 2, + "typeName": "TaskName" + }, + { + "name": "after", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "maybe_periodic", + "type": 212, + "typeName": "Option>" + }, + { + "name": "priority", + "type": 3, + "typeName": "schedule::Priority" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 212, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 213 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 213 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 213, + "type": { + "def": { + "tuple": [ + 4, + 4 + ] + } + } + }, + { + "id": 214, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "initialize_pallet", + "fields": [ + { + "name": "new_count", + "type": 4, + "typeName": "u32" + }, + { + "name": "witness_count", + "type": 114, + "typeName": "Option" + } + ], + "index": 0, + "docs": [ + "Initializes the pallet by writing into `TrashData`.", + "", + "Only callable by Root. A good default for `trash_count` is `5_000`." + ] + }, + { + "name": "set_compute", + "fields": [ + { + "name": "compute", + "type": 119, + "typeName": "Perbill" + } + ], + "index": 1, + "docs": [ + "Set the `Compute` storage value that determines how much of the", + "block's weight `ref_time` to use during `on_idle`.", + "", + "Only callable by Root." + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "storage", + "type": 119, + "typeName": "Perbill" + } + ], + "index": 2, + "docs": [ + "Set the `Storage` storage value that determines the PoV size usage", + "for each block.", + "", + "Only callable by Root." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 215, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 28, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 216, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "force_proxy_type", + "type": 217, + "typeName": "Option" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 218, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 218, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 218, + "typeName": "T::ProxyType" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 20, + "typeName": "u16" + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "proxy_type", + "type": 218, + "typeName": "T::ProxyType" + }, + { + "name": "index", + "type": 20, + "typeName": "u16" + }, + { + "name": "height", + "type": 36, + "typeName": "T::BlockNumber" + }, + { + "name": "ext_index", + "type": 36, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `pure` to create this account.", + "- `index`: The disambiguation index originally passed to `pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `pure`.", + "- `height`: The height of the chain when the call to `pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHashOf" + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHashOf" + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHashOf" + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "real", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "force_proxy_type", + "type": 217, + "typeName": "Option" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 217, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 218 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 218 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 218, + "type": { + "path": [ + "kitchensink_runtime", + "ProxyType" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "index": 0 + }, + { + "name": "NonTransfer", + "index": 1 + }, + { + "name": "Governance", + "index": 2 + }, + { + "name": "Staking", + "index": 3 + } + ] + } + } + } + }, + { + "id": 219, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 122, + "typeName": "Vec" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 20, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 122, + "typeName": "Vec" + }, + { + "name": "maybe_timepoint", + "type": 220, + "typeName": "Option>" + }, + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + }, + { + "name": "max_weight", + "type": 144, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 20, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 122, + "typeName": "Vec" + }, + { + "name": "maybe_timepoint", + "type": 220, + "typeName": "Option>" + }, + { + "name": "call_hash", + "type": 2, + "typeName": "[u8; 32]" + }, + { + "name": "max_weight", + "type": 144, + "typeName": "Weight" + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 20, + "typeName": "u16" + }, + { + "name": "other_signatories", + "type": 122, + "typeName": "Vec" + }, + { + "name": "timepoint", + "type": 23, + "typeName": "Timepoint" + }, + { + "name": "call_hash", + "type": 2, + "typeName": "[u8; 32]" + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 220, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 23 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 23 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 221, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "description", + "type": 28, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 36, + "typeName": "BountyIndex" + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "curator", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "fee", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Assign a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 36, + "typeName": "BountyIndex" + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 36, + "typeName": "BountyIndex" + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 36, + "typeName": "BountyIndex" + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 36, + "typeName": "BountyIndex" + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "remark", + "type": 28, + "typeName": "Vec" + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 222, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_awesome", + "fields": [ + { + "name": "reason", + "type": 28, + "typeName": "Vec" + }, + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'" + ] + }, + { + "name": "retract_tip", + "fields": [ + { + "name": "hash", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 1, + "docs": [ + "Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + "If successful, the original deposit will be unreserved.", + "", + "The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + "must have been reported by the signing account through `report_awesome` (and not", + "through `tip_new`).", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "Emits `TipRetracted` if successful.", + "", + "## Complexity", + "- `O(1)`", + " - Depends on the length of `T::Hash` which is fixed." + ] + }, + { + "name": "tip_new", + "fields": [ + { + "name": "reason", + "type": 28, + "typeName": "Vec" + }, + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "tip_value", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 2, + "docs": [ + "Give a tip for something new; no finder's fee will be taken.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of", + " `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`" + ] + }, + { + "name": "tip", + "fields": [ + { + "name": "hash", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "tip_value", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "Declare a tip value for an already-open tip.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + "has started.", + "", + "## Complexity", + "- `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`, insert", + " tip and check closing, `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`." + ] + }, + { + "name": "close_tip", + "fields": [ + { + "name": "hash", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 4, + "docs": [ + "Close and payout a tip.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The tip identified by `hash` must have finished its countdown period.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "## Complexity", + "- : `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`. `T`", + " is charged as upper bound given by `ContainsLengthBound`. The actual cost depends on", + " the implementation of `T::Tippers`." + ] + }, + { + "name": "slash_tip", + "fields": [ + { + "name": "hash", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Remove and slash an already-open tip.", + "", + "May only be called from `T::RejectOrigin`.", + "", + "As a result, the finder is slashed and the deposits are lost.", + "", + "Emits `TipSlashed` if successful.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 223, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "admin", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "min_balance", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "is_sufficient", + "type": 54, + "typeName": "bool" + }, + { + "name": "min_balance", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "The asset class must be frozen before calling `start_destroy`." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "beneficiary", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "source", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers from an account.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "issuer", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "name", + "type": 28, + "typeName": "Vec" + }, + { + "name": "symbol", + "type": 28, + "typeName": "Vec" + }, + { + "name": "decimals", + "type": 3, + "typeName": "u8" + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "name", + "type": 28, + "typeName": "Vec" + }, + { + "name": "symbol", + "type": 28, + "typeName": "Vec" + }, + { + "name": "decimals", + "type": 3, + "typeName": "u8" + }, + { + "name": "is_frozen", + "type": 54, + "typeName": "bool" + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "issuer", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "min_balance", + "type": 56, + "typeName": "T::Balance" + }, + { + "name": "is_sufficient", + "type": 54, + "typeName": "bool" + }, + { + "name": "is_frozen", + "type": 54, + "typeName": "bool" + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "destination", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "amount", + "type": 56, + "typeName": "T::Balance" + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 36, + "typeName": "T::AssetIdParameter" + }, + { + "name": "allow_burn", + "type": 54, + "typeName": "bool" + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for the account to be created.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "Emits `Refunded` event when successful." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 224, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "buy_ticket", + "fields": [ + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 0, + "docs": [ + "Buy a ticket to enter the lottery.", + "", + "This extrinsic acts as a passthrough function for `call`. In all", + "situations where `call` alone would succeed, this extrinsic should", + "succeed.", + "", + "If `call` is successful, then we will attempt to purchase a ticket,", + "which may fail silently. To detect success of a ticket purchase, you", + "should listen for the `TicketBought` event.", + "", + "This extrinsic must be called by a signed origin." + ] + }, + { + "name": "set_calls", + "fields": [ + { + "name": "calls", + "type": 25, + "typeName": "Vec<::RuntimeCall>" + } + ], + "index": 1, + "docs": [ + "Set calls in storage which can be used to purchase a lottery ticket.", + "", + "This function only matters if you use the `ValidateCall` implementation", + "provided by this pallet, which uses storage to determine the valid calls.", + "", + "This extrinsic must be called by the Manager origin." + ] + }, + { + "name": "start_lottery", + "fields": [ + { + "name": "price", + "type": 57, + "typeName": "BalanceOf" + }, + { + "name": "length", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "delay", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "repeat", + "type": 54, + "typeName": "bool" + } + ], + "index": 2, + "docs": [ + "Start a lottery using the provided configuration.", + "", + "This extrinsic must be called by the `ManagerOrigin`.", + "", + "Parameters:", + "", + "* `price`: The cost of a single ticket.", + "* `length`: How long the lottery should run for starting at the current block.", + "* `delay`: How long after the lottery end we should wait before picking a winner.", + "* `repeat`: If the lottery should repeat when completed." + ] + }, + { + "name": "stop_repeat", + "index": 3, + "docs": [ + "If a lottery is repeating, you can use this to stop the repeat.", + "The lottery will continue to run to completion.", + "", + "This extrinsic must be called by the `ManagerOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 225, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_bid", + "fields": [ + { + "name": "amount", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Place a bid.", + "", + "Origin must be Signed, and account must have at least `amount` in free balance.", + "", + "- `amount`: The amount of the bid; these funds will be reserved, and if/when", + " consolidated, removed. Must be at least `MinBid`.", + "- `duration`: The number of periods before which the newly consolidated bid may be", + " thawed. Must be greater than 1 and no more than `QueueCount`.", + "", + "Complexities:", + "- `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "fields": [ + { + "name": "amount", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "duration", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Retract a previously placed bid.", + "", + "Origin must be Signed, and the account should have previously issued a still-active bid", + "of `amount` for `duration`.", + "", + "- `amount`: The amount of the previous bid.", + "- `duration`: The duration of the previous bid." + ] + }, + { + "name": "fund_deficit", + "index": 2, + "docs": [ + "Ensure we have sufficient funding for all potential payouts.", + "", + "- `origin`: Must be accepted by `FundOrigin`." + ] + }, + { + "name": "thaw_private", + "fields": [ + { + "name": "index", + "type": 36, + "typeName": "ReceiptIndex" + }, + { + "name": "maybe_proportion", + "type": 226, + "typeName": "Option" + } + ], + "index": 3, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as", + " well as any fungible counterpart.", + "- `index`: The index of the receipt.", + "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If", + " `None`, then all of it should be." + ] + }, + { + "name": "thaw_communal", + "fields": [ + { + "name": "index", + "type": 36, + "typeName": "ReceiptIndex" + } + ], + "index": 4, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart", + " for receipt `index`.", + "- `index`: The index of the receipt." + ] + }, + { + "name": "communify", + "fields": [ + { + "name": "index", + "type": 36, + "typeName": "ReceiptIndex" + } + ], + "index": 5, + "docs": [ + "Make a private receipt communal and create fungible counterparts for its owner." + ] + }, + { + "name": "privatize", + "fields": [ + { + "name": "index", + "type": 36, + "typeName": "ReceiptIndex" + } + ], + "index": 6, + "docs": [ + "Make a communal receipt private and burn fungible counterparts from its owner." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 226, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 227 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 227 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 227, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "u64" + } + ] + } + } + } + }, + { + "id": 228, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "admin", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `collection`: The identifier of the new collection. This must not be currently in use.", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "free_holding", + "type": 54, + "typeName": "bool" + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `collection`: The identifier of the new item. This must not be currently in use.", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions", + "over this item, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "witness", + "type": 229, + "typeName": "DestroyWitness" + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: The item value of the item to be minted.", + "- `beneficiary`: The initial owner of the minted item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "check_owner", + "type": 230, + "typeName": "Option>" + } + ], + "index": 4, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item of the item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 5, + "docs": [ + "Move an item from the sender account to another.", + "", + "This resets the approved account of the item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item of the item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "items", + "type": 123, + "typeName": "Vec" + } + ], + "index": 6, + "docs": [ + "Reevaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown of the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 7, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be frozen.", + "- `item`: The item of the item to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 8, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be thawed.", + "- `item`: The item of the item to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 9, + "docs": [ + "Disallow further unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "", + "Emits `CollectionFrozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 10, + "docs": [ + "Re-allow unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Admin of the `collection`.", + "", + "- `collection`: The collection to be thawed.", + "", + "Emits `CollectionThawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be", + "either the owner of the `item` or the admin of the collection.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item of the item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "", + "Important NOTE: The `approved` account gets reset after each transfer.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "maybe_check_delegate", + "type": 230, + "typeName": "Option>" + } + ], + "index": 14, + "docs": [ + "Cancel the prior approval for the transfer of an item by a delegate.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the item of whose approval will be cancelled.", + "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", + " which permission of transfer is delegated.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_item_status", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "issuer", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "free_holding", + "type": 54, + "typeName": "bool" + }, + { + "name": "is_frozen", + "type": 54, + "typeName": "bool" + } + ], + "index": 15, + "docs": [ + "Alter the attributes of a given item.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the item.", + "- `owner`: The new Owner of this item.", + "- `issuer`: The new Issuer of this item.", + "- `admin`: The new Admin of this item.", + "- `freezer`: The new Freezer of this item.", + "- `free_holding`: Whether a deposit is taken for holding an item of this collection.", + "- `is_frozen`: Whether this collection is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `ItemStatusChanged` with the identity of the item.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 114, + "typeName": "Option" + }, + { + "name": "key", + "type": 231, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 232, + "typeName": "BoundedVec" + } + ], + "index": 16, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 114, + "typeName": "Option" + }, + { + "name": "key", + "type": 231, + "typeName": "BoundedVec" + } + ], + "index": 17, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 233, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 54, + "typeName": "bool" + } + ], + "index": 18, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 19, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 233, + "typeName": "BoundedVec" + }, + { + "name": "is_frozen", + "type": 54, + "typeName": "bool" + } + ], + "index": 20, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 21, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 114, + "typeName": "Option" + } + ], + "index": 22, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 23, + "docs": [ + "Set the maximum amount of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Note: This function can only succeed once per collection.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum amount of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 234, + "typeName": "Option>" + }, + { + "name": "whitelisted_buyer", + "type": 230, + "typeName": "Option>" + } + ], + "index": 24, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "bid_price", + "type": 57, + "typeName": "ItemPrice" + } + ], + "index": 25, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 229, + "type": { + "path": [ + "pallet_uniques", + "types", + "DestroyWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 36, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 36, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 36, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 230, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 51 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 51 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 231, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 232, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 233, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 234, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 57 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 57 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 235, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "admin", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "config", + "type": 236, + "typeName": "CollectionConfigFor" + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must be Signed and the sender must have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "config", + "type": 236, + "typeName": "CollectionConfigFor" + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions over this item, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "witness", + "type": 243, + "typeName": "DestroyWitness" + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "mint_to", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "witness_data", + "type": 244, + "typeName": "Option>" + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned", + " item_id from that collection needs to be provided within the witness data object.", + "", + "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "mint_to", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "item_config", + "type": 246, + "typeName": "ItemConfig" + } + ], + "index": 4, + "docs": [ + "Mint an item of a particular collection from a privileged origin.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `item_config`: A config of the new item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "check_owner", + "type": 230, + "typeName": "Option>" + } + ], + "index": 5, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "dest", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 6, + "docs": [ + "Move an item from the sender account to another.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "items", + "type": 123, + "typeName": "Vec" + } + ], + "index": 7, + "docs": [ + "Re-evaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection of the items to be reevaluated.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown or the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "lock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 8, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become non-transferable.", + "", + "Emits `ItemTransferLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "unlock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 9, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become transferable.", + "", + "Emits `ItemTransferUnlocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "lock_settings", + "type": 237, + "typeName": "CollectionSettings" + } + ], + "index": 10, + "docs": [ + "Disallows specified settings for the whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be locked.", + "- `lock_settings`: The settings to be locked.", + "", + "Note: it's possible to only lock(set) the setting, but not to unset it.", + "Emits `CollectionLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "issuer", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "admin", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "freezer", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_owner", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "owner", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `owner`: The new Owner of this collection.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_config", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "config", + "type": 236, + "typeName": "CollectionConfigFor" + } + ], + "index": 14, + "docs": [ + "Change the config of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `config`: The new config of this collection.", + "", + "Emits `CollectionConfigChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "maybe_deadline", + "type": 114, + "typeName": "Option<::BlockNumber>" + } + ], + "index": 15, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the", + "\tnumber of blocks after which the approval will expire", + "", + "Emits `TransferApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 16, + "docs": [ + "Cancel one of the transfer approvals for a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the collection of whose approval will be cancelled.", + "- `delegate`: The account that is going to loose their approval.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_all_transfer_approvals", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 17, + "docs": [ + "Cancel all the approvals of a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approvals will be cleared.", + "- `item`: The item of the collection of whose approvals will be cleared.", + "", + "Emits `AllApprovalsCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_item_properties", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "lock_metadata", + "type": 54, + "typeName": "bool" + }, + { + "name": "lock_attributes", + "type": 54, + "typeName": "bool" + } + ], + "index": 18, + "docs": [ + "Disallows changing the metadata or attributes of the item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "- `collection`: The collection if the `item`.", + "- `item`: An item to be locked.", + "- `lock_metadata`: Specifies whether the metadata should be locked.", + "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace", + " should be locked.", + "", + "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace", + "only. When the metadata or attributes are locked, it won't be possible the unlock them.", + "", + "Emits `ItemPropertiesLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 114, + "typeName": "Option" + }, + { + "name": "namespace", + "type": 247, + "typeName": "AttributeNamespace" + }, + { + "name": "key", + "type": 231, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 232, + "typeName": "BoundedVec" + } + ], + "index": 19, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be Signed and must conform to the namespace ruleset:", + "- `CollectionOwner` namespace could be modified by the `collection` owner only;", + "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`", + " should be set in that case;", + "- `Account(AccountId)` namespace could be modified only when the `origin` was given a", + " permission to do so;", + "", + "The funds of `origin` are reserved according to the formula:", + "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_attribute", + "fields": [ + { + "name": "set_as", + "type": 141, + "typeName": "Option" + }, + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 114, + "typeName": "Option" + }, + { + "name": "namespace", + "type": 247, + "typeName": "AttributeNamespace" + }, + { + "name": "key", + "type": 231, + "typeName": "BoundedVec" + }, + { + "name": "value", + "type": 232, + "typeName": "BoundedVec" + } + ], + "index": 20, + "docs": [ + "Force-set an attribute for a collection or item.", + "", + "Origin must be `ForceOrigin`.", + "", + "If the attribute already exists and it was set by another account, the deposit", + "will be returned to the previous owner.", + "", + "- `set_as`: An optional owner of the attribute.", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_item", + "type": 114, + "typeName": "Option" + }, + { + "name": "namespace", + "type": 247, + "typeName": "AttributeNamespace" + }, + { + "name": "key", + "type": 231, + "typeName": "BoundedVec" + } + ], + "index": 21, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "attribute.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_item_attributes", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 22, + "docs": [ + "Approve item's attributes to be changed by a delegated third-party account.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: A collection of the item.", + "- `item`: The item that holds attributes.", + "- `delegate`: The account to delegate permission to change attributes of the item.", + "", + "Emits `ItemAttributesApprovalAdded` on success." + ] + }, + { + "name": "cancel_item_attributes_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "delegate", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "witness", + "type": 248, + "typeName": "CancelAttributesApprovalWitness" + } + ], + "index": 23, + "docs": [ + "Cancel the previously provided approval to change item's attributes.", + "All the previously set attributes by the `delegate` will be removed.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: Collection that the item is contained within.", + "- `item`: The item that holds attributes.", + "- `delegate`: The previously approved account to remove.", + "", + "Emits `ItemAttributesApprovalRemoved` on success." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "data", + "type": 233, + "typeName": "BoundedVec" + } + ], + "index": 24, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `ItemMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 25, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `ItemMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "data", + "type": 233, + "typeName": "BoundedVec" + } + ], + "index": 26, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + } + ], + "index": 27, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 114, + "typeName": "Option" + } + ], + "index": 28, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32" + } + ], + "index": 29, + "docs": [ + "Set the maximum number of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum number of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "update_mint_settings", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "mint_settings", + "type": 239, + "typeName": "MintSettings,::BlockNumber, T::\nCollectionId,>" + } + ], + "index": 30, + "docs": [ + "Update mint settings.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `mint_settings`: The new mint settings.", + "", + "Emits `CollectionMintSettingsUpdated` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "price", + "type": 234, + "typeName": "Option>" + }, + { + "name": "whitelisted_buyer", + "type": 230, + "typeName": "Option>" + } + ], + "index": 31, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "bid_price", + "type": 57, + "typeName": "ItemPrice" + } + ], + "index": 32, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + }, + { + "name": "pay_tips", + "fields": [ + { + "name": "tips", + "type": 249, + "typeName": "BoundedVec, T::MaxTips>" + } + ], + "index": 33, + "docs": [ + "Allows to pay the tips.", + "", + "Origin must be Signed.", + "", + "- `tips`: Tips array.", + "", + "Emits `TipSent` on every tip transfer." + ] + }, + { + "name": "create_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "maybe_desired_item", + "type": 114, + "typeName": "Option" + }, + { + "name": "maybe_price", + "type": 252, + "typeName": "Option>>" + }, + { + "name": "duration", + "type": 4, + "typeName": "::BlockNumber" + } + ], + "index": 34, + "docs": [ + "Register a new atomic swap, declaring an intention to send an `item` in exchange for", + "`desired_item` from origin to target on the current blockchain.", + "The target can execute the swap during the specified `duration` of blocks (if set).", + "Additionally, the price could be set for the desired `item`.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "- `desired_collection`: The collection of the desired item.", + "- `desired_item`: The desired item an owner wants to receive.", + "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`.", + "- `duration`: A deadline for the swap. Specified by providing the number of blocks", + "\tafter which the swap will expire.", + "", + "Emits `SwapCreated` on success." + ] + }, + { + "name": "cancel_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId" + } + ], + "index": 35, + "docs": [ + "Cancel an atomic swap.", + "", + "Origin must be Signed.", + "Origin must be an owner of the `item` if the deadline hasn't expired.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "", + "Emits `SwapCancelled` on success." + ] + }, + { + "name": "claim_swap", + "fields": [ + { + "name": "send_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "send_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "receive_collection", + "type": 4, + "typeName": "T::CollectionId" + }, + { + "name": "receive_item", + "type": 4, + "typeName": "T::ItemId" + }, + { + "name": "witness_price", + "type": 252, + "typeName": "Option>>" + } + ], + "index": 36, + "docs": [ + "Claim an atomic swap.", + "This method executes a pending swap, that was created by a counterpart before.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `send_collection`: The collection of the item to be sent.", + "- `send_item`: The item to be sent.", + "- `receive_collection`: The collection of the item to be received.", + "- `receive_item`: The item to be received.", + "- `witness_price`: A price that was previously agreed on.", + "", + "Emits `SwapClaimed` on success." + ] + }, + { + "name": "mint_pre_signed", + "fields": [ + { + "name": "mint_data", + "type": 255, + "typeName": "PreSignedMintOf" + }, + { + "name": "signature", + "type": 256, + "typeName": "T::OffchainSignature" + }, + { + "name": "signer", + "type": 52, + "typeName": "T::AccountId" + } + ], + "index": 37, + "docs": [ + "Mint an item by providing the pre-signed approval.", + "", + "Origin must be Signed.", + "", + "- `mint_data`: The pre-signed approval that consists of the information about the item,", + " its metadata, attributes, who can mint it (`None` for anyone) and until what block", + " number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an owner of the collection.", + "", + "Emits `Issued` on success.", + "Emits `AttributeSet` if the attributes were provided.", + "Emits `ItemMetadataSet` if the metadata was not empty." + ] + }, + { + "name": "set_attributes_pre_signed", + "fields": [ + { + "name": "data", + "type": 259, + "typeName": "PreSignedAttributesOf" + }, + { + "name": "signature", + "type": 256, + "typeName": "T::OffchainSignature" + }, + { + "name": "signer", + "type": 52, + "typeName": "T::AccountId" + } + ], + "index": 38, + "docs": [ + "Set attributes for an item by providing the pre-signed approval.", + "", + "Origin must be Signed and must be an owner of the `data.item`.", + "", + "- `data`: The pre-signed approval that consists of the information about the item,", + " attributes to update and until what block number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an owner of the collection for the", + " `CollectionOwner` namespace.", + "", + "Emits `AttributeSet` for each provided attribute.", + "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before.", + "Emits `PreSignedAttributesSet` on success." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 236, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionConfig" + ], + "params": [ + { + "name": "Price", + "type": 57 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 237, + "typeName": "CollectionSettings" + }, + { + "name": "max_supply", + "type": 114, + "typeName": "Option" + }, + { + "name": "mint_settings", + "type": 239, + "typeName": "MintSettings" + } + ] + } + } + } + }, + { + "id": 237, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 238 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "CollectionSetting" + } + ] + } + } + } + }, + { + "id": 238, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionSetting" + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransferableItems", + "index": 1 + }, + { + "name": "UnlockedMetadata", + "index": 2 + }, + { + "name": "UnlockedAttributes", + "index": 4 + }, + { + "name": "UnlockedMaxSupply", + "index": 8 + }, + { + "name": "DepositRequired", + "index": 16 + } + ] + } + } + } + }, + { + "id": 239, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintSettings" + ], + "params": [ + { + "name": "Price", + "type": 57 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mint_type", + "type": 240, + "typeName": "MintType" + }, + { + "name": "price", + "type": 234, + "typeName": "Option" + }, + { + "name": "start_block", + "type": 114, + "typeName": "Option" + }, + { + "name": "end_block", + "type": 114, + "typeName": "Option" + }, + { + "name": "default_item_settings", + "type": 241, + "typeName": "ItemSettings" + } + ] + } + } + } + }, + { + "id": 240, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintType" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "index": 0 + }, + { + "name": "Public", + "index": 1 + }, + { + "name": "HolderOf", + "fields": [ + { + "type": 4, + "typeName": "CollectionId" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 241, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 242 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 12, + "typeName": "ItemSetting" + } + ] + } + } + } + }, + { + "id": 242, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemSetting" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Transferable", + "index": 1 + }, + { + "name": "UnlockedMetadata", + "index": 2 + }, + { + "name": "UnlockedAttributes", + "index": 4 + } + ] + } + } + } + }, + { + "id": 243, + "type": { + "path": [ + "pallet_nfts", + "types", + "DestroyWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 36, + "typeName": "u32" + }, + { + "name": "item_metadatas", + "type": 36, + "typeName": "u32" + }, + { + "name": "attributes", + "type": 36, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 244, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 245 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 245 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 245, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintWitness" + ], + "params": [ + { + "name": "ItemId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner_of_item", + "type": 4, + "typeName": "ItemId" + } + ] + } + } + } + }, + { + "id": 246, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemConfig" + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 241, + "typeName": "ItemSettings" + } + ] + } + } + } + }, + { + "id": 247, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "AttributeNamespace" + ], + "params": [ + { + "name": "AccountId", + "type": 52 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pallet", + "index": 0 + }, + { + "name": "CollectionOwner", + "index": 1 + }, + { + "name": "ItemOwner", + "index": 2 + }, + { + "name": "Account", + "fields": [ + { + "type": 52, + "typeName": "AccountId" + } + ], + "index": 3 + } + ] + } + } + } + }, + { + "id": 248, + "type": { + "path": [ + "pallet_nfts", + "types", + "CancelAttributesApprovalWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "account_attributes", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 249, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 250 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 251, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 250, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemTip" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 52 + }, + { + "name": "Amount", + "type": 57 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId" + }, + { + "name": "receiver", + "type": 52, + "typeName": "AccountId" + }, + { + "name": "amount", + "type": 57, + "typeName": "Amount" + } + ] + } + } + } + }, + { + "id": 251, + "type": { + "def": { + "sequence": { + "type": 250 + } + } + } + }, + { + "id": 252, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 253 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 253 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 253, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceWithDirection" + ], + "params": [ + { + "name": "Amount", + "type": 57 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 57, + "typeName": "Amount" + }, + { + "name": "direction", + "type": 254, + "typeName": "PriceDirection" + } + ] + } + } + } + }, + { + "id": 254, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceDirection" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Send", + "index": 0 + }, + { + "name": "Receive", + "index": 1 + } + ] + } + } + } + }, + { + "id": 255, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedMint" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 52 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId" + }, + { + "name": "attributes", + "type": 29, + "typeName": "Vec<(Vec, Vec)>" + }, + { + "name": "metadata", + "type": 28, + "typeName": "Vec" + }, + { + "name": "only_account", + "type": 141, + "typeName": "Option" + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline" + } + ] + } + } + } + }, + { + "id": 256, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "type": 10, + "typeName": "ed25519::Signature" + } + ], + "index": 0 + }, + { + "name": "Sr25519", + "fields": [ + { + "type": 163, + "typeName": "sr25519::Signature" + } + ], + "index": 1 + }, + { + "name": "Ecdsa", + "fields": [ + { + "type": 257, + "typeName": "ecdsa::Signature" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 257, + "type": { + "path": [ + "sp_core", + "ecdsa", + "Signature" + ], + "def": { + "composite": { + "fields": [ + { + "type": 258, + "typeName": "[u8; 65]" + } + ] + } + } + } + }, + { + "id": 258, + "type": { + "def": { + "array": { + "len": 65, + "type": 3 + } + } + } + }, + { + "id": 259, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 52 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId" + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId" + }, + { + "name": "attributes", + "type": 29, + "typeName": "Vec<(Vec, Vec)>" + }, + { + "name": "namespace", + "type": 247, + "typeName": "AttributeNamespace" + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline" + } + ] + } + } + } + }, + { + "id": 260, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "data", + "type": 28, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Index and store data off chain. Minimum data size is 1 bytes, maximum is", + "`MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`", + "is called.", + "## Complexity", + "- O(n*log(n)) of data size, as all data is pushed to an in-memory trie." + ] + }, + { + "name": "renew", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "T::BlockNumber" + }, + { + "name": "index", + "type": 4, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Renew previously stored data. Parameters are the block number that contains", + "previous `store` or `renew` call and transaction index within that block.", + "Transaction index is emitted in the `Stored` or `Renewed` event.", + "Applies same fees as `store`.", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "check_proof", + "fields": [ + { + "name": "proof", + "type": 261, + "typeName": "TransactionStorageProof" + } + ], + "index": 2, + "docs": [ + "Check storage proof for block number `block_number() - StoragePeriod`.", + "If such block does not exist the proof is expected to be `None`.", + "## Complexity", + "- Linear w.r.t the number of indexed transactions in the proved block for random", + " probing.", + "There's a DB read for each transaction." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 261, + "type": { + "path": [ + "sp_transaction_storage_proof", + "TransactionStorageProof" + ], + "def": { + "composite": { + "fields": [ + { + "name": "chunk", + "type": 28, + "typeName": "Vec" + }, + { + "name": "proof", + "type": 31, + "typeName": "Vec>" + } + ] + } + } + } + }, + { + "id": 262, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`.", + "", + "Only works if", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 263, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 264, + "typeName": "Option" + } + ], + "index": 0, + "docs": [ + "Control the automatic migration.", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 265, + "typeName": "MigrationLimits" + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32" + }, + { + "name": "witness_task", + "type": 266, + "typeName": "MigrationTask" + } + ], + "index": 1, + "docs": [ + "Continue the migration for the given `limits`.", + "", + "The dispatch origin of this call can be any signed account.", + "", + "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,", + "Upon successful execution, the transaction fee is returned.", + "", + "The (potentially over-estimated) of the byte length of all the data read must be", + "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing", + "that executing the current `MigrationTask` with the given `limits` will not exceed", + "`real_size_upper` bytes of read data.", + "", + "The `witness_task` is merely a helper to prevent the caller from being slashed or", + "generally trigger a migration that they do not intend. This parameter is just a message", + "from caller, saying that they believed `witness_task` was the last state of the", + "migration, and they only wish for their transaction to do anything, if this assumption", + "holds. In case `witness_task` does not match, the transaction fails.", + "", + "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the", + "recommended way of doing this is to pass a `limit` that only bounds `count`, as the", + "`size` limit can always be overwritten." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 31, + "typeName": "Vec>" + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Migrate the list of top keys by iterating each of them one by one.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 28, + "typeName": "Vec" + }, + { + "name": "child_keys", + "type": 31, + "typeName": "Vec>" + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32" + } + ], + "index": 3, + "docs": [ + "Migrate the list of child keys by iterating each of them one by one.", + "", + "All of the given child keys must be present under one `child_root`.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 265, + "typeName": "MigrationLimits" + } + ], + "index": 4, + "docs": [ + "Set the maximum limit of the signed migration." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 267, + "typeName": "ProgressOf" + }, + { + "name": "progress_child", + "type": 267, + "typeName": "ProgressOf" + } + ], + "index": 5, + "docs": [ + "Forcefully set the progress the running migration.", + "", + "This is only useful in one case: the next key to migrate is too big to be migrated with", + "a signed account, in a parachain context, and we simply want to skip it. A reasonable", + "example of this would be `:code:`, which is both very expensive to migrate, and commonly", + "used, so probably it is already migrated.", + "", + "In case you mess things up, you can also, in principle, use this to reset the migration", + "process." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 264, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 265 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 265 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 265, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32" + }, + { + "name": "item", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 266, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 267, + "typeName": "ProgressOf" + }, + { + "name": "progress_child", + "type": 267, + "typeName": "ProgressOf" + }, + { + "name": "size", + "type": 4, + "typeName": "u32" + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32" + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 267, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "index": 0 + }, + { + "name": "LastKey", + "fields": [ + { + "type": 268, + "typeName": "BoundedVec" + } + ], + "index": 1 + }, + { + "name": "Complete", + "index": 2 + } + ] + } + } + } + }, + { + "id": 268, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 269, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "value", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "description", + "type": 28, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "curator", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "fee", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 36, + "typeName": "BountyIndex" + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 36, + "typeName": "BountyIndex" + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "beneficiary", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 36, + "typeName": "BountyIndex" + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 36, + "typeName": "BountyIndex" + }, + { + "name": "child_bounty_id", + "type": 36, + "typeName": "BountyIndex" + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 270, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 271, + "typeName": "Box>" + }, + { + "name": "proposal", + "type": 133, + "typeName": "BoundedCallOf" + }, + { + "name": "enactment_moment", + "type": 277, + "typeName": "DispatchTime" + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 20, + "typeName": "TrackIdOf" + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "maybe_hash", + "type": 139, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 271, + "type": { + "path": [ + "kitchensink_runtime", + "OriginCaller" + ], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "type": 272, + "typeName": "frame_system::Origin" + } + ], + "index": 0 + }, + { + "name": "Council", + "fields": [ + { + "type": 273, + "typeName": "pallet_collective::Origin" + } + ], + "index": 13 + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "type": 274, + "typeName": "pallet_collective::Origin" + } + ], + "index": 14 + }, + { + "name": "AllianceMotion", + "fields": [ + { + "type": 275, + "typeName": "pallet_collective::Origin" + } + ], + "index": 52 + }, + { + "name": "Void", + "fields": [ + { + "type": 276, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::Void" + } + ], + "index": 4 + } + ] + } + } + } + }, + { + "id": 272, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 52 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "index": 0 + }, + { + "name": "Signed", + "fields": [ + { + "type": 52, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "None", + "index": 2 + } + ] + } + } + } + }, + { + "id": 273, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 52 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 52, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 274, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 52 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 52, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 275, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 52 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "type": 4, + "typeName": "MemberCount" + }, + { + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0 + }, + { + "name": "Member", + "fields": [ + { + "type": 52, + "typeName": "AccountId" + } + ], + "index": 1 + }, + { + "name": "_Phantom", + "index": 2 + } + ] + } + } + } + }, + { + "id": 276, + "type": { + "path": [ + "sp_core", + "Void" + ], + "def": { + "variant": {} + } + } + }, + { + "id": 277, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 0 + }, + { + "name": "After", + "fields": [ + { + "type": 4, + "typeName": "BlockNumber" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 278, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "remark", + "type": 28, + "typeName": "Vec" + } + ], + "index": 0, + "docs": [ + "Index and store data off chain." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 279, + "type": { + "path": [ + "pallet_root_testing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fill_block", + "fields": [ + { + "name": "ratio", + "type": 119, + "typeName": "Perbill" + } + ], + "index": 0, + "docs": [ + "A dispatch that will fill the block weight up to the given ratio." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 280, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 36, + "typeName": "PollIndexOf" + }, + { + "name": "vote", + "type": 281, + "typeName": "AccountVote>" + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 20, + "typeName": "ClassOf" + }, + { + "name": "to", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "conviction", + "type": 283, + "typeName": "Conviction" + }, + { + "name": "balance", + "type": 57, + "typeName": "BalanceOf" + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 20, + "typeName": "ClassOf" + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 20, + "typeName": "ClassOf" + }, + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 284, + "typeName": "Option>" + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf" + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "class", + "type": 20, + "typeName": "ClassOf" + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf" + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 281, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 57 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 282, + "typeName": "Vote" + }, + { + "name": "balance", + "type": 57, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 57, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 57, + "typeName": "Balance" + } + ], + "index": 1 + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 57, + "typeName": "Balance" + }, + { + "name": "nay", + "type": 57, + "typeName": "Balance" + }, + { + "name": "abstain", + "type": 57, + "typeName": "Balance" + } + ], + "index": 2 + } + ] + } + } + } + }, + { + "id": 282, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "def": { + "composite": { + "fields": [ + { + "type": 3 + } + ] + } + } + } + }, + { + "id": 283, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Locked1x", + "index": 1 + }, + { + "name": "Locked2x", + "index": 2 + }, + { + "name": "Locked3x", + "index": 3 + }, + { + "name": "Locked4x", + "index": 4 + }, + { + "name": "Locked5x", + "index": 5 + }, + { + "name": "Locked6x", + "index": 6 + } + ] + } + } + } + }, + { + "id": 284, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 20 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "index": 0 + }, + { + "name": "Some", + "fields": [ + { + "type": 20 + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 285, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 1, + "typeName": "PreimageHash" + } + ], + "index": 0 + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 1, + "typeName": "PreimageHash" + } + ], + "index": 1 + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 1, + "typeName": "PreimageHash" + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32" + }, + { + "name": "call_weight_witness", + "type": 144, + "typeName": "Weight" + } + ], + "index": 2 + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 26, + "typeName": "Box<::RuntimeCall>" + } + ], + "index": 3 + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 286, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 122, + "typeName": "Vec" + }, + { + "name": "prime", + "type": 141, + "typeName": "Option" + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount" + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 26, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 36, + "typeName": "MemberCount" + }, + { + "name": "proposal", + "type": 26, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 54, + "typeName": "bool" + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 142, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 144, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 287, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 36, + "typeName": "u32" + }, + { + "name": "proposal", + "type": 26, + "typeName": "Box<>::Proposal>" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 0, + "docs": [ + "Add a new proposal to be voted on.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "approve", + "type": 54, + "typeName": "bool" + } + ], + "index": 1, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "close_old_weight", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 142, + "typeName": "OldWeight" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 2, + "docs": [ + "Close a vote that is either approved, disapproved, or whose voting period has ended.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "init_members", + "fields": [ + { + "name": "fellows", + "type": 122, + "typeName": "Vec" + }, + { + "name": "allies", + "type": 122, + "typeName": "Vec" + } + ], + "index": 3, + "docs": [ + "Initialize the Alliance, onboard fellows and allies.", + "", + "The Alliance must be empty, and the call must provide some founding members.", + "", + "Must be called by the Root origin." + ] + }, + { + "name": "disband", + "fields": [ + { + "name": "witness", + "type": 288, + "typeName": "DisbandWitness" + } + ], + "index": 4, + "docs": [ + "Disband the Alliance, remove all active members and unreserve deposits.", + "", + "Witness data must be set." + ] + }, + { + "name": "set_rule", + "fields": [ + { + "name": "rule", + "type": 289, + "typeName": "Cid" + } + ], + "index": 5, + "docs": [ + "Set a new IPFS CID to the alliance rule." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "announcement", + "type": 289, + "typeName": "Cid" + } + ], + "index": 6, + "docs": [ + "Make an announcement of a new IPFS CID about alliance issues." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "announcement", + "type": 289, + "typeName": "Cid" + } + ], + "index": 7, + "docs": [ + "Remove an announcement." + ] + }, + { + "name": "join_alliance", + "index": 8, + "docs": [ + "Submit oneself for candidacy. A fixed deposit is reserved." + ] + }, + { + "name": "nominate_ally", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 9, + "docs": [ + "A Fellow can nominate someone to join the alliance as an Ally. There is no deposit", + "required from the nominator or nominee." + ] + }, + { + "name": "elevate_ally", + "fields": [ + { + "name": "ally", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 10, + "docs": [ + "Elevate an Ally to Fellow." + ] + }, + { + "name": "give_retirement_notice", + "index": 11, + "docs": [ + "As a member, give a retirement notice and start a retirement period required to pass in", + "order to retire." + ] + }, + { + "name": "retire", + "index": 12, + "docs": [ + "As a member, retire from the Alliance and unreserve the deposit.", + "", + "This can only be done once you have called `give_retirement_notice` and the", + "`RetirementPeriod` has passed." + ] + }, + { + "name": "kick_member", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 13, + "docs": [ + "Kick a member from the Alliance and slash its deposit." + ] + }, + { + "name": "add_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 293, + "typeName": "Vec>" + } + ], + "index": 14, + "docs": [ + "Add accounts or websites to the list of unscrupulous items." + ] + }, + { + "name": "remove_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 293, + "typeName": "Vec>" + } + ], + "index": 15, + "docs": [ + "Deem some items no longer unscrupulous." + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 1, + "typeName": "T::Hash" + }, + { + "name": "index", + "type": 36, + "typeName": "ProposalIndex" + }, + { + "name": "proposal_weight_bound", + "type": 144, + "typeName": "Weight" + }, + { + "name": "length_bound", + "type": 36, + "typeName": "u32" + } + ], + "index": 16, + "docs": [ + "Close a vote that is either approved, disapproved, or whose voting period has ended.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "abdicate_fellow_status", + "index": 17, + "docs": [ + "Abdicate one's position as a voting member and just be an Ally. May be used by Fellows", + "who do not want to leave the Alliance but do not have the capacity to participate", + "operationally for some time." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 288, + "type": { + "path": [ + "pallet_alliance", + "types", + "DisbandWitness" + ], + "def": { + "composite": { + "fields": [ + { + "name": "fellow_members", + "type": 36, + "typeName": "u32" + }, + { + "name": "ally_members", + "type": 36, + "typeName": "u32" + } + ] + } + } + } + }, + { + "id": 289, + "type": { + "path": [ + "pallet_alliance", + "types", + "Cid" + ], + "def": { + "composite": { + "fields": [ + { + "name": "version", + "type": 290, + "typeName": "Version" + }, + { + "name": "codec", + "type": 12, + "typeName": "u64" + }, + { + "name": "hash", + "type": 291, + "typeName": "Multihash" + } + ] + } + } + } + }, + { + "id": 290, + "type": { + "path": [ + "pallet_alliance", + "types", + "Version" + ], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "index": 0 + }, + { + "name": "V1", + "index": 1 + } + ] + } + } + } + }, + { + "id": 291, + "type": { + "path": [ + "pallet_alliance", + "types", + "Multihash" + ], + "def": { + "composite": { + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "u64" + }, + { + "name": "digest", + "type": 292, + "typeName": "BoundedVec>" + } + ] + } + } + } + }, + { + "id": 292, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 293, + "type": { + "def": { + "sequence": { + "type": 294 + } + } + } + }, + { + "id": 294, + "type": { + "path": [ + "pallet_alliance", + "UnscrupulousItem" + ], + "params": [ + { + "name": "AccountId", + "type": 52 + }, + { + "name": "Url", + "type": 295 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AccountId", + "fields": [ + { + "type": 52, + "typeName": "AccountId" + } + ], + "index": 0 + }, + { + "name": "Website", + "fields": [ + { + "type": 295, + "typeName": "Url" + } + ], + "index": 1 + } + ] + } + } + } + }, + { + "id": 295, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 28, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 296, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is transferred from the member to the", + "pools account and immediately increases the pools bond.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 297, + "typeName": "BondExtra>" + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is there first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to caim rewards on bahalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "unbonding_points", + "type": 56, + "typeName": "BalanceOf" + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if their are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "If the target is the depositor, the pool will be destroyed." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "root", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "nominator", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "bouncer", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferrable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "root", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "nominator", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "bouncer", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "validators", + "type": 122, + "typeName": "Vec" + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "state", + "type": 298, + "typeName": "PoolState" + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "metadata", + "type": 28, + "typeName": "Vec" + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role", + "of the pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 299, + "typeName": "ConfigOp>" + }, + { + "name": "min_create_bond", + "type": 299, + "typeName": "ConfigOp>" + }, + { + "name": "max_pools", + "type": 300, + "typeName": "ConfigOp" + }, + { + "name": "max_members", + "type": 300, + "typeName": "ConfigOp" + }, + { + "name": "max_members_per_pool", + "type": 300, + "typeName": "ConfigOp" + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "Root.", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + }, + { + "name": "new_root", + "type": 301, + "typeName": "ConfigOp" + }, + { + "name": "new_nominator", + "type": 301, + "typeName": "ConfigOp" + }, + { + "name": "new_bouncer", + "type": 301, + "typeName": "ConfigOp" + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId" + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "extra", + "type": 297, + "typeName": "BondExtra>" + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessAll` or `PermissionlessCompound`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 302, + "typeName": "ClaimPermission" + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "By default, this is `Permissioned`, which implies only the pool member themselves can", + "claim their pending rewards. If a pool member wishes so, they can set this to", + "`PermissionlessAll` to allow any account to claim their rewards and bond extra to the", + "pool.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `actor` - Account to claim reward. // improve this" + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 52, + "typeName": "T::AccountId" + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessAll` or `PermissionlessWithdraw` in order", + "for this call to be successful." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 297, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 57 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "type": 57, + "typeName": "Balance" + } + ], + "index": 0 + }, + { + "name": "Rewards", + "index": 1 + } + ] + } + } + } + }, + { + "id": 298, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "index": 0 + }, + { + "name": "Blocked", + "index": 1 + }, + { + "name": "Destroying", + "index": 2 + } + ] + } + } + } + }, + { + "id": 299, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 57 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 57, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 300, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 4, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 301, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 52 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "index": 0 + }, + { + "name": "Set", + "fields": [ + { + "type": 52, + "typeName": "T" + } + ], + "index": 1 + }, + { + "name": "Remove", + "index": 2 + } + ] + } + } + } + }, + { + "id": 302, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "index": 0 + }, + { + "name": "PermissionlessCompound", + "index": 1 + }, + { + "name": "PermissionlessWithdraw", + "index": 2 + }, + { + "name": "PermissionlessAll", + "index": 3 + } + ] + } + } + } + }, + { + "id": 303, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 271, + "typeName": "Box>" + }, + { + "name": "proposal", + "type": 133, + "typeName": "BoundedCallOf" + }, + { + "name": "enactment_moment", + "type": 277, + "typeName": "DispatchTime" + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 20, + "typeName": "TrackIdOf" + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex" + }, + { + "name": "maybe_hash", + "type": 139, + "typeName": "Option" + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 304, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 0, + "docs": [ + "Introduce a new member.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of non-member which will become a member.", + "- `rank`: The rank to give the new member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "promote_member", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 1, + "docs": [ + "Increment the rank of an existing member by one.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of existing member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "demote_member", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + } + ], + "index": 2, + "docs": [ + "Decrement the rank of an existing member by one. If the member is already at rank zero,", + "then they are removed entirely.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "", + "Weight: `O(1)`, less if the member's index is highest in its rank." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 51, + "typeName": "AccountIdLookupOf" + }, + { + "name": "min_rank", + "type": 20, + "typeName": "Rank" + } + ], + "index": 3, + "docs": [ + "Remove the member entirely.", + "", + "- `origin`: Must be the `AdminOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "- `min_rank`: The rank of the member or greater.", + "", + "Weight: `O(min_rank)`." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf" + }, + { + "name": "aye", + "type": 54, + "typeName": "bool" + } + ], + "index": 4, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "- `origin`: Must be `Signed` by a member account.", + "- `poll`: Index of a poll which is ongoing.", + "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise.", + "", + "Transaction fees are be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "", + "Weight: `O(1)`, less if there was no previous vote on the poll by the member." + ] + }, + { + "name": "cleanup_poll", + "fields": [ + { + "name": "poll_index", + "type": 4, + "typeName": "PollIndexOf" + }, + { + "name": "max", + "type": 4, + "typeName": "u32" + } + ], + "index": 5, + "docs": [ + "Remove votes from the given poll. It must have ended.", + "", + "- `origin`: Must be `Signed` by any account.", + "- `poll_index`: Index of a poll which is completed and for which votes continue to", + " exist.", + "- `max`: Maximum number of vote items from remove in this call.", + "", + "Transaction fees are waived if the operation is successful.", + "", + "Weight `O(max)` (less if there are fewer items to remove than `max`)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 305, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "index": 0, + "docs": [ + "Register oneself for fast-unstake.", + "", + "The dispatch origin of this call must be signed by the controller account, similar to", + "`staking::unbond`.", + "", + "The stash associated with the origin must have no ongoing unlocking chunks. If", + "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash", + "to be checked in further blocks.", + "", + "If by the time this is called, the stash is actually eligible for fast-unstake, then", + "they are guaranteed to remain eligible, because the call will chill them as well.", + "", + "If the check works, the entire staking data is removed, i.e. the stash is fully", + "unstaked.", + "", + "If the check fails, the stash remains chilled and waiting for being unbonded as in with", + "the normal staking system, but they lose part of their unbonding chunks due to consuming", + "the chain's resources." + ] + }, + { + "name": "deregister", + "index": 1, + "docs": [ + "Deregister oneself from the fast-unstake.", + "", + "This is useful if one is registered, they are still waiting, and they change their mind.", + "", + "Note that the associated stash is still fully unbonded and chilled as a consequence of", + "calling `register_fast_unstake`. This should probably be followed by a call to", + "`Staking::rebond`." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex" + } + ], + "index": 2, + "docs": [ + "Control the operation of this pallet.", + "", + "Dispatch origin must be signed by the [`Config::ControlOrigin`]." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 306, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex" + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf" + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex" + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size" + }, + { + "name": "weight_limit", + "type": 144, + "typeName": "Weight" + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 307, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "emit_event", + "index": 0 + }, + { + "name": "noop", + "index": 1 + } + ] + } + }, + "docs": [ + "Contains one variant per dispatchable that can be called by an extrinsic." + ] + } + }, + { + "id": 308, + "type": { + "def": { + "tuple": [ + 309, + 310, + 311, + 312, + 313, + 315, + 316, + 317 + ] + } + } + }, + { + "id": 309, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 310, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 311, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 312, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 313, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 314, + "typeName": "Era" + } + ] + } + } + } + }, + { + "id": 314, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "index": 0 + }, + { + "name": "Mortal1", + "fields": [ + { + "type": 3 + } + ], + "index": 1 + }, + { + "name": "Mortal2", + "fields": [ + { + "type": 3 + } + ], + "index": 2 + }, + { + "name": "Mortal3", + "fields": [ + { + "type": 3 + } + ], + "index": 3 + }, + { + "name": "Mortal4", + "fields": [ + { + "type": 3 + } + ], + "index": 4 + }, + { + "name": "Mortal5", + "fields": [ + { + "type": 3 + } + ], + "index": 5 + }, + { + "name": "Mortal6", + "fields": [ + { + "type": 3 + } + ], + "index": 6 + }, + { + "name": "Mortal7", + "fields": [ + { + "type": 3 + } + ], + "index": 7 + }, + { + "name": "Mortal8", + "fields": [ + { + "type": 3 + } + ], + "index": 8 + }, + { + "name": "Mortal9", + "fields": [ + { + "type": 3 + } + ], + "index": 9 + }, + { + "name": "Mortal10", + "fields": [ + { + "type": 3 + } + ], + "index": 10 + }, + { + "name": "Mortal11", + "fields": [ + { + "type": 3 + } + ], + "index": 11 + }, + { + "name": "Mortal12", + "fields": [ + { + "type": 3 + } + ], + "index": 12 + }, + { + "name": "Mortal13", + "fields": [ + { + "type": 3 + } + ], + "index": 13 + }, + { + "name": "Mortal14", + "fields": [ + { + "type": 3 + } + ], + "index": 14 + }, + { + "name": "Mortal15", + "fields": [ + { + "type": 3 + } + ], + "index": 15 + }, + { + "name": "Mortal16", + "fields": [ + { + "type": 3 + } + ], + "index": 16 + }, + { + "name": "Mortal17", + "fields": [ + { + "type": 3 + } + ], + "index": 17 + }, + { + "name": "Mortal18", + "fields": [ + { + "type": 3 + } + ], + "index": 18 + }, + { + "name": "Mortal19", + "fields": [ + { + "type": 3 + } + ], + "index": 19 + }, + { + "name": "Mortal20", + "fields": [ + { + "type": 3 + } + ], + "index": 20 + }, + { + "name": "Mortal21", + "fields": [ + { + "type": 3 + } + ], + "index": 21 + }, + { + "name": "Mortal22", + "fields": [ + { + "type": 3 + } + ], + "index": 22 + }, + { + "name": "Mortal23", + "fields": [ + { + "type": 3 + } + ], + "index": 23 + }, + { + "name": "Mortal24", + "fields": [ + { + "type": 3 + } + ], + "index": 24 + }, + { + "name": "Mortal25", + "fields": [ + { + "type": 3 + } + ], + "index": 25 + }, + { + "name": "Mortal26", + "fields": [ + { + "type": 3 + } + ], + "index": 26 + }, + { + "name": "Mortal27", + "fields": [ + { + "type": 3 + } + ], + "index": 27 + }, + { + "name": "Mortal28", + "fields": [ + { + "type": 3 + } + ], + "index": 28 + }, + { + "name": "Mortal29", + "fields": [ + { + "type": 3 + } + ], + "index": 29 + }, + { + "name": "Mortal30", + "fields": [ + { + "type": 3 + } + ], + "index": 30 + }, + { + "name": "Mortal31", + "fields": [ + { + "type": 3 + } + ], + "index": 31 + }, + { + "name": "Mortal32", + "fields": [ + { + "type": 3 + } + ], + "index": 32 + }, + { + "name": "Mortal33", + "fields": [ + { + "type": 3 + } + ], + "index": 33 + }, + { + "name": "Mortal34", + "fields": [ + { + "type": 3 + } + ], + "index": 34 + }, + { + "name": "Mortal35", + "fields": [ + { + "type": 3 + } + ], + "index": 35 + }, + { + "name": "Mortal36", + "fields": [ + { + "type": 3 + } + ], + "index": 36 + }, + { + "name": "Mortal37", + "fields": [ + { + "type": 3 + } + ], + "index": 37 + }, + { + "name": "Mortal38", + "fields": [ + { + "type": 3 + } + ], + "index": 38 + }, + { + "name": "Mortal39", + "fields": [ + { + "type": 3 + } + ], + "index": 39 + }, + { + "name": "Mortal40", + "fields": [ + { + "type": 3 + } + ], + "index": 40 + }, + { + "name": "Mortal41", + "fields": [ + { + "type": 3 + } + ], + "index": 41 + }, + { + "name": "Mortal42", + "fields": [ + { + "type": 3 + } + ], + "index": 42 + }, + { + "name": "Mortal43", + "fields": [ + { + "type": 3 + } + ], + "index": 43 + }, + { + "name": "Mortal44", + "fields": [ + { + "type": 3 + } + ], + "index": 44 + }, + { + "name": "Mortal45", + "fields": [ + { + "type": 3 + } + ], + "index": 45 + }, + { + "name": "Mortal46", + "fields": [ + { + "type": 3 + } + ], + "index": 46 + }, + { + "name": "Mortal47", + "fields": [ + { + "type": 3 + } + ], + "index": 47 + }, + { + "name": "Mortal48", + "fields": [ + { + "type": 3 + } + ], + "index": 48 + }, + { + "name": "Mortal49", + "fields": [ + { + "type": 3 + } + ], + "index": 49 + }, + { + "name": "Mortal50", + "fields": [ + { + "type": 3 + } + ], + "index": 50 + }, + { + "name": "Mortal51", + "fields": [ + { + "type": 3 + } + ], + "index": 51 + }, + { + "name": "Mortal52", + "fields": [ + { + "type": 3 + } + ], + "index": 52 + }, + { + "name": "Mortal53", + "fields": [ + { + "type": 3 + } + ], + "index": 53 + }, + { + "name": "Mortal54", + "fields": [ + { + "type": 3 + } + ], + "index": 54 + }, + { + "name": "Mortal55", + "fields": [ + { + "type": 3 + } + ], + "index": 55 + }, + { + "name": "Mortal56", + "fields": [ + { + "type": 3 + } + ], + "index": 56 + }, + { + "name": "Mortal57", + "fields": [ + { + "type": 3 + } + ], + "index": 57 + }, + { + "name": "Mortal58", + "fields": [ + { + "type": 3 + } + ], + "index": 58 + }, + { + "name": "Mortal59", + "fields": [ + { + "type": 3 + } + ], + "index": 59 + }, + { + "name": "Mortal60", + "fields": [ + { + "type": 3 + } + ], + "index": 60 + }, + { + "name": "Mortal61", + "fields": [ + { + "type": 3 + } + ], + "index": 61 + }, + { + "name": "Mortal62", + "fields": [ + { + "type": 3 + } + ], + "index": 62 + }, + { + "name": "Mortal63", + "fields": [ + { + "type": 3 + } + ], + "index": 63 + }, + { + "name": "Mortal64", + "fields": [ + { + "type": 3 + } + ], + "index": 64 + }, + { + "name": "Mortal65", + "fields": [ + { + "type": 3 + } + ], + "index": 65 + }, + { + "name": "Mortal66", + "fields": [ + { + "type": 3 + } + ], + "index": 66 + }, + { + "name": "Mortal67", + "fields": [ + { + "type": 3 + } + ], + "index": 67 + }, + { + "name": "Mortal68", + "fields": [ + { + "type": 3 + } + ], + "index": 68 + }, + { + "name": "Mortal69", + "fields": [ + { + "type": 3 + } + ], + "index": 69 + }, + { + "name": "Mortal70", + "fields": [ + { + "type": 3 + } + ], + "index": 70 + }, + { + "name": "Mortal71", + "fields": [ + { + "type": 3 + } + ], + "index": 71 + }, + { + "name": "Mortal72", + "fields": [ + { + "type": 3 + } + ], + "index": 72 + }, + { + "name": "Mortal73", + "fields": [ + { + "type": 3 + } + ], + "index": 73 + }, + { + "name": "Mortal74", + "fields": [ + { + "type": 3 + } + ], + "index": 74 + }, + { + "name": "Mortal75", + "fields": [ + { + "type": 3 + } + ], + "index": 75 + }, + { + "name": "Mortal76", + "fields": [ + { + "type": 3 + } + ], + "index": 76 + }, + { + "name": "Mortal77", + "fields": [ + { + "type": 3 + } + ], + "index": 77 + }, + { + "name": "Mortal78", + "fields": [ + { + "type": 3 + } + ], + "index": 78 + }, + { + "name": "Mortal79", + "fields": [ + { + "type": 3 + } + ], + "index": 79 + }, + { + "name": "Mortal80", + "fields": [ + { + "type": 3 + } + ], + "index": 80 + }, + { + "name": "Mortal81", + "fields": [ + { + "type": 3 + } + ], + "index": 81 + }, + { + "name": "Mortal82", + "fields": [ + { + "type": 3 + } + ], + "index": 82 + }, + { + "name": "Mortal83", + "fields": [ + { + "type": 3 + } + ], + "index": 83 + }, + { + "name": "Mortal84", + "fields": [ + { + "type": 3 + } + ], + "index": 84 + }, + { + "name": "Mortal85", + "fields": [ + { + "type": 3 + } + ], + "index": 85 + }, + { + "name": "Mortal86", + "fields": [ + { + "type": 3 + } + ], + "index": 86 + }, + { + "name": "Mortal87", + "fields": [ + { + "type": 3 + } + ], + "index": 87 + }, + { + "name": "Mortal88", + "fields": [ + { + "type": 3 + } + ], + "index": 88 + }, + { + "name": "Mortal89", + "fields": [ + { + "type": 3 + } + ], + "index": 89 + }, + { + "name": "Mortal90", + "fields": [ + { + "type": 3 + } + ], + "index": 90 + }, + { + "name": "Mortal91", + "fields": [ + { + "type": 3 + } + ], + "index": 91 + }, + { + "name": "Mortal92", + "fields": [ + { + "type": 3 + } + ], + "index": 92 + }, + { + "name": "Mortal93", + "fields": [ + { + "type": 3 + } + ], + "index": 93 + }, + { + "name": "Mortal94", + "fields": [ + { + "type": 3 + } + ], + "index": 94 + }, + { + "name": "Mortal95", + "fields": [ + { + "type": 3 + } + ], + "index": 95 + }, + { + "name": "Mortal96", + "fields": [ + { + "type": 3 + } + ], + "index": 96 + }, + { + "name": "Mortal97", + "fields": [ + { + "type": 3 + } + ], + "index": 97 + }, + { + "name": "Mortal98", + "fields": [ + { + "type": 3 + } + ], + "index": 98 + }, + { + "name": "Mortal99", + "fields": [ + { + "type": 3 + } + ], + "index": 99 + }, + { + "name": "Mortal100", + "fields": [ + { + "type": 3 + } + ], + "index": 100 + }, + { + "name": "Mortal101", + "fields": [ + { + "type": 3 + } + ], + "index": 101 + }, + { + "name": "Mortal102", + "fields": [ + { + "type": 3 + } + ], + "index": 102 + }, + { + "name": "Mortal103", + "fields": [ + { + "type": 3 + } + ], + "index": 103 + }, + { + "name": "Mortal104", + "fields": [ + { + "type": 3 + } + ], + "index": 104 + }, + { + "name": "Mortal105", + "fields": [ + { + "type": 3 + } + ], + "index": 105 + }, + { + "name": "Mortal106", + "fields": [ + { + "type": 3 + } + ], + "index": 106 + }, + { + "name": "Mortal107", + "fields": [ + { + "type": 3 + } + ], + "index": 107 + }, + { + "name": "Mortal108", + "fields": [ + { + "type": 3 + } + ], + "index": 108 + }, + { + "name": "Mortal109", + "fields": [ + { + "type": 3 + } + ], + "index": 109 + }, + { + "name": "Mortal110", + "fields": [ + { + "type": 3 + } + ], + "index": 110 + }, + { + "name": "Mortal111", + "fields": [ + { + "type": 3 + } + ], + "index": 111 + }, + { + "name": "Mortal112", + "fields": [ + { + "type": 3 + } + ], + "index": 112 + }, + { + "name": "Mortal113", + "fields": [ + { + "type": 3 + } + ], + "index": 113 + }, + { + "name": "Mortal114", + "fields": [ + { + "type": 3 + } + ], + "index": 114 + }, + { + "name": "Mortal115", + "fields": [ + { + "type": 3 + } + ], + "index": 115 + }, + { + "name": "Mortal116", + "fields": [ + { + "type": 3 + } + ], + "index": 116 + }, + { + "name": "Mortal117", + "fields": [ + { + "type": 3 + } + ], + "index": 117 + }, + { + "name": "Mortal118", + "fields": [ + { + "type": 3 + } + ], + "index": 118 + }, + { + "name": "Mortal119", + "fields": [ + { + "type": 3 + } + ], + "index": 119 + }, + { + "name": "Mortal120", + "fields": [ + { + "type": 3 + } + ], + "index": 120 + }, + { + "name": "Mortal121", + "fields": [ + { + "type": 3 + } + ], + "index": 121 + }, + { + "name": "Mortal122", + "fields": [ + { + "type": 3 + } + ], + "index": 122 + }, + { + "name": "Mortal123", + "fields": [ + { + "type": 3 + } + ], + "index": 123 + }, + { + "name": "Mortal124", + "fields": [ + { + "type": 3 + } + ], + "index": 124 + }, + { + "name": "Mortal125", + "fields": [ + { + "type": 3 + } + ], + "index": 125 + }, + { + "name": "Mortal126", + "fields": [ + { + "type": 3 + } + ], + "index": 126 + }, + { + "name": "Mortal127", + "fields": [ + { + "type": 3 + } + ], + "index": 127 + }, + { + "name": "Mortal128", + "fields": [ + { + "type": 3 + } + ], + "index": 128 + }, + { + "name": "Mortal129", + "fields": [ + { + "type": 3 + } + ], + "index": 129 + }, + { + "name": "Mortal130", + "fields": [ + { + "type": 3 + } + ], + "index": 130 + }, + { + "name": "Mortal131", + "fields": [ + { + "type": 3 + } + ], + "index": 131 + }, + { + "name": "Mortal132", + "fields": [ + { + "type": 3 + } + ], + "index": 132 + }, + { + "name": "Mortal133", + "fields": [ + { + "type": 3 + } + ], + "index": 133 + }, + { + "name": "Mortal134", + "fields": [ + { + "type": 3 + } + ], + "index": 134 + }, + { + "name": "Mortal135", + "fields": [ + { + "type": 3 + } + ], + "index": 135 + }, + { + "name": "Mortal136", + "fields": [ + { + "type": 3 + } + ], + "index": 136 + }, + { + "name": "Mortal137", + "fields": [ + { + "type": 3 + } + ], + "index": 137 + }, + { + "name": "Mortal138", + "fields": [ + { + "type": 3 + } + ], + "index": 138 + }, + { + "name": "Mortal139", + "fields": [ + { + "type": 3 + } + ], + "index": 139 + }, + { + "name": "Mortal140", + "fields": [ + { + "type": 3 + } + ], + "index": 140 + }, + { + "name": "Mortal141", + "fields": [ + { + "type": 3 + } + ], + "index": 141 + }, + { + "name": "Mortal142", + "fields": [ + { + "type": 3 + } + ], + "index": 142 + }, + { + "name": "Mortal143", + "fields": [ + { + "type": 3 + } + ], + "index": 143 + }, + { + "name": "Mortal144", + "fields": [ + { + "type": 3 + } + ], + "index": 144 + }, + { + "name": "Mortal145", + "fields": [ + { + "type": 3 + } + ], + "index": 145 + }, + { + "name": "Mortal146", + "fields": [ + { + "type": 3 + } + ], + "index": 146 + }, + { + "name": "Mortal147", + "fields": [ + { + "type": 3 + } + ], + "index": 147 + }, + { + "name": "Mortal148", + "fields": [ + { + "type": 3 + } + ], + "index": 148 + }, + { + "name": "Mortal149", + "fields": [ + { + "type": 3 + } + ], + "index": 149 + }, + { + "name": "Mortal150", + "fields": [ + { + "type": 3 + } + ], + "index": 150 + }, + { + "name": "Mortal151", + "fields": [ + { + "type": 3 + } + ], + "index": 151 + }, + { + "name": "Mortal152", + "fields": [ + { + "type": 3 + } + ], + "index": 152 + }, + { + "name": "Mortal153", + "fields": [ + { + "type": 3 + } + ], + "index": 153 + }, + { + "name": "Mortal154", + "fields": [ + { + "type": 3 + } + ], + "index": 154 + }, + { + "name": "Mortal155", + "fields": [ + { + "type": 3 + } + ], + "index": 155 + }, + { + "name": "Mortal156", + "fields": [ + { + "type": 3 + } + ], + "index": 156 + }, + { + "name": "Mortal157", + "fields": [ + { + "type": 3 + } + ], + "index": 157 + }, + { + "name": "Mortal158", + "fields": [ + { + "type": 3 + } + ], + "index": 158 + }, + { + "name": "Mortal159", + "fields": [ + { + "type": 3 + } + ], + "index": 159 + }, + { + "name": "Mortal160", + "fields": [ + { + "type": 3 + } + ], + "index": 160 + }, + { + "name": "Mortal161", + "fields": [ + { + "type": 3 + } + ], + "index": 161 + }, + { + "name": "Mortal162", + "fields": [ + { + "type": 3 + } + ], + "index": 162 + }, + { + "name": "Mortal163", + "fields": [ + { + "type": 3 + } + ], + "index": 163 + }, + { + "name": "Mortal164", + "fields": [ + { + "type": 3 + } + ], + "index": 164 + }, + { + "name": "Mortal165", + "fields": [ + { + "type": 3 + } + ], + "index": 165 + }, + { + "name": "Mortal166", + "fields": [ + { + "type": 3 + } + ], + "index": 166 + }, + { + "name": "Mortal167", + "fields": [ + { + "type": 3 + } + ], + "index": 167 + }, + { + "name": "Mortal168", + "fields": [ + { + "type": 3 + } + ], + "index": 168 + }, + { + "name": "Mortal169", + "fields": [ + { + "type": 3 + } + ], + "index": 169 + }, + { + "name": "Mortal170", + "fields": [ + { + "type": 3 + } + ], + "index": 170 + }, + { + "name": "Mortal171", + "fields": [ + { + "type": 3 + } + ], + "index": 171 + }, + { + "name": "Mortal172", + "fields": [ + { + "type": 3 + } + ], + "index": 172 + }, + { + "name": "Mortal173", + "fields": [ + { + "type": 3 + } + ], + "index": 173 + }, + { + "name": "Mortal174", + "fields": [ + { + "type": 3 + } + ], + "index": 174 + }, + { + "name": "Mortal175", + "fields": [ + { + "type": 3 + } + ], + "index": 175 + }, + { + "name": "Mortal176", + "fields": [ + { + "type": 3 + } + ], + "index": 176 + }, + { + "name": "Mortal177", + "fields": [ + { + "type": 3 + } + ], + "index": 177 + }, + { + "name": "Mortal178", + "fields": [ + { + "type": 3 + } + ], + "index": 178 + }, + { + "name": "Mortal179", + "fields": [ + { + "type": 3 + } + ], + "index": 179 + }, + { + "name": "Mortal180", + "fields": [ + { + "type": 3 + } + ], + "index": 180 + }, + { + "name": "Mortal181", + "fields": [ + { + "type": 3 + } + ], + "index": 181 + }, + { + "name": "Mortal182", + "fields": [ + { + "type": 3 + } + ], + "index": 182 + }, + { + "name": "Mortal183", + "fields": [ + { + "type": 3 + } + ], + "index": 183 + }, + { + "name": "Mortal184", + "fields": [ + { + "type": 3 + } + ], + "index": 184 + }, + { + "name": "Mortal185", + "fields": [ + { + "type": 3 + } + ], + "index": 185 + }, + { + "name": "Mortal186", + "fields": [ + { + "type": 3 + } + ], + "index": 186 + }, + { + "name": "Mortal187", + "fields": [ + { + "type": 3 + } + ], + "index": 187 + }, + { + "name": "Mortal188", + "fields": [ + { + "type": 3 + } + ], + "index": 188 + }, + { + "name": "Mortal189", + "fields": [ + { + "type": 3 + } + ], + "index": 189 + }, + { + "name": "Mortal190", + "fields": [ + { + "type": 3 + } + ], + "index": 190 + }, + { + "name": "Mortal191", + "fields": [ + { + "type": 3 + } + ], + "index": 191 + }, + { + "name": "Mortal192", + "fields": [ + { + "type": 3 + } + ], + "index": 192 + }, + { + "name": "Mortal193", + "fields": [ + { + "type": 3 + } + ], + "index": 193 + }, + { + "name": "Mortal194", + "fields": [ + { + "type": 3 + } + ], + "index": 194 + }, + { + "name": "Mortal195", + "fields": [ + { + "type": 3 + } + ], + "index": 195 + }, + { + "name": "Mortal196", + "fields": [ + { + "type": 3 + } + ], + "index": 196 + }, + { + "name": "Mortal197", + "fields": [ + { + "type": 3 + } + ], + "index": 197 + }, + { + "name": "Mortal198", + "fields": [ + { + "type": 3 + } + ], + "index": 198 + }, + { + "name": "Mortal199", + "fields": [ + { + "type": 3 + } + ], + "index": 199 + }, + { + "name": "Mortal200", + "fields": [ + { + "type": 3 + } + ], + "index": 200 + }, + { + "name": "Mortal201", + "fields": [ + { + "type": 3 + } + ], + "index": 201 + }, + { + "name": "Mortal202", + "fields": [ + { + "type": 3 + } + ], + "index": 202 + }, + { + "name": "Mortal203", + "fields": [ + { + "type": 3 + } + ], + "index": 203 + }, + { + "name": "Mortal204", + "fields": [ + { + "type": 3 + } + ], + "index": 204 + }, + { + "name": "Mortal205", + "fields": [ + { + "type": 3 + } + ], + "index": 205 + }, + { + "name": "Mortal206", + "fields": [ + { + "type": 3 + } + ], + "index": 206 + }, + { + "name": "Mortal207", + "fields": [ + { + "type": 3 + } + ], + "index": 207 + }, + { + "name": "Mortal208", + "fields": [ + { + "type": 3 + } + ], + "index": 208 + }, + { + "name": "Mortal209", + "fields": [ + { + "type": 3 + } + ], + "index": 209 + }, + { + "name": "Mortal210", + "fields": [ + { + "type": 3 + } + ], + "index": 210 + }, + { + "name": "Mortal211", + "fields": [ + { + "type": 3 + } + ], + "index": 211 + }, + { + "name": "Mortal212", + "fields": [ + { + "type": 3 + } + ], + "index": 212 + }, + { + "name": "Mortal213", + "fields": [ + { + "type": 3 + } + ], + "index": 213 + }, + { + "name": "Mortal214", + "fields": [ + { + "type": 3 + } + ], + "index": 214 + }, + { + "name": "Mortal215", + "fields": [ + { + "type": 3 + } + ], + "index": 215 + }, + { + "name": "Mortal216", + "fields": [ + { + "type": 3 + } + ], + "index": 216 + }, + { + "name": "Mortal217", + "fields": [ + { + "type": 3 + } + ], + "index": 217 + }, + { + "name": "Mortal218", + "fields": [ + { + "type": 3 + } + ], + "index": 218 + }, + { + "name": "Mortal219", + "fields": [ + { + "type": 3 + } + ], + "index": 219 + }, + { + "name": "Mortal220", + "fields": [ + { + "type": 3 + } + ], + "index": 220 + }, + { + "name": "Mortal221", + "fields": [ + { + "type": 3 + } + ], + "index": 221 + }, + { + "name": "Mortal222", + "fields": [ + { + "type": 3 + } + ], + "index": 222 + }, + { + "name": "Mortal223", + "fields": [ + { + "type": 3 + } + ], + "index": 223 + }, + { + "name": "Mortal224", + "fields": [ + { + "type": 3 + } + ], + "index": 224 + }, + { + "name": "Mortal225", + "fields": [ + { + "type": 3 + } + ], + "index": 225 + }, + { + "name": "Mortal226", + "fields": [ + { + "type": 3 + } + ], + "index": 226 + }, + { + "name": "Mortal227", + "fields": [ + { + "type": 3 + } + ], + "index": 227 + }, + { + "name": "Mortal228", + "fields": [ + { + "type": 3 + } + ], + "index": 228 + }, + { + "name": "Mortal229", + "fields": [ + { + "type": 3 + } + ], + "index": 229 + }, + { + "name": "Mortal230", + "fields": [ + { + "type": 3 + } + ], + "index": 230 + }, + { + "name": "Mortal231", + "fields": [ + { + "type": 3 + } + ], + "index": 231 + }, + { + "name": "Mortal232", + "fields": [ + { + "type": 3 + } + ], + "index": 232 + }, + { + "name": "Mortal233", + "fields": [ + { + "type": 3 + } + ], + "index": 233 + }, + { + "name": "Mortal234", + "fields": [ + { + "type": 3 + } + ], + "index": 234 + }, + { + "name": "Mortal235", + "fields": [ + { + "type": 3 + } + ], + "index": 235 + }, + { + "name": "Mortal236", + "fields": [ + { + "type": 3 + } + ], + "index": 236 + }, + { + "name": "Mortal237", + "fields": [ + { + "type": 3 + } + ], + "index": 237 + }, + { + "name": "Mortal238", + "fields": [ + { + "type": 3 + } + ], + "index": 238 + }, + { + "name": "Mortal239", + "fields": [ + { + "type": 3 + } + ], + "index": 239 + }, + { + "name": "Mortal240", + "fields": [ + { + "type": 3 + } + ], + "index": 240 + }, + { + "name": "Mortal241", + "fields": [ + { + "type": 3 + } + ], + "index": 241 + }, + { + "name": "Mortal242", + "fields": [ + { + "type": 3 + } + ], + "index": 242 + }, + { + "name": "Mortal243", + "fields": [ + { + "type": 3 + } + ], + "index": 243 + }, + { + "name": "Mortal244", + "fields": [ + { + "type": 3 + } + ], + "index": 244 + }, + { + "name": "Mortal245", + "fields": [ + { + "type": 3 + } + ], + "index": 245 + }, + { + "name": "Mortal246", + "fields": [ + { + "type": 3 + } + ], + "index": 246 + }, + { + "name": "Mortal247", + "fields": [ + { + "type": 3 + } + ], + "index": 247 + }, + { + "name": "Mortal248", + "fields": [ + { + "type": 3 + } + ], + "index": 248 + }, + { + "name": "Mortal249", + "fields": [ + { + "type": 3 + } + ], + "index": 249 + }, + { + "name": "Mortal250", + "fields": [ + { + "type": 3 + } + ], + "index": 250 + }, + { + "name": "Mortal251", + "fields": [ + { + "type": 3 + } + ], + "index": 251 + }, + { + "name": "Mortal252", + "fields": [ + { + "type": 3 + } + ], + "index": 252 + }, + { + "name": "Mortal253", + "fields": [ + { + "type": 3 + } + ], + "index": 253 + }, + { + "name": "Mortal254", + "fields": [ + { + "type": 3 + } + ], + "index": 254 + }, + { + "name": "Mortal255", + "fields": [ + { + "type": 3 + } + ], + "index": 255 + } + ] + } + } + } + }, + { + "id": 315, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 36, + "typeName": "T::Index" + } + ] + } + } + } + }, + { + "id": 316, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": {} + } + } + }, + { + "id": 317, + "type": { + "path": [ + "pallet_asset_tx_payment", + "ChargeAssetTxPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "tip", + "type": 56, + "typeName": "BalanceOf" + }, + { + "name": "asset_id", + "type": 114, + "typeName": "Option>" + } + ] + } + } + } + }, + { + "id": 318, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 51 + }, + { + "name": "Call", + "type": 26 + }, + { + "name": "Signature", + "type": 256 + }, + { + "name": "Extra", + "type": 308 + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 28 + } + ] + } + } + } + }, + { + "id": 319, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "free_balance", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "free", + "type": 57, + "typeName": "T::Balance" + }, + { + "name": "reserved", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "to", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 57, + "typeName": "T::Balance" + }, + { + "name": "destination_status", + "type": 320, + "typeName": "Status" + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 52, + "typeName": "T::AccountId" + }, + { + "name": "amount", + "type": 57, + "typeName": "T::Balance" + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t" + ] + } + }, + { + "id": 320, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "index": 0 + }, + { + "name": "Reserved", + "index": 1 + } + ] + } + } + } + }, + { + "id": 321, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 322 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 324, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 322, + "type": { + "path": [ + "pallet_balances", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 57 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 176, + "typeName": "LockIdentifier" + }, + { + "name": "amount", + "type": 57, + "typeName": "Balance" + }, + { + "name": "reasons", + "type": 323, + "typeName": "Reasons" + } + ] + } + } + } + }, + { + "id": 323, + "type": { + "path": [ + "pallet_balances", + "Reasons" + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "index": 0 + }, + { + "name": "Misc", + "index": 1 + }, + { + "name": "All", + "index": 2 + } + ] + } + } + } + }, + { + "id": 324, + "type": { + "def": { + "sequence": { + "type": 322 + } + } + } + }, + { + "id": 325, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 326 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "type": 327, + "typeName": "Vec" + } + ] + } + } + } + }, + { + "id": 326, + "type": { + "path": [ + "pallet_balances", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 176 + }, + { + "name": "Balance", + "type": 57 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 176, + "typeName": "ReserveIdentifier" + }, + { + "name": "amount", + "type": 57, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 327, + "type": { + "def": { + "sequence": { + "type": 326 + } + } + } + }, + { + "id": 328, + "type": { + "path": [ + "pallet_balances", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 57 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 57, + "typeName": "Balance" + }, + { + "name": "reserved", + "type": 57, + "typeName": "Balance" + }, + { + "name": "misc_frozen", + "type": 57, + "typeName": "Balance" + }, + { + "name": "fee_frozen", + "type": 57, + "typeName": "Balance" + } + ] + } + } + } + }, + { + "id": 329, + "type": { + "path": [ + "kitchensink_runtime", + "Runtime" + ], + "def": { + "composite": {} + } + } + }, + { + "id": 330, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 331, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "index": 0, + "docs": [ + "Vesting balance too high to send value" + ] + }, + { + "name": "LiquidityRestrictions", + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal" + ] + }, + { + "name": "InsufficientBalance", + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit" + ] + }, + { + "name": "KeepAlive", + "index": 4, + "docs": [ + "Transfer/payment would kill account" + ] + }, + { + "name": "ExistingVestingSchedule", + "index": 5, + "docs": [ + "A vesting schedule already exists for this account" + ] + }, + { + "name": "DeadAccount", + "index": 6, + "docs": [ + "Beneficiary account must pre-exist" + ] + }, + { + "name": "TooManyReserves", + "index": 7, + "docs": [ + "Number of named reserves exceed MaxReserves" + ] + } + ] + } + }, + "docs": [ + "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t" + ] + } + } + ] + }, + "pallets": [ + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "entries": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "ty": { + "Plain": 57 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "ty": { + "Plain": 57 + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 52, + "value": 328 + } + }, + "default": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 52, + "value": 321 + } + }, + "default": [ + 0 + ], + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock." + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "ty": { + "Map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 52, + "value": 325 + } + }, + "default": [ + 0 + ], + "docs": [ + " Named reserves on some account balances." + ] + } + ] + }, + "calls": { + "ty": 55 + }, + "event": { + "ty": 319 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "ty": 57, + "value": [ + 0, + 64, + 122, + 16, + 243, + 90, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "docs": [ + " The minimum amount required to keep an account open." + ] + }, + { + "name": "MaxLocks", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation." + ] + }, + { + "name": "MaxReserves", + "ty": 4, + "value": [ + 50, + 0, + 0, + 0 + ], + "docs": [ + " The maximum number of named reserves that can exist on an account." + ] + } + ], + "error": { + "ty": 331 + }, + "index": 6 + } + ], + "extrinsic": { + "ty": 318, + "version": 4, + "signed_extensions": [ + { + "identifier": "CheckNonZeroSender", + "ty": 309, + "additional_signed": 330 + }, + { + "identifier": "CheckSpecVersion", + "ty": 310, + "additional_signed": 4 + }, + { + "identifier": "CheckTxVersion", + "ty": 311, + "additional_signed": 4 + }, + { + "identifier": "CheckGenesis", + "ty": 312, + "additional_signed": 1 + }, + { + "identifier": "CheckMortality", + "ty": 313, + "additional_signed": 1 + }, + { + "identifier": "CheckNonce", + "ty": 315, + "additional_signed": 330 + }, + { + "identifier": "CheckWeight", + "ty": 316, + "additional_signed": 330 + }, + { + "identifier": "ChargeAssetTxPayment", + "ty": 317, + "additional_signed": 330 + } + ] + }, + "ty": 755 + } + } +] diff --git a/cli/src/commands/metadata.rs b/cli/src/commands/metadata.rs index 4fe5ddc743..9214c528a6 100644 --- a/cli/src/commands/metadata.rs +++ b/cli/src/commands/metadata.rs @@ -9,6 +9,7 @@ use jsonrpsee::client_transport::ws::Uri; use scale::Decode; use std::io::{ self, + Read, Write, }; use subxt_codegen::utils::fetch_metadata_hex; @@ -35,6 +36,15 @@ pub async fn run(opts: Opts) -> color_eyre::Result<()> { match opts.format.as_str() { "json" => { let bytes = hex::decode(hex_data.trim_start_matches("0x"))?; + + // let metadata = ::decode(&mut &bytes[..])?; + // let mut file = std::fs::File::open( + // "/home/lexnv/workspace/subxt/artifacts/Balances.scale", + // ) + // .unwrap(); + // let mut bytes = Vec::new(); + // file.read_to_end(&mut bytes).unwrap(); + let metadata = ::decode(&mut &bytes[..])?; let json = serde_json::to_string_pretty(&metadata)?; println!("{json}"); diff --git a/examples/examples/balance_transfer_with_params.rs b/examples/examples/balance_transfer_with_params.rs index be53272d23..fe6f00149d 100644 --- a/examples/examples/balance_transfer_with_params.rs +++ b/examples/examples/balance_transfer_with_params.rs @@ -24,7 +24,8 @@ use subxt::{ OnlineClient, }; -#[subxt::subxt(runtime_metadata_path = "../artifacts/polkadot_metadata.scale")] +// #[subxt::subxt(runtime_metadata_path = "../artifacts/polkadot_metadata.scale")] +#[subxt::subxt(runtime_metadata_path = "../artifacts/Balances.scale")] pub mod polkadot {} #[tokio::main] @@ -40,7 +41,8 @@ async fn main() -> Result<(), Box> { // Create a transaction to submit: let tx = polkadot::tx() .balances() - .transfer(dest, 123_456_789_012_345); + .transfer(dest, 123_456_789_012_345) + .unvalidated(); // Configure the transaction tip and era: let tx_params = Params::new() diff --git a/metadata/src/stripped.rs b/metadata/src/stripped.rs index c0ed5481b4..10922df8d7 100644 --- a/metadata/src/stripped.rs +++ b/metadata/src/stripped.rs @@ -165,6 +165,16 @@ pub fn keep_pallet>( // Collect type ids from the pallet. let mut type_ids = collect_pallet_types(pallet); + for ty in metadata.types.types() { + let Some(ident) = ty.ty().path().ident() else { + continue + }; + // Collect custom type IDs. + if ident == "DispatchError" { + type_ids.insert(ty.id()); + } + } + // sp_runtime:: DispatchError // Collect extrisic type IDs. type_ids.insert(metadata.extrinsic.ty.id()); diff --git a/testing/integration-tests/src/codegen/balances.rs b/testing/integration-tests/src/codegen/balances.rs new file mode 100644 index 0000000000..6a9d5f75a1 --- /dev/null +++ b/testing/integration-tests/src/codegen/balances.rs @@ -0,0 +1,9393 @@ +#[allow(dead_code, unused_imports, non_camel_case_types)] +#[allow(clippy::all)] +pub mod api { + use super::api as root_mod; + pub static PALLETS: [&str; 1usize] = ["Balances"]; + #[derive( + :: subxt :: ext :: codec :: Decode, :: subxt :: ext :: codec :: Encode, Debug, + )] + pub enum Event { + #[codec(index = 6)] + Balances(balances::Event), + } + pub mod balances { + use super::root_mod; + use super::runtime_types; + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub mod calls { + use super::root_mod; + use super::runtime_types; + type DispatchError = runtime_types::sp_runtime::DispatchError; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Transfer { + pub dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + pub value: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct SetBalance { + pub who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + pub new_free: ::core::primitive::u128, + #[codec(compact)] + pub new_reserved: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ForceTransfer { + pub source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + pub dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + pub value: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct TransferKeepAlive { + pub dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + pub value: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct TransferAll { + pub dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + pub keep_alive: ::core::primitive::bool, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ForceUnreserve { + pub who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + pub amount: ::core::primitive::u128, + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Dependent on arguments but not critical, given proper implementations for input config"] + #[doc = " types. See related functions below."] + #[doc = "- It contains a limited number of reads and writes internally and no complex"] + #[doc = " computation."] + #[doc = ""] + #[doc = "Related functions:"] + #[doc = ""] + #[doc = " - `ensure_can_withdraw` is always called internally but has a bounded complexity."] + #[doc = " - Transferring balances to accounts that did not exist before will cause"] + #[doc = " `T::OnNewAccount::on_new_account` to be called."] + #[doc = " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`."] + #[doc = " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check"] + #[doc = " that the transfer will not kill the origin account."] + pub fn transfer( + &self, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + value: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "transfer", + Transfer { dest, value }, + [ + 255u8, 181u8, 144u8, 248u8, 64u8, 167u8, 5u8, 134u8, 208u8, + 20u8, 223u8, 103u8, 235u8, 35u8, 66u8, 184u8, 27u8, 94u8, + 176u8, 60u8, 233u8, 236u8, 145u8, 218u8, 44u8, 138u8, 240u8, + 224u8, 16u8, 193u8, 220u8, 95u8, + ], + ) + } + #[doc = "Set the balances of a given account."] + #[doc = ""] + #[doc = "This will alter `FreeBalance` and `ReservedBalance` in storage. it will"] + #[doc = "also alter the total issuance of the system (`TotalIssuance`) appropriately."] + #[doc = "If the new free or reserved balance is below the existential deposit,"] + #[doc = "it will reset the account nonce (`frame_system::AccountNonce`)."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] + pub fn set_balance( + &self, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + new_free: ::core::primitive::u128, + new_reserved: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "set_balance", + SetBalance { + who, + new_free, + new_reserved, + }, + [ + 174u8, 34u8, 80u8, 252u8, 193u8, 51u8, 228u8, 236u8, 234u8, + 16u8, 173u8, 214u8, 122u8, 21u8, 254u8, 7u8, 49u8, 176u8, + 18u8, 128u8, 122u8, 68u8, 72u8, 181u8, 119u8, 90u8, 167u8, + 46u8, 203u8, 220u8, 109u8, 110u8, + ], + ) + } + #[doc = "Exactly as `transfer`, except the origin must be root and the source account may be"] + #[doc = "specified."] + #[doc = "## Complexity"] + #[doc = "- Same as transfer, but additional read and write because the source account is not"] + #[doc = " assumed to be in the overlay."] + pub fn force_transfer( + &self, + source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + value: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "force_transfer", + ForceTransfer { + source, + dest, + value, + }, + [ + 56u8, 80u8, 186u8, 45u8, 134u8, 147u8, 200u8, 19u8, 53u8, + 221u8, 213u8, 32u8, 13u8, 51u8, 130u8, 42u8, 244u8, 85u8, + 50u8, 246u8, 189u8, 51u8, 93u8, 1u8, 108u8, 142u8, 112u8, + 245u8, 104u8, 255u8, 15u8, 62u8, + ], + ) + } + #[doc = "Same as the [`transfer`] call, but with a check that the transfer will not kill the"] + #[doc = "origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer`] instead."] + #[doc = ""] + #[doc = "[`transfer`]: struct.Pallet.html#method.transfer"] + pub fn transfer_keep_alive( + &self, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + value: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "transfer_keep_alive", + TransferKeepAlive { dest, value }, + [ + 202u8, 239u8, 204u8, 0u8, 52u8, 57u8, 158u8, 8u8, 252u8, + 178u8, 91u8, 197u8, 238u8, 186u8, 205u8, 56u8, 217u8, 250u8, + 21u8, 44u8, 239u8, 66u8, 79u8, 99u8, 25u8, 106u8, 70u8, + 226u8, 50u8, 255u8, 176u8, 71u8, + ], + ) + } + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true). ## Complexity"] + #[doc = "- O(1). Just like transfer, but reading the user's transferable balance first."] + pub fn transfer_all( + &self, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + keep_alive: ::core::primitive::bool, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "transfer_all", + TransferAll { dest, keep_alive }, + [ + 118u8, 215u8, 198u8, 243u8, 4u8, 173u8, 108u8, 224u8, 113u8, + 203u8, 149u8, 23u8, 130u8, 176u8, 53u8, 205u8, 112u8, 147u8, + 88u8, 167u8, 197u8, 32u8, 104u8, 117u8, 201u8, 168u8, 144u8, + 230u8, 120u8, 29u8, 122u8, 159u8, + ], + ) + } + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] + pub fn force_unreserve( + &self, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + amount: ::core::primitive::u128, + ) -> ::subxt::tx::StaticTxPayload { + ::subxt::tx::StaticTxPayload::new( + "Balances", + "force_unreserve", + ForceUnreserve { who, amount }, + [ + 39u8, 229u8, 111u8, 44u8, 147u8, 80u8, 7u8, 26u8, 185u8, + 121u8, 149u8, 25u8, 151u8, 37u8, 124u8, 46u8, 108u8, 136u8, + 167u8, 145u8, 103u8, 65u8, 33u8, 168u8, 36u8, 214u8, 126u8, + 237u8, 180u8, 61u8, 108u8, 110u8, + ], + ) + } + } + } + #[doc = "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t"] + pub type Event = runtime_types::pallet_balances::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "An account was created with some free balance."] + pub struct Endowed { + pub account: ::subxt::utils::AccountId32, + pub free_balance: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Endowed { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Endowed"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "An account was removed whose balance was non-zero but below ExistentialDeposit,"] + #[doc = "resulting in an outright loss."] + pub struct DustLost { + pub account: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for DustLost { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "DustLost"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Transfer succeeded."] + pub struct Transfer { + pub from: ::subxt::utils::AccountId32, + pub to: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Transfer { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Transfer"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "A balance was set by root."] + pub struct BalanceSet { + pub who: ::subxt::utils::AccountId32, + pub free: ::core::primitive::u128, + pub reserved: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for BalanceSet { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "BalanceSet"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some balance was reserved (moved from free to reserved)."] + pub struct Reserved { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Reserved { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Reserved"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some balance was unreserved (moved from reserved to free)."] + pub struct Unreserved { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Unreserved { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Unreserved"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some balance was moved from the reserve of the first account to the second account."] + #[doc = "Final argument indicates the destination balance type."] + pub struct ReserveRepatriated { + pub from: ::subxt::utils::AccountId32, + pub to: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + pub destination_status: + runtime_types::frame_support::traits::tokens::misc::BalanceStatus, + } + impl ::subxt::events::StaticEvent for ReserveRepatriated { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "ReserveRepatriated"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some amount was deposited (e.g. for transaction fees)."] + pub struct Deposit { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Deposit { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Deposit"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some amount was withdrawn from the account (e.g. for transaction fees)."] + pub struct Withdraw { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Withdraw { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Withdraw"; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Some amount was removed from the account (e.g. for misbehavior)."] + pub struct Slashed { + pub who: ::subxt::utils::AccountId32, + pub amount: ::core::primitive::u128, + } + impl ::subxt::events::StaticEvent for Slashed { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Slashed"; + } + } + pub mod storage { + use super::runtime_types; + pub struct StorageApi; + impl StorageApi { + #[doc = " The total units issued in the system."] + pub fn total_issuance( + &self, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u128>, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + (), + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "TotalIssuance", + vec![], + [ + 1u8, 206u8, 252u8, 237u8, 6u8, 30u8, 20u8, 232u8, 164u8, + 115u8, 51u8, 156u8, 156u8, 206u8, 241u8, 187u8, 44u8, 84u8, + 25u8, 164u8, 235u8, 20u8, 86u8, 242u8, 124u8, 23u8, 28u8, + 140u8, 26u8, 73u8, 231u8, 51u8, + ], + ) + } + #[doc = " The total units of outstanding deactivated balance in the system."] + pub fn inactive_issuance( + &self, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u128>, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + (), + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "InactiveIssuance", + vec![], + [ + 74u8, 203u8, 111u8, 142u8, 225u8, 104u8, 173u8, 51u8, 226u8, + 12u8, 85u8, 135u8, 41u8, 206u8, 177u8, 238u8, 94u8, 246u8, + 184u8, 250u8, 140u8, 213u8, 91u8, 118u8, 163u8, 111u8, 211u8, + 46u8, 204u8, 160u8, 154u8, 21u8, + ], + ) + } + #[doc = " The Balances pallet example of storing the balance of an account."] + #[doc = ""] + #[doc = " # Example"] + #[doc = ""] + #[doc = " ```nocompile"] + #[doc = " impl pallet_balances::Config for Runtime {"] + #[doc = " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>"] + #[doc = " }"] + #[doc = " ```"] + #[doc = ""] + #[doc = " You can also store the balance of an account in the `System` pallet."] + #[doc = ""] + #[doc = " # Example"] + #[doc = ""] + #[doc = " ```nocompile"] + #[doc = " impl pallet_balances::Config for Runtime {"] + #[doc = " type AccountStore = System"] + #[doc = " }"] + #[doc = " ```"] + #[doc = ""] + #[doc = " But this comes with tradeoffs, storing account balances in the system pallet stores"] + #[doc = " `frame_system` data alongside the account data contrary to storing account balances in the"] + #[doc = " `Balances` pallet, which uses a `StorageMap` to store balances data only."] + #[doc = " NOTE: This is only used in the case that this pallet is used to store balances."] + pub fn account( + &self, + _0: impl ::std::borrow::Borrow<::subxt::utils::AccountId32>, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType< + runtime_types::pallet_balances::AccountData< + ::core::primitive::u128, + >, + >, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Account", + vec![::subxt::storage::address::StorageMapKey::new( + _0.borrow(), + ::subxt::storage::address::StorageHasher::Blake2_128Concat, + )], + [ + 246u8, 154u8, 253u8, 71u8, 192u8, 192u8, 192u8, 236u8, 128u8, + 80u8, 40u8, 252u8, 201u8, 43u8, 3u8, 131u8, 19u8, 49u8, + 141u8, 240u8, 172u8, 217u8, 215u8, 109u8, 87u8, 135u8, 248u8, + 57u8, 98u8, 185u8, 22u8, 4u8, + ], + ) + } + #[doc = " The Balances pallet example of storing the balance of an account."] + #[doc = ""] + #[doc = " # Example"] + #[doc = ""] + #[doc = " ```nocompile"] + #[doc = " impl pallet_balances::Config for Runtime {"] + #[doc = " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>"] + #[doc = " }"] + #[doc = " ```"] + #[doc = ""] + #[doc = " You can also store the balance of an account in the `System` pallet."] + #[doc = ""] + #[doc = " # Example"] + #[doc = ""] + #[doc = " ```nocompile"] + #[doc = " impl pallet_balances::Config for Runtime {"] + #[doc = " type AccountStore = System"] + #[doc = " }"] + #[doc = " ```"] + #[doc = ""] + #[doc = " But this comes with tradeoffs, storing account balances in the system pallet stores"] + #[doc = " `frame_system` data alongside the account data contrary to storing account balances in the"] + #[doc = " `Balances` pallet, which uses a `StorageMap` to store balances data only."] + #[doc = " NOTE: This is only used in the case that this pallet is used to store balances."] + pub fn account_root( + &self, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType< + runtime_types::pallet_balances::AccountData< + ::core::primitive::u128, + >, + >, + (), + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Account", + Vec::new(), + [ + 246u8, 154u8, 253u8, 71u8, 192u8, 192u8, 192u8, 236u8, 128u8, + 80u8, 40u8, 252u8, 201u8, 43u8, 3u8, 131u8, 19u8, 49u8, + 141u8, 240u8, 172u8, 217u8, 215u8, 109u8, 87u8, 135u8, 248u8, + 57u8, 98u8, 185u8, 22u8, 4u8, + ], + ) + } + #[doc = " Any liquidity locks on some account balances."] + #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] pub fn locks (& self , _0 : impl :: std :: borrow :: Borrow < :: subxt :: utils :: AccountId32 > ,) -> :: subxt :: storage :: address :: StaticStorageAddress :: < :: subxt :: metadata :: DecodeStaticType < runtime_types :: bounded_collections :: weak_bounded_vec :: WeakBoundedVec < runtime_types :: pallet_balances :: BalanceLock < :: core :: primitive :: u128 > > > , :: subxt :: storage :: address :: Yes , :: subxt :: storage :: address :: Yes , :: subxt :: storage :: address :: Yes >{ + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Locks", + vec![::subxt::storage::address::StorageMapKey::new( + _0.borrow(), + ::subxt::storage::address::StorageHasher::Blake2_128Concat, + )], + [ + 216u8, 253u8, 87u8, 73u8, 24u8, 218u8, 35u8, 0u8, 244u8, + 134u8, 195u8, 58u8, 255u8, 64u8, 153u8, 212u8, 210u8, 232u8, + 4u8, 122u8, 90u8, 212u8, 136u8, 14u8, 127u8, 232u8, 8u8, + 192u8, 40u8, 233u8, 18u8, 250u8, + ], + ) + } + #[doc = " Any liquidity locks on some account balances."] + #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] pub fn locks_root (& self ,) -> :: subxt :: storage :: address :: StaticStorageAddress :: < :: subxt :: metadata :: DecodeStaticType < runtime_types :: bounded_collections :: weak_bounded_vec :: WeakBoundedVec < runtime_types :: pallet_balances :: BalanceLock < :: core :: primitive :: u128 > > > , () , :: subxt :: storage :: address :: Yes , :: subxt :: storage :: address :: Yes >{ + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Locks", + Vec::new(), + [ + 216u8, 253u8, 87u8, 73u8, 24u8, 218u8, 35u8, 0u8, 244u8, + 134u8, 195u8, 58u8, 255u8, 64u8, 153u8, 212u8, 210u8, 232u8, + 4u8, 122u8, 90u8, 212u8, 136u8, 14u8, 127u8, 232u8, 8u8, + 192u8, 40u8, 233u8, 18u8, 250u8, + ], + ) + } + #[doc = " Named reserves on some account balances."] + pub fn reserves( + &self, + _0: impl ::std::borrow::Borrow<::subxt::utils::AccountId32>, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::pallet_balances::ReserveData< + [::core::primitive::u8; 8usize], + ::core::primitive::u128, + >, + >, + >, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Reserves", + vec![::subxt::storage::address::StorageMapKey::new( + _0.borrow(), + ::subxt::storage::address::StorageHasher::Blake2_128Concat, + )], + [ + 17u8, 32u8, 191u8, 46u8, 76u8, 220u8, 101u8, 100u8, 42u8, + 250u8, 128u8, 167u8, 117u8, 44u8, 85u8, 96u8, 105u8, 216u8, + 16u8, 147u8, 74u8, 55u8, 183u8, 94u8, 160u8, 177u8, 26u8, + 187u8, 71u8, 197u8, 187u8, 163u8, + ], + ) + } + #[doc = " Named reserves on some account balances."] + pub fn reserves_root( + &self, + ) -> ::subxt::storage::address::StaticStorageAddress< + ::subxt::metadata::DecodeStaticType< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::pallet_balances::ReserveData< + [::core::primitive::u8; 8usize], + ::core::primitive::u128, + >, + >, + >, + (), + ::subxt::storage::address::Yes, + ::subxt::storage::address::Yes, + > { + ::subxt::storage::address::StaticStorageAddress::new( + "Balances", + "Reserves", + Vec::new(), + [ + 17u8, 32u8, 191u8, 46u8, 76u8, 220u8, 101u8, 100u8, 42u8, + 250u8, 128u8, 167u8, 117u8, 44u8, 85u8, 96u8, 105u8, 216u8, + 16u8, 147u8, 74u8, 55u8, 183u8, 94u8, 160u8, 177u8, 26u8, + 187u8, 71u8, 197u8, 187u8, 163u8, + ], + ) + } + } + } + pub mod constants { + use super::runtime_types; + pub struct ConstantsApi; + impl ConstantsApi { + #[doc = " The minimum amount required to keep an account open."] + pub fn existential_deposit( + &self, + ) -> ::subxt::constants::StaticConstantAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u128>, + > { + ::subxt::constants::StaticConstantAddress::new( + "Balances", + "ExistentialDeposit", + [ + 84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, + 200u8, 214u8, 27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, + 101u8, 54u8, 210u8, 136u8, 71u8, 63u8, 49u8, 237u8, 234u8, + 15u8, 178u8, 98u8, 148u8, 156u8, + ], + ) + } + #[doc = " The maximum number of locks that should exist on an account."] + #[doc = " Not strictly enforced, but used for weight estimation."] + pub fn max_locks( + &self, + ) -> ::subxt::constants::StaticConstantAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u32>, + > { + ::subxt::constants::StaticConstantAddress::new( + "Balances", + "MaxLocks", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, + 157u8, 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, + 98u8, 68u8, 9u8, 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, + 90u8, 203u8, 100u8, 41u8, 145u8, + ], + ) + } + #[doc = " The maximum number of named reserves that can exist on an account."] + pub fn max_reserves( + &self, + ) -> ::subxt::constants::StaticConstantAddress< + ::subxt::metadata::DecodeStaticType<::core::primitive::u32>, + > { + ::subxt::constants::StaticConstantAddress::new( + "Balances", + "MaxReserves", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, + 157u8, 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, + 98u8, 68u8, 9u8, 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, + 90u8, 203u8, 100u8, 41u8, 145u8, + ], + ) + } + } + } + } + pub mod runtime_types { + use super::runtime_types; + pub mod bounded_collections { + use super::runtime_types; + pub mod bounded_vec { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BoundedVec<_0>(pub ::std::vec::Vec<_0>); + } + pub mod weak_bounded_vec { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct WeakBoundedVec<_0>(pub ::std::vec::Vec<_0>); + } + } + pub mod finality_grandpa { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Equivocation<_0, _1, _2> { + pub round_number: ::core::primitive::u64, + pub identity: _0, + pub first: (_1, _2), + pub second: (_1, _2), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Precommit<_0, _1> { + pub target_hash: _0, + pub target_number: _1, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Prevote<_0, _1> { + pub target_hash: _0, + pub target_number: _1, + } + } + pub mod frame_benchmarking_pallet_pov { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + emit_event, + #[codec(index = 1)] + noop, + } + } + } + pub mod frame_support { + use super::runtime_types; + pub mod dispatch { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum RawOrigin<_0> { + #[codec(index = 0)] + Root, + #[codec(index = 1)] + Signed(_0), + #[codec(index = 2)] + None, + } + } + pub mod traits { + use super::runtime_types; + pub mod preimages { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Bounded<_0> { + #[codec(index = 0)] + Legacy { + hash: ::subxt::utils::H256, + }, + #[codec(index = 1)] + Inline( + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ), + #[codec(index = 2)] + Lookup { + hash: ::subxt::utils::H256, + len: ::core::primitive::u32, + }, + __Ignore(::core::marker::PhantomData<_0>), + } + } + pub mod schedule { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum DispatchTime<_0> { + #[codec(index = 0)] + At(_0), + #[codec(index = 1)] + After(_0), + } + } + pub mod tokens { + use super::runtime_types; + pub mod misc { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum AttributeNamespace<_0> { + #[codec(index = 0)] + Pallet, + #[codec(index = 1)] + CollectionOwner, + #[codec(index = 2)] + ItemOwner, + #[codec(index = 3)] + Account(_0), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum BalanceStatus { + #[codec(index = 0)] + Free, + #[codec(index = 1)] + Reserved, + } + } + } + } + } + pub mod frame_system { + use super::runtime_types; + pub mod extensions { + use super::runtime_types; + pub mod check_genesis { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckGenesis; + } + pub mod check_mortality { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckMortality( + pub runtime_types::sp_runtime::generic::era::Era, + ); + } + pub mod check_non_zero_sender { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckNonZeroSender; + } + pub mod check_nonce { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckNonce(#[codec(compact)] pub ::core::primitive::u32); + } + pub mod check_spec_version { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckSpecVersion; + } + pub mod check_tx_version { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckTxVersion; + } + pub mod check_weight { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CheckWeight; + } + } + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Make some on-chain remark."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`"] + remark { + remark: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Set the number of pages in the WebAssembly environment's heap."] + set_heap_pages { pages: ::core::primitive::u64 }, + #[codec(index = 2)] + #[doc = "Set the new runtime code."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`"] + set_code { + code: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 3)] + #[doc = "Set the new runtime code without doing any checks of the given `code`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(C)` where `C` length of `code`"] + set_code_without_checks { + code: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 4)] + #[doc = "Set some items of storage."] + set_storage { + items: ::std::vec::Vec<( + ::std::vec::Vec<::core::primitive::u8>, + ::std::vec::Vec<::core::primitive::u8>, + )>, + }, + #[codec(index = 5)] + #[doc = "Kill some items from storage."] + kill_storage { + keys: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + }, + #[codec(index = 6)] + #[doc = "Kill all storage items with a key that starts with the given prefix."] + #[doc = ""] + #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"] + #[doc = "the prefix we are removing to accurately calculate the weight of this function."] + kill_prefix { + prefix: ::std::vec::Vec<::core::primitive::u8>, + subkeys: ::core::primitive::u32, + }, + #[codec(index = 7)] + #[doc = "Make some on-chain remark and emit event."] + remark_with_event { + remark: ::std::vec::Vec<::core::primitive::u8>, + }, + } + } + } + pub mod kitchensink_runtime { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct NposSolution16 { + pub votes1: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes2: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + ( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ), + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes3: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 2usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes4: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 3usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes5: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 4usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes6: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 5usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes7: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 6usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes8: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 7usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes9: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 8usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes10: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 9usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes11: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 10usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes12: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 11usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes13: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 12usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes14: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 13usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes15: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 14usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + pub votes16: ::std::vec::Vec<( + ::subxt::ext::codec::Compact<::core::primitive::u32>, + [( + ::subxt::ext::codec::Compact<::core::primitive::u16>, + ::subxt::ext::codec::Compact< + runtime_types::sp_arithmetic::per_things::PerU16, + >, + ); 15usize], + ::subxt::ext::codec::Compact<::core::primitive::u16>, + )>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum OriginCaller { + #[codec(index = 0)] + system( + runtime_types::frame_support::dispatch::RawOrigin< + ::subxt::utils::AccountId32, + >, + ), + #[codec(index = 13)] + Council( + runtime_types::pallet_collective::RawOrigin< + ::subxt::utils::AccountId32, + >, + ), + #[codec(index = 14)] + TechnicalCommittee( + runtime_types::pallet_collective::RawOrigin< + ::subxt::utils::AccountId32, + >, + ), + #[codec(index = 52)] + AllianceMotion( + runtime_types::pallet_collective::RawOrigin< + ::subxt::utils::AccountId32, + >, + ), + #[codec(index = 4)] + Void(runtime_types::sp_core::Void), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ProxyType { + #[codec(index = 0)] + Any, + #[codec(index = 1)] + NonTransfer, + #[codec(index = 2)] + Governance, + #[codec(index = 3)] + Staking, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Runtime; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum RuntimeCall { + #[codec(index = 0)] + System(runtime_types::frame_system::pallet::Call), + #[codec(index = 1)] + Utility(runtime_types::pallet_utility::pallet::Call), + #[codec(index = 2)] + Babe(runtime_types::pallet_babe::pallet::Call), + #[codec(index = 3)] + Timestamp(runtime_types::pallet_timestamp::pallet::Call), + #[codec(index = 5)] + Indices(runtime_types::pallet_indices::pallet::Call), + #[codec(index = 6)] + Balances(runtime_types::pallet_balances::pallet::Call), + #[codec(index = 9)] + ElectionProviderMultiPhase( + runtime_types::pallet_election_provider_multi_phase::pallet::Call, + ), + #[codec(index = 10)] + Staking(runtime_types::pallet_staking::pallet::pallet::Call), + #[codec(index = 11)] + Session(runtime_types::pallet_session::pallet::Call), + #[codec(index = 12)] + Democracy(runtime_types::pallet_democracy::pallet::Call), + #[codec(index = 13)] + Council(runtime_types::pallet_collective::pallet::Call), + #[codec(index = 14)] + TechnicalCommittee(runtime_types::pallet_collective::pallet::Call), + #[codec(index = 15)] + Elections(runtime_types::pallet_elections_phragmen::pallet::Call), + #[codec(index = 16)] + TechnicalMembership(runtime_types::pallet_membership::pallet::Call), + #[codec(index = 17)] + Grandpa(runtime_types::pallet_grandpa::pallet::Call), + #[codec(index = 18)] + Treasury(runtime_types::pallet_treasury::pallet::Call), + #[codec(index = 19)] + Contracts(runtime_types::pallet_contracts::pallet::Call), + #[codec(index = 20)] + Sudo(runtime_types::pallet_sudo::pallet::Call), + #[codec(index = 21)] + ImOnline(runtime_types::pallet_im_online::pallet::Call), + #[codec(index = 26)] + Identity(runtime_types::pallet_identity::pallet::Call), + #[codec(index = 27)] + Society(runtime_types::pallet_society::pallet::Call), + #[codec(index = 28)] + Recovery(runtime_types::pallet_recovery::pallet::Call), + #[codec(index = 29)] + Vesting(runtime_types::pallet_vesting::pallet::Call), + #[codec(index = 30)] + Scheduler(runtime_types::pallet_scheduler::pallet::Call), + #[codec(index = 31)] + Glutton(runtime_types::pallet_glutton::pallet::Call), + #[codec(index = 32)] + Preimage(runtime_types::pallet_preimage::pallet::Call), + #[codec(index = 33)] + Proxy(runtime_types::pallet_proxy::pallet::Call), + #[codec(index = 34)] + Multisig(runtime_types::pallet_multisig::pallet::Call), + #[codec(index = 35)] + Bounties(runtime_types::pallet_bounties::pallet::Call), + #[codec(index = 36)] + Tips(runtime_types::pallet_tips::pallet::Call), + #[codec(index = 37)] + Assets(runtime_types::pallet_assets::pallet::Call), + #[codec(index = 39)] + Lottery(runtime_types::pallet_lottery::pallet::Call), + #[codec(index = 40)] + Nis(runtime_types::pallet_nis::pallet::Call), + #[codec(index = 41)] + Uniques(runtime_types::pallet_uniques::pallet::Call), + #[codec(index = 42)] + Nfts(runtime_types::pallet_nfts::pallet::Call), + #[codec(index = 43)] + TransactionStorage( + runtime_types::pallet_transaction_storage::pallet::Call, + ), + #[codec(index = 44)] + VoterList(runtime_types::pallet_bags_list::pallet::Call), + #[codec(index = 45)] + StateTrieMigration( + runtime_types::pallet_state_trie_migration::pallet::Call, + ), + #[codec(index = 46)] + ChildBounties(runtime_types::pallet_child_bounties::pallet::Call), + #[codec(index = 47)] + Referenda(runtime_types::pallet_referenda::pallet::Call), + #[codec(index = 48)] + Remark(runtime_types::pallet_remark::pallet::Call), + #[codec(index = 49)] + RootTesting(runtime_types::pallet_root_testing::pallet::Call), + #[codec(index = 50)] + ConvictionVoting(runtime_types::pallet_conviction_voting::pallet::Call), + #[codec(index = 51)] + Whitelist(runtime_types::pallet_whitelist::pallet::Call), + #[codec(index = 52)] + AllianceMotion(runtime_types::pallet_collective::pallet::Call), + #[codec(index = 53)] + Alliance(runtime_types::pallet_alliance::pallet::Call), + #[codec(index = 54)] + NominationPools(runtime_types::pallet_nomination_pools::pallet::Call), + #[codec(index = 55)] + RankedPolls(runtime_types::pallet_referenda::pallet::Call), + #[codec(index = 56)] + RankedCollective(runtime_types::pallet_ranked_collective::pallet::Call), + #[codec(index = 57)] + FastUnstake(runtime_types::pallet_fast_unstake::pallet::Call), + #[codec(index = 58)] + MessageQueue(runtime_types::pallet_message_queue::pallet::Call), + #[codec(index = 59)] + Pov(runtime_types::frame_benchmarking_pallet_pov::pallet::Call), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct SessionKeys { + pub grandpa: runtime_types::sp_consensus_grandpa::app::Public, + pub babe: runtime_types::sp_consensus_babe::app::Public, + pub im_online: + runtime_types::pallet_im_online::sr25519::app_sr25519::Public, + pub authority_discovery: + runtime_types::sp_authority_discovery::app::Public, + } + } + pub mod pallet_alliance { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Add a new proposal to be voted on."] # [doc = ""] # [doc = "Must be called by a Fellow."] propose { # [codec (compact)] threshold : :: core :: primitive :: u32 , proposal : :: std :: boxed :: Box < runtime_types :: kitchensink_runtime :: RuntimeCall > , # [codec (compact)] length_bound : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Add an aye or nay vote for the sender to the given proposal."] # [doc = ""] # [doc = "Must be called by a Fellow."] vote { proposal : :: subxt :: utils :: H256 , # [codec (compact)] index : :: core :: primitive :: u32 , approve : :: core :: primitive :: bool , } , # [codec (index = 2)] # [doc = "Close a vote that is either approved, disapproved, or whose voting period has ended."] # [doc = ""] # [doc = "Must be called by a Fellow."] close_old_weight { proposal_hash : :: subxt :: utils :: H256 , # [codec (compact)] index : :: core :: primitive :: u32 , # [codec (compact)] proposal_weight_bound : runtime_types :: sp_weights :: OldWeight , # [codec (compact)] length_bound : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Initialize the Alliance, onboard fellows and allies."] # [doc = ""] # [doc = "The Alliance must be empty, and the call must provide some founding members."] # [doc = ""] # [doc = "Must be called by the Root origin."] init_members { fellows : :: std :: vec :: Vec < :: subxt :: utils :: AccountId32 > , allies : :: std :: vec :: Vec < :: subxt :: utils :: AccountId32 > , } , # [codec (index = 4)] # [doc = "Disband the Alliance, remove all active members and unreserve deposits."] # [doc = ""] # [doc = "Witness data must be set."] disband { witness : runtime_types :: pallet_alliance :: types :: DisbandWitness , } , # [codec (index = 5)] # [doc = "Set a new IPFS CID to the alliance rule."] set_rule { rule : runtime_types :: pallet_alliance :: types :: Cid , } , # [codec (index = 6)] # [doc = "Make an announcement of a new IPFS CID about alliance issues."] announce { announcement : runtime_types :: pallet_alliance :: types :: Cid , } , # [codec (index = 7)] # [doc = "Remove an announcement."] remove_announcement { announcement : runtime_types :: pallet_alliance :: types :: Cid , } , # [codec (index = 8)] # [doc = "Submit oneself for candidacy. A fixed deposit is reserved."] join_alliance , # [codec (index = 9)] # [doc = "A Fellow can nominate someone to join the alliance as an Ally. There is no deposit"] # [doc = "required from the nominator or nominee."] nominate_ally { who : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 10)] # [doc = "Elevate an Ally to Fellow."] elevate_ally { ally : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 11)] # [doc = "As a member, give a retirement notice and start a retirement period required to pass in"] # [doc = "order to retire."] give_retirement_notice , # [codec (index = 12)] # [doc = "As a member, retire from the Alliance and unreserve the deposit."] # [doc = ""] # [doc = "This can only be done once you have called `give_retirement_notice` and the"] # [doc = "`RetirementPeriod` has passed."] retire , # [codec (index = 13)] # [doc = "Kick a member from the Alliance and slash its deposit."] kick_member { who : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "Add accounts or websites to the list of unscrupulous items."] add_unscrupulous_items { items : :: std :: vec :: Vec < runtime_types :: pallet_alliance :: UnscrupulousItem < :: subxt :: utils :: AccountId32 , runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > > > , } , # [codec (index = 15)] # [doc = "Deem some items no longer unscrupulous."] remove_unscrupulous_items { items : :: std :: vec :: Vec < runtime_types :: pallet_alliance :: UnscrupulousItem < :: subxt :: utils :: AccountId32 , runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > > > , } , # [codec (index = 16)] # [doc = "Close a vote that is either approved, disapproved, or whose voting period has ended."] # [doc = ""] # [doc = "Must be called by a Fellow."] close { proposal_hash : :: subxt :: utils :: H256 , # [codec (compact)] index : :: core :: primitive :: u32 , proposal_weight_bound : runtime_types :: sp_weights :: weight_v2 :: Weight , # [codec (compact)] length_bound : :: core :: primitive :: u32 , } , # [codec (index = 17)] # [doc = "Abdicate one's position as a voting member and just be an Ally. May be used by Fellows"] # [doc = "who do not want to leave the Alliance but do not have the capacity to participate"] # [doc = "operationally for some time."] abdicate_fellow_status , } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Cid { + pub version: runtime_types::pallet_alliance::types::Version, + pub codec: ::core::primitive::u64, + pub hash: runtime_types::pallet_alliance::types::Multihash, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct DisbandWitness { + #[codec(compact)] + pub fellow_members: ::core::primitive::u32, + #[codec(compact)] + pub ally_members: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Multihash { + pub code: ::core::primitive::u64, + pub digest: + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Version { + #[codec(index = 0)] + V0, + #[codec(index = 1)] + V1, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum UnscrupulousItem<_0, _1> { + #[codec(index = 0)] + AccountId(_0), + #[codec(index = 1)] + Website(_1), + } + } + pub mod pallet_asset_tx_payment { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ChargeAssetTxPayment { + #[codec(compact)] + pub tip: ::core::primitive::u128, + pub asset_id: ::core::option::Option<::core::primitive::u32>, + } + } + pub mod pallet_assets { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Issue a new class of fungible assets from a public origin."] + #[doc = ""] + #[doc = "This new asset class has no assets initially and its owner is the origin."] + #[doc = ""] + #[doc = "The origin must conform to the configured `CreateOrigin` and have sufficient funds free."] + #[doc = ""] + #[doc = "Funds of sender are reserved by `AssetDeposit`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `id`: The identifier of the new asset. This must not be currently in use to identify"] + #[doc = "an existing asset."] + #[doc = "- `admin`: The admin of this class of assets. The admin is the initial address of each"] + #[doc = "member of the asset class's admin team."] + #[doc = "- `min_balance`: The minimum balance of this new asset that any single account must"] + #[doc = "have. If an account's balance is reduced below this, then it collapses to zero."] + #[doc = ""] + #[doc = "Emits `Created` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + create { + #[codec(compact)] + id: ::core::primitive::u32, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + min_balance: ::core::primitive::u128, + }, + #[codec(index = 1)] + #[doc = "Issue a new class of fungible assets from a privileged origin."] + #[doc = ""] + #[doc = "This new asset class has no assets initially."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin`."] + #[doc = ""] + #[doc = "Unlike `create`, no funds are reserved."] + #[doc = ""] + #[doc = "- `id`: The identifier of the new asset. This must not be currently in use to identify"] + #[doc = "an existing asset."] + #[doc = "- `owner`: The owner of this class of assets. The owner has full superuser permissions"] + #[doc = "over this asset, but may later change and configure the permissions using"] + #[doc = "`transfer_ownership` and `set_team`."] + #[doc = "- `min_balance`: The minimum balance of this new asset that any single account must"] + #[doc = "have. If an account's balance is reduced below this, then it collapses to zero."] + #[doc = ""] + #[doc = "Emits `ForceCreated` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_create { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + is_sufficient: ::core::primitive::bool, + #[codec(compact)] + min_balance: ::core::primitive::u128, + }, + #[codec(index = 2)] + #[doc = "Start the process of destroying a fungible asset class."] + #[doc = ""] + #[doc = "`start_destroy` is the first in a series of extrinsics that should be called, to allow"] + #[doc = "destruction of an asset class."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be destroyed. This must identify an existing"] + #[doc = " asset."] + #[doc = ""] + #[doc = "The asset class must be frozen before calling `start_destroy`."] + start_destroy { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Destroy all accounts associated with a given asset."] + #[doc = ""] + #[doc = "`destroy_accounts` should only be called after `start_destroy` has been called, and the"] + #[doc = "asset is in a `Destroying` state."] + #[doc = ""] + #[doc = "Due to weight restrictions, this function may need to be called multiple times to fully"] + #[doc = "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be destroyed. This must identify an existing"] + #[doc = " asset."] + #[doc = ""] + #[doc = "Each call emits the `Event::DestroyedAccounts` event."] + destroy_accounts { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 4)] + #[doc = "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit)."] + #[doc = ""] + #[doc = "`destroy_approvals` should only be called after `start_destroy` has been called, and the"] + #[doc = "asset is in a `Destroying` state."] + #[doc = ""] + #[doc = "Due to weight restrictions, this function may need to be called multiple times to fully"] + #[doc = "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be destroyed. This must identify an existing"] + #[doc = " asset."] + #[doc = ""] + #[doc = "Each call emits the `Event::DestroyedApprovals` event."] + destroy_approvals { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Complete destroying asset and unreserve currency."] + #[doc = ""] + #[doc = "`finish_destroy` should only be called after `start_destroy` has been called, and the"] + #[doc = "asset is in a `Destroying` state. All accounts or approvals should be destroyed before"] + #[doc = "hand."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be destroyed. This must identify an existing"] + #[doc = " asset."] + #[doc = ""] + #[doc = "Each successful call emits the `Event::Destroyed` event."] + finish_destroy { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Mint assets of a particular class."] + #[doc = ""] + #[doc = "The origin must be Signed and the sender must be the Issuer of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount minted."] + #[doc = "- `beneficiary`: The account to be credited with the minted assets."] + #[doc = "- `amount`: The amount of the asset to be minted."] + #[doc = ""] + #[doc = "Emits `Issued` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`."] + mint { + #[codec(compact)] + id: ::core::primitive::u32, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 7)] + #[doc = "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Manager of the asset `id`."] + #[doc = ""] + #[doc = "Bails with `NoAccount` if the `who` is already dead."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount burned."] + #[doc = "- `who`: The account to be debited from."] + #[doc = "- `amount`: The maximum amount by which `who`'s balance should be reduced."] + #[doc = ""] + #[doc = "Emits `Burned` with the actual amount burned. If this takes the balance to below the"] + #[doc = "minimum for the asset, then the amount burned is increased to take it to zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`."] + burn { + #[codec(compact)] + id: ::core::primitive::u32, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 8)] + #[doc = "Move some assets from the sender account to another."] + #[doc = ""] + #[doc = "Origin must be Signed."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount transferred."] + #[doc = "- `target`: The account to be credited."] + #[doc = "- `amount`: The amount by which the sender's balance of assets should be reduced and"] + #[doc = "`target`'s balance increased. The amount actually transferred may be slightly greater in"] + #[doc = "the case that the transfer would otherwise take the sender balance above zero but below"] + #[doc = "the minimum balance. Must be greater than zero."] + #[doc = ""] + #[doc = "Emits `Transferred` with the actual amount transferred. If this takes the source balance"] + #[doc = "to below the minimum for the asset, then the amount transferred is increased to take it"] + #[doc = "to zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of"] + #[doc = "`target`."] + transfer { + #[codec(compact)] + id: ::core::primitive::u32, + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 9)] + #[doc = "Move some assets from the sender account to another, keeping the sender account alive."] + #[doc = ""] + #[doc = "Origin must be Signed."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount transferred."] + #[doc = "- `target`: The account to be credited."] + #[doc = "- `amount`: The amount by which the sender's balance of assets should be reduced and"] + #[doc = "`target`'s balance increased. The amount actually transferred may be slightly greater in"] + #[doc = "the case that the transfer would otherwise take the sender balance above zero but below"] + #[doc = "the minimum balance. Must be greater than zero."] + #[doc = ""] + #[doc = "Emits `Transferred` with the actual amount transferred. If this takes the source balance"] + #[doc = "to below the minimum for the asset, then the amount transferred is increased to take it"] + #[doc = "to zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of"] + #[doc = "`target`."] + transfer_keep_alive { + #[codec(compact)] + id: ::core::primitive::u32, + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 10)] + #[doc = "Move some assets from one account to another."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Admin of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to have some amount transferred."] + #[doc = "- `source`: The account to be debited."] + #[doc = "- `dest`: The account to be credited."] + #[doc = "- `amount`: The amount by which the `source`'s balance of assets should be reduced and"] + #[doc = "`dest`'s balance increased. The amount actually transferred may be slightly greater in"] + #[doc = "the case that the transfer would otherwise take the `source` balance above zero but"] + #[doc = "below the minimum balance. Must be greater than zero."] + #[doc = ""] + #[doc = "Emits `Transferred` with the actual amount transferred. If this takes the source balance"] + #[doc = "to below the minimum for the asset, then the amount transferred is increased to take it"] + #[doc = "to zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of"] + #[doc = "`dest`."] + force_transfer { + #[codec(compact)] + id: ::core::primitive::u32, + source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 11)] + #[doc = "Disallow further unprivileged transfers from an account."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be frozen."] + #[doc = "- `who`: The account to be frozen."] + #[doc = ""] + #[doc = "Emits `Frozen`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + freeze { + #[codec(compact)] + id: ::core::primitive::u32, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 12)] + #[doc = "Allow unprivileged transfers from an account again."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Admin of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be frozen."] + #[doc = "- `who`: The account to be unfrozen."] + #[doc = ""] + #[doc = "Emits `Thawed`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + thaw { + #[codec(compact)] + id: ::core::primitive::u32, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 13)] + #[doc = "Disallow further unprivileged transfers for the asset class."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be frozen."] + #[doc = ""] + #[doc = "Emits `Frozen`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + freeze_asset { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 14)] + #[doc = "Allow unprivileged transfers for the asset again."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Admin of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be thawed."] + #[doc = ""] + #[doc = "Emits `Thawed`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + thaw_asset { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 15)] + #[doc = "Change the Owner of an asset."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `owner`: The new Owner of this asset."] + #[doc = ""] + #[doc = "Emits `OwnerChanged`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + transfer_ownership { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 16)] + #[doc = "Change the Issuer, Admin and Freezer of an asset."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the asset `id`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to be frozen."] + #[doc = "- `issuer`: The new Issuer of this asset."] + #[doc = "- `admin`: The new Admin of this asset."] + #[doc = "- `freezer`: The new Freezer of this asset."] + #[doc = ""] + #[doc = "Emits `TeamChanged`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_team { + #[codec(compact)] + id: ::core::primitive::u32, + issuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + freezer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 17)] + #[doc = "Set the metadata for an asset."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the asset `id`."] + #[doc = ""] + #[doc = "Funds of sender are reserved according to the formula:"] + #[doc = "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into"] + #[doc = "account any already reserved funds."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to update."] + #[doc = "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`."] + #[doc = "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`."] + #[doc = "- `decimals`: The number of decimals this asset uses to represent one unit."] + #[doc = ""] + #[doc = "Emits `MetadataSet`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_metadata { + #[codec(compact)] + id: ::core::primitive::u32, + name: ::std::vec::Vec<::core::primitive::u8>, + symbol: ::std::vec::Vec<::core::primitive::u8>, + decimals: ::core::primitive::u8, + }, + #[codec(index = 18)] + #[doc = "Clear the metadata for an asset."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the asset `id`."] + #[doc = ""] + #[doc = "Any deposit is freed for the asset owner."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to clear."] + #[doc = ""] + #[doc = "Emits `MetadataCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + clear_metadata { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 19)] + #[doc = "Force the metadata for an asset to some value."] + #[doc = ""] + #[doc = "Origin must be ForceOrigin."] + #[doc = ""] + #[doc = "Any deposit is left alone."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to update."] + #[doc = "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`."] + #[doc = "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`."] + #[doc = "- `decimals`: The number of decimals this asset uses to represent one unit."] + #[doc = ""] + #[doc = "Emits `MetadataSet`."] + #[doc = ""] + #[doc = "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively."] + force_set_metadata { + #[codec(compact)] + id: ::core::primitive::u32, + name: ::std::vec::Vec<::core::primitive::u8>, + symbol: ::std::vec::Vec<::core::primitive::u8>, + decimals: ::core::primitive::u8, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 20)] + #[doc = "Clear the metadata for an asset."] + #[doc = ""] + #[doc = "Origin must be ForceOrigin."] + #[doc = ""] + #[doc = "Any deposit is returned."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset to clear."] + #[doc = ""] + #[doc = "Emits `MetadataCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_clear_metadata { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 21)] + #[doc = "Alter the attributes of a given asset."] + #[doc = ""] + #[doc = "Origin must be `ForceOrigin`."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `owner`: The new Owner of this asset."] + #[doc = "- `issuer`: The new Issuer of this asset."] + #[doc = "- `admin`: The new Admin of this asset."] + #[doc = "- `freezer`: The new Freezer of this asset."] + #[doc = "- `min_balance`: The minimum balance of this new asset that any single account must"] + #[doc = "have. If an account's balance is reduced below this, then it collapses to zero."] + #[doc = "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient"] + #[doc = "value to account for the state bloat associated with its balance storage. If set to"] + #[doc = "`true`, then non-zero balances may be stored without a `consumer` reference (and thus"] + #[doc = "an ED in the Balances pallet or whatever else is used to control user-account state"] + #[doc = "growth)."] + #[doc = "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin"] + #[doc = "instructions."] + #[doc = ""] + #[doc = "Emits `AssetStatusChanged` with the identity of the asset."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_asset_status { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + issuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + freezer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + min_balance: ::core::primitive::u128, + is_sufficient: ::core::primitive::bool, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 22)] + #[doc = "Approve an amount of asset for transfer by a delegated third-party account."] + #[doc = ""] + #[doc = "Origin must be Signed."] + #[doc = ""] + #[doc = "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account"] + #[doc = "for the purpose of holding the approval. If some non-zero amount of assets is already"] + #[doc = "approved from signing account to `delegate`, then it is topped up or unreserved to"] + #[doc = "meet the right value."] + #[doc = ""] + #[doc = "NOTE: The signing account does not need to own `amount` of assets at the point of"] + #[doc = "making this call."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `delegate`: The account to delegate permission to transfer asset."] + #[doc = "- `amount`: The amount of asset that may be transferred by `delegate`. If there is"] + #[doc = "already an approval in place, then this acts additively."] + #[doc = ""] + #[doc = "Emits `ApprovedTransfer` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + approve_transfer { + #[codec(compact)] + id: ::core::primitive::u32, + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 23)] + #[doc = "Cancel all of some asset approved for delegated transfer by a third-party account."] + #[doc = ""] + #[doc = "Origin must be Signed and there must be an approval in place between signer and"] + #[doc = "`delegate`."] + #[doc = ""] + #[doc = "Unreserves any deposit previously reserved by `approve_transfer` for the approval."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `delegate`: The account delegated permission to transfer asset."] + #[doc = ""] + #[doc = "Emits `ApprovalCancelled` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + cancel_approval { + #[codec(compact)] + id: ::core::primitive::u32, + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 24)] + #[doc = "Cancel all of some asset approved for delegated transfer by a third-party account."] + #[doc = ""] + #[doc = "Origin must be either ForceOrigin or Signed origin with the signer being the Admin"] + #[doc = "account of the asset `id`."] + #[doc = ""] + #[doc = "Unreserves any deposit previously reserved by `approve_transfer` for the approval."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `delegate`: The account delegated permission to transfer asset."] + #[doc = ""] + #[doc = "Emits `ApprovalCancelled` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_cancel_approval { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 25)] + #[doc = "Transfer some asset balance from a previously delegated account to some third-party"] + #[doc = "account."] + #[doc = ""] + #[doc = "Origin must be Signed and there must be an approval in place by the `owner` to the"] + #[doc = "signer."] + #[doc = ""] + #[doc = "If the entire amount approved for transfer is transferred, then any deposit previously"] + #[doc = "reserved by `approve_transfer` is unreserved."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `owner`: The account which previously approved for a transfer of at least `amount` and"] + #[doc = "from which the asset balance will be withdrawn."] + #[doc = "- `destination`: The account to which the asset balance of `amount` will be transferred."] + #[doc = "- `amount`: The amount of assets to transfer."] + #[doc = ""] + #[doc = "Emits `TransferredApproved` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + transfer_approved { + #[codec(compact)] + id: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + destination: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + amount: ::core::primitive::u128, + }, + #[codec(index = 26)] + #[doc = "Create an asset account for non-provider assets."] + #[doc = ""] + #[doc = "A deposit will be taken from the signer account."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit"] + #[doc = " to be taken."] + #[doc = "- `id`: The identifier of the asset for the account to be created."] + #[doc = ""] + #[doc = "Emits `Touched` event when successful."] + touch { + #[codec(compact)] + id: ::core::primitive::u32, + }, + #[codec(index = 27)] + #[doc = "Return the deposit (if any) of an asset account."] + #[doc = ""] + #[doc = "The origin must be Signed."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset for the account to be created."] + #[doc = "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund."] + #[doc = ""] + #[doc = "Emits `Refunded` event when successful."] + refund { + #[codec(compact)] + id: ::core::primitive::u32, + allow_burn: ::core::primitive::bool, + }, + } + } + } + pub mod pallet_babe { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Report authority equivocation/misbehavior. This method will verify"] # [doc = "the equivocation proof and validate the given key ownership proof"] # [doc = "against the extracted offender. If both are valid, the offence will"] # [doc = "be reported."] report_equivocation { equivocation_proof : :: std :: boxed :: Box < runtime_types :: sp_consensus_slots :: EquivocationProof < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 , runtime_types :: sp_runtime :: traits :: BlakeTwo256 > , runtime_types :: sp_consensus_babe :: app :: Public > > , key_owner_proof : runtime_types :: sp_session :: MembershipProof , } , # [codec (index = 1)] # [doc = "Report authority equivocation/misbehavior. This method will verify"] # [doc = "the equivocation proof and validate the given key ownership proof"] # [doc = "against the extracted offender. If both are valid, the offence will"] # [doc = "be reported."] # [doc = "This extrinsic must be called unsigned and it is expected that only"] # [doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] # [doc = "if the block author is defined it will be defined as the equivocation"] # [doc = "reporter."] report_equivocation_unsigned { equivocation_proof : :: std :: boxed :: Box < runtime_types :: sp_consensus_slots :: EquivocationProof < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 , runtime_types :: sp_runtime :: traits :: BlakeTwo256 > , runtime_types :: sp_consensus_babe :: app :: Public > > , key_owner_proof : runtime_types :: sp_session :: MembershipProof , } , # [codec (index = 2)] # [doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"] # [doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."] # [doc = "Multiple calls to this method will replace any existing planned config change that had"] # [doc = "not been enacted yet."] plan_config_change { config : runtime_types :: sp_consensus_babe :: digests :: NextConfigDescriptor , } , } + } + } + pub mod pallet_bags_list { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Declare that some `dislocated` account has, through rewards or penalties, sufficiently"] + #[doc = "changed its score that it should properly fall into a different bag than its current"] + #[doc = "one."] + #[doc = ""] + #[doc = "Anyone can call this function about any potentially dislocated account."] + #[doc = ""] + #[doc = "Will always update the stored score of `dislocated` to the correct score, based on"] + #[doc = "`ScoreProvider`."] + #[doc = ""] + #[doc = "If `dislocated` does not exists, it returns an error."] + rebag { + dislocated: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Move the caller's Id directly in front of `lighter`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and can only be called by the Id of"] + #[doc = "the account going in front of `lighter`."] + #[doc = ""] + #[doc = "Only works if"] + #[doc = "- both nodes are within the same bag,"] + #[doc = "- and `origin` has a greater `Score` than `lighter`."] + put_in_front_of { + lighter: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + } + } + } + pub mod pallet_balances { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Dependent on arguments but not critical, given proper implementations for input config"] + #[doc = " types. See related functions below."] + #[doc = "- It contains a limited number of reads and writes internally and no complex"] + #[doc = " computation."] + #[doc = ""] + #[doc = "Related functions:"] + #[doc = ""] + #[doc = " - `ensure_can_withdraw` is always called internally but has a bounded complexity."] + #[doc = " - Transferring balances to accounts that did not exist before will cause"] + #[doc = " `T::OnNewAccount::on_new_account` to be called."] + #[doc = " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`."] + #[doc = " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check"] + #[doc = " that the transfer will not kill the origin account."] + transfer { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 1)] + #[doc = "Set the balances of a given account."] + #[doc = ""] + #[doc = "This will alter `FreeBalance` and `ReservedBalance` in storage. it will"] + #[doc = "also alter the total issuance of the system (`TotalIssuance`) appropriately."] + #[doc = "If the new free or reserved balance is below the existential deposit,"] + #[doc = "it will reset the account nonce (`frame_system::AccountNonce`)."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] + set_balance { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + new_free: ::core::primitive::u128, + #[codec(compact)] + new_reserved: ::core::primitive::u128, + }, + #[codec(index = 2)] + #[doc = "Exactly as `transfer`, except the origin must be root and the source account may be"] + #[doc = "specified."] + #[doc = "## Complexity"] + #[doc = "- Same as transfer, but additional read and write because the source account is not"] + #[doc = " assumed to be in the overlay."] + force_transfer { + source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "Same as the [`transfer`] call, but with a check that the transfer will not kill the"] + #[doc = "origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer`] instead."] + #[doc = ""] + #[doc = "[`transfer`]: struct.Pallet.html#method.transfer"] + transfer_keep_alive { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 4)] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true). ## Complexity"] + #[doc = "- O(1). Just like transfer, but reading the user's transferable balance first."] + transfer_all { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + keep_alive: ::core::primitive::bool, + }, + #[codec(index = 5)] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] + force_unreserve { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + amount: ::core::primitive::u128, + }, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)\n\t\t\tof this pallet.\n\t\t\t"] + pub enum Error { + #[codec(index = 0)] + #[doc = "Vesting balance too high to send value"] + VestingBalance, + #[codec(index = 1)] + #[doc = "Account liquidity restrictions prevent withdrawal"] + LiquidityRestrictions, + #[codec(index = 2)] + #[doc = "Balance too low to send value."] + InsufficientBalance, + #[codec(index = 3)] + #[doc = "Value too low to create account due to existential deposit"] + ExistentialDeposit, + #[codec(index = 4)] + #[doc = "Transfer/payment would kill account"] + KeepAlive, + #[codec(index = 5)] + #[doc = "A vesting schedule already exists for this account"] + ExistingVestingSchedule, + #[codec(index = 6)] + #[doc = "Beneficiary account must pre-exist"] + DeadAccount, + #[codec(index = 7)] + #[doc = "Number of named reserves exceed MaxReserves"] + TooManyReserves, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "\n\t\t\tThe [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted\n\t\t\tby this pallet.\n\t\t\t"] + pub enum Event { + # [codec (index = 0)] # [doc = "An account was created with some free balance."] Endowed { account : :: subxt :: utils :: AccountId32 , free_balance : :: core :: primitive :: u128 , } , # [codec (index = 1)] # [doc = "An account was removed whose balance was non-zero but below ExistentialDeposit,"] # [doc = "resulting in an outright loss."] DustLost { account : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 2)] # [doc = "Transfer succeeded."] Transfer { from : :: subxt :: utils :: AccountId32 , to : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 3)] # [doc = "A balance was set by root."] BalanceSet { who : :: subxt :: utils :: AccountId32 , free : :: core :: primitive :: u128 , reserved : :: core :: primitive :: u128 , } , # [codec (index = 4)] # [doc = "Some balance was reserved (moved from free to reserved)."] Reserved { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 5)] # [doc = "Some balance was unreserved (moved from reserved to free)."] Unreserved { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 6)] # [doc = "Some balance was moved from the reserve of the first account to the second account."] # [doc = "Final argument indicates the destination balance type."] ReserveRepatriated { from : :: subxt :: utils :: AccountId32 , to : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , destination_status : runtime_types :: frame_support :: traits :: tokens :: misc :: BalanceStatus , } , # [codec (index = 7)] # [doc = "Some amount was deposited (e.g. for transaction fees)."] Deposit { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 8)] # [doc = "Some amount was withdrawn from the account (e.g. for transaction fees)."] Withdraw { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , # [codec (index = 9)] # [doc = "Some amount was removed from the account (e.g. for misbehavior)."] Slashed { who : :: subxt :: utils :: AccountId32 , amount : :: core :: primitive :: u128 , } , } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct AccountData<_0> { + pub free: _0, + pub reserved: _0, + pub misc_frozen: _0, + pub fee_frozen: _0, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BalanceLock<_0> { + pub id: [::core::primitive::u8; 8usize], + pub amount: _0, + pub reasons: runtime_types::pallet_balances::Reasons, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Reasons { + #[codec(index = 0)] + Fee, + #[codec(index = 1)] + Misc, + #[codec(index = 2)] + All, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ReserveData<_0, _1> { + pub id: _0, + pub amount: _1, + } + } + pub mod pallet_bounties { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Propose a new bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"] + #[doc = "or slashed when rejected."] + #[doc = ""] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = "- `value`: The total payment amount of this bounty, curator fee included."] + #[doc = "- `description`: The description of this bounty."] + propose_bounty { + #[codec(compact)] + value: ::core::primitive::u128, + description: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + approve_bounty { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Assign a curator to a funded bounty."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + propose_curator { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + curator: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + fee: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "Unassign curator from a bounty."] + #[doc = ""] + #[doc = "This function can only be called by the `RejectOrigin` a signed origin."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"] + #[doc = "malicious or inactive. As a result, we will slash the curator when possible."] + #[doc = ""] + #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"] + #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"] + #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"] + #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"] + #[doc = "we should pick a new curator. In this case the curator should also be slashed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + unassign_curator { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 4)] + #[doc = "Accept the curator role for a bounty."] + #[doc = "A deposit will be reserved from curator and refund upon successful payout."] + #[doc = ""] + #[doc = "May only be called from the curator."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + accept_curator { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"] + #[doc = "after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to award."] + #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + award_bounty { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 6)] + #[doc = "Claim the payout from an awarded bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to claim."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + claim_bounty { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 7)] + #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"] + #[doc = "the curator deposit will be unreserved if possible."] + #[doc = ""] + #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to cancel."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + close_bounty { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Extend the expiry time of an active bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to extend."] + #[doc = "- `remark`: additional information."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + extend_bounty_expiry { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + remark: ::std::vec::Vec<::core::primitive::u8>, + }, + } + } + } + pub mod pallet_child_bounties { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Add a new child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of parent"] + #[doc = "bounty and the parent bounty must be in \"active\" state."] + #[doc = ""] + #[doc = "Child-bounty gets added successfully & fund gets transferred from"] + #[doc = "parent bounty to child-bounty account, if parent bounty has enough"] + #[doc = "funds, else the call fails."] + #[doc = ""] + #[doc = "Upper bound to maximum number of active child bounties that can be"] + #[doc = "added are managed via runtime trait config"] + #[doc = "[`Config::MaxActiveChildBountyCount`]."] + #[doc = ""] + #[doc = "If the call is success, the status of child-bounty is updated to"] + #[doc = "\"Added\"."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."] + #[doc = "- `value`: Value for executing the proposal."] + #[doc = "- `description`: Text description for the child-bounty."] + add_child_bounty { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + value: ::core::primitive::u128, + description: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Propose curator for funded child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be curator of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `curator`: Address of child-bounty curator."] + #[doc = "- `fee`: payment fee to child-bounty curator for execution."] + propose_curator { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + curator: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + fee: ::core::primitive::u128, + }, + #[codec(index = 2)] + #[doc = "Accept the curator role for the child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this"] + #[doc = "child-bounty."] + #[doc = ""] + #[doc = "A deposit will be reserved from the curator and refund upon"] + #[doc = "successful payout or cancellation."] + #[doc = ""] + #[doc = "Fee for curator is deducted from curator fee of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"] + #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + accept_curator { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Unassign curator from a child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"] + #[doc = "the curator of the parent bounty, or any signed origin."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin and the child-bounty"] + #[doc = "curator, parent bounty must be in active state, for this call to"] + #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"] + #[doc = "this call irrespective of the parent bounty state."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin` or the"] + #[doc = "parent bounty curator, we assume that the child-bounty curator is"] + #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"] + #[doc = "slashed."] + #[doc = ""] + #[doc = "If the origin is the child-bounty curator, we take this as a sign"] + #[doc = "that they are unable to do their job, and are willingly giving up."] + #[doc = "We could slash the deposit, but for now we allow them to unreserve"] + #[doc = "their deposit and exit without issue. (We may want to change this if"] + #[doc = "it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"] + #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"] + #[doc = "inactive state of child-bounty curator."] + #[doc = ""] + #[doc = "This allows anyone in the community to call out that a child-bounty"] + #[doc = "curator is not doing their due diligence, and we should pick a new"] + #[doc = "one. In this case the child-bounty curator deposit is slashed."] + #[doc = ""] + #[doc = "State of child-bounty is moved to Added state on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + unassign_curator { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + }, + #[codec(index = 4)] + #[doc = "Award child-bounty to a beneficiary."] + #[doc = ""] + #[doc = "The beneficiary will be able to claim the funds after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the parent curator or"] + #[doc = "curator of this child-bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in active state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `beneficiary`: Beneficiary account."] + award_child_bounty { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 5)] + #[doc = "Claim the payout from an awarded child-bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call may be any signed origin."] + #[doc = ""] + #[doc = "Call works independent of parent bounty state, No need for parent"] + #[doc = "bounty to be in active state."] + #[doc = ""] + #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"] + #[doc = "paid & curator deposit is unreserved."] + #[doc = ""] + #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"] + #[doc = "call. And instance of child-bounty is removed from the state on"] + #[doc = "successful call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + claim_child_bounty { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"] + #[doc = "are transferred to parent bounty account. The child-bounty curator"] + #[doc = "deposit may be unreserved if possible."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be either parent curator or"] + #[doc = "`T::RejectOrigin`."] + #[doc = ""] + #[doc = "If the state of child-bounty is `Active`, curator deposit is"] + #[doc = "unreserved."] + #[doc = ""] + #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"] + #[doc = "returns `PendingPayout` error."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"] + #[doc = "active state, for this child-bounty call to work. For origin"] + #[doc = "T::RejectOrigin execution is forced."] + #[doc = ""] + #[doc = "Instance of child-bounty is removed from the state on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + close_child_bounty { + #[codec(compact)] + parent_bounty_id: ::core::primitive::u32, + #[codec(compact)] + child_bounty_id: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_collective { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Set the collective's membership."] + #[doc = ""] + #[doc = "- `new_members`: The new member list. Be nice to the chain and provide it sorted."] + #[doc = "- `prime`: The prime member whose vote sets the default."] + #[doc = "- `old_count`: The upper bound for the previous number of members in storage. Used for"] + #[doc = " weight estimation."] + #[doc = ""] + #[doc = "The dispatch of this call must be `SetMembersOrigin`."] + #[doc = ""] + #[doc = "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but"] + #[doc = " the weight estimations rely on it to estimate dispatchable weight."] + #[doc = ""] + #[doc = "# WARNING:"] + #[doc = ""] + #[doc = "The `pallet-collective` can also be managed by logic outside of the pallet through the"] + #[doc = "implementation of the trait [`ChangeMembers`]."] + #[doc = "Any call to `set_members` must be careful that the member set doesn't get out of sync"] + #[doc = "with other logic managing the member set."] + #[doc = ""] + #[doc = "## Complexity:"] + #[doc = "- `O(MP + N)` where:"] + #[doc = " - `M` old-members-count (code- and governance-bounded)"] + #[doc = " - `N` new-members-count (code- and governance-bounded)"] + #[doc = " - `P` proposals-count (code-bounded)"] + set_members { + new_members: ::std::vec::Vec<::subxt::utils::AccountId32>, + prime: ::core::option::Option<::subxt::utils::AccountId32>, + old_count: ::core::primitive::u32, + }, + #[codec(index = 1)] + #[doc = "Dispatch a proposal from a member using the `Member` origin."] + #[doc = ""] + #[doc = "Origin must be a member of the collective."] + #[doc = ""] + #[doc = "## Complexity:"] + #[doc = "- `O(B + M + P)` where:"] + #[doc = "- `B` is `proposal` size in bytes (length-fee-bounded)"] + #[doc = "- `M` members-count (code-bounded)"] + #[doc = "- `P` complexity of dispatching `proposal`"] + execute { + proposal: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + #[codec(compact)] + length_bound: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Add a new proposal to either be voted on or executed directly."] + #[doc = ""] + #[doc = "Requires the sender to be member."] + #[doc = ""] + #[doc = "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)"] + #[doc = "or put up for voting."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(B + M + P1)` or `O(B + M + P2)` where:"] + #[doc = " - `B` is `proposal` size in bytes (length-fee-bounded)"] + #[doc = " - `M` is members-count (code- and governance-bounded)"] + #[doc = " - branching is influenced by `threshold` where:"] + #[doc = " - `P1` is proposal execution complexity (`threshold < 2`)"] + #[doc = " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)"] + propose { + #[codec(compact)] + threshold: ::core::primitive::u32, + proposal: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + #[codec(compact)] + length_bound: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "Requires the sender to be a member."] + #[doc = ""] + #[doc = "Transaction fees will be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = "## Complexity"] + #[doc = "- `O(M)` where `M` is members-count (code- and governance-bounded)"] + vote { + proposal: ::subxt::utils::H256, + #[codec(compact)] + index: ::core::primitive::u32, + approve: ::core::primitive::bool, + }, + #[codec(index = 4)] + #[doc = "Close a vote that is either approved, disapproved or whose voting period has ended."] + #[doc = ""] + #[doc = "May be called by any signed account in order to finish voting and close the proposal."] + #[doc = ""] + #[doc = "If called before the end of the voting period it will only close the vote if it is"] + #[doc = "has enough votes to be approved or disapproved."] + #[doc = ""] + #[doc = "If called after the end of the voting period abstentions are counted as rejections"] + #[doc = "unless there is a prime member set and the prime member cast an approval."] + #[doc = ""] + #[doc = "If the close operation completes successfully with disapproval, the transaction fee will"] + #[doc = "be waived. Otherwise execution of the approved operation will be charged to the caller."] + #[doc = ""] + #[doc = "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed"] + #[doc = "proposal."] + #[doc = "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via"] + #[doc = "`storage::read` so it is `size_of::() == 4` larger than the pure length."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(B + M + P1 + P2)` where:"] + #[doc = " - `B` is `proposal` size in bytes (length-fee-bounded)"] + #[doc = " - `M` is members-count (code- and governance-bounded)"] + #[doc = " - `P1` is the complexity of `proposal` preimage."] + #[doc = " - `P2` is proposal-count (code-bounded)"] + close_old_weight { + proposal_hash: ::subxt::utils::H256, + #[codec(compact)] + index: ::core::primitive::u32, + #[codec(compact)] + proposal_weight_bound: runtime_types::sp_weights::OldWeight, + #[codec(compact)] + length_bound: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Disapprove a proposal, close, and remove it from the system, regardless of its current"] + #[doc = "state."] + #[doc = ""] + #[doc = "Must be called by the Root origin."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "* `proposal_hash`: The hash of the proposal that should be disapproved."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(P) where P is the number of max proposals"] + disapprove_proposal { proposal_hash: ::subxt::utils::H256 }, + #[codec(index = 6)] + #[doc = "Close a vote that is either approved, disapproved or whose voting period has ended."] + #[doc = ""] + #[doc = "May be called by any signed account in order to finish voting and close the proposal."] + #[doc = ""] + #[doc = "If called before the end of the voting period it will only close the vote if it is"] + #[doc = "has enough votes to be approved or disapproved."] + #[doc = ""] + #[doc = "If called after the end of the voting period abstentions are counted as rejections"] + #[doc = "unless there is a prime member set and the prime member cast an approval."] + #[doc = ""] + #[doc = "If the close operation completes successfully with disapproval, the transaction fee will"] + #[doc = "be waived. Otherwise execution of the approved operation will be charged to the caller."] + #[doc = ""] + #[doc = "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed"] + #[doc = "proposal."] + #[doc = "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via"] + #[doc = "`storage::read` so it is `size_of::() == 4` larger than the pure length."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(B + M + P1 + P2)` where:"] + #[doc = " - `B` is `proposal` size in bytes (length-fee-bounded)"] + #[doc = " - `M` is members-count (code- and governance-bounded)"] + #[doc = " - `P1` is the complexity of `proposal` preimage."] + #[doc = " - `P2` is proposal-count (code-bounded)"] + close { + proposal_hash: ::subxt::utils::H256, + #[codec(compact)] + index: ::core::primitive::u32, + proposal_weight_bound: + runtime_types::sp_weights::weight_v2::Weight, + #[codec(compact)] + length_bound: ::core::primitive::u32, + }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum RawOrigin<_0> { + #[codec(index = 0)] + Members(::core::primitive::u32, ::core::primitive::u32), + #[codec(index = 1)] + Member(_0), + #[codec(index = 2)] + _Phantom, + } + } + pub mod pallet_contracts { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Deprecated version if [`Self::call`] for use in an in-storage `Call`."] + call_old_weight { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + #[codec(compact)] + gas_limit: runtime_types::sp_weights::OldWeight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + data: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`."] + instantiate_with_code_old_weight { + #[codec(compact)] + value: ::core::primitive::u128, + #[codec(compact)] + gas_limit: runtime_types::sp_weights::OldWeight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + code: ::std::vec::Vec<::core::primitive::u8>, + data: ::std::vec::Vec<::core::primitive::u8>, + salt: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 2)] + #[doc = "Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`."] + instantiate_old_weight { + #[codec(compact)] + value: ::core::primitive::u128, + #[codec(compact)] + gas_limit: runtime_types::sp_weights::OldWeight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + code_hash: ::subxt::utils::H256, + data: ::std::vec::Vec<::core::primitive::u8>, + salt: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 3)] + #[doc = "Upload new `code` without instantiating a contract from it."] + #[doc = ""] + #[doc = "If the code does not already exist a deposit is reserved from the caller"] + #[doc = "and unreserved only when [`Self::remove_code`] is called. The size of the reserve"] + #[doc = "depends on the instrumented size of the the supplied `code`."] + #[doc = ""] + #[doc = "If the code already exists in storage it will still return `Ok` and upgrades"] + #[doc = "the in storage version to the current"] + #[doc = "[`InstructionWeights::version`](InstructionWeights)."] + #[doc = ""] + #[doc = "- `determinism`: If this is set to any other value but [`Determinism::Deterministic`]"] + #[doc = " then the only way to use this code is to delegate call into it from an offchain"] + #[doc = " execution. Set to [`Determinism::Deterministic`] if in doubt."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "Anyone can instantiate a contract from any uploaded code and thus prevent its removal."] + #[doc = "To avoid this situation a constructor could employ access control so that it can"] + #[doc = "only be instantiated by permissioned entities. The same is true when uploading"] + #[doc = "through [`Self::instantiate_with_code`]."] + upload_code { + code: ::std::vec::Vec<::core::primitive::u8>, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + determinism: runtime_types::pallet_contracts::wasm::Determinism, + }, + #[codec(index = 4)] + #[doc = "Remove the code stored under `code_hash` and refund the deposit to its owner."] + #[doc = ""] + #[doc = "A code can only be removed by its original uploader (its owner) and only if it is"] + #[doc = "not used by any contract."] + remove_code { code_hash: ::subxt::utils::H256 }, + #[codec(index = 5)] + #[doc = "Privileged function that changes the code of an existing contract."] + #[doc = ""] + #[doc = "This takes care of updating refcounts and all other necessary operations. Returns"] + #[doc = "an error if either the `code_hash` or `dest` do not exist."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "This does **not** change the address of the contract in question. This means"] + #[doc = "that the contract address is no longer derived from its code hash after calling"] + #[doc = "this dispatchable."] + set_code { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + code_hash: ::subxt::utils::H256, + }, + #[codec(index = 6)] + #[doc = "Makes a call to an account, optionally transferring some balance."] + #[doc = ""] + #[doc = "# Parameters"] + #[doc = ""] + #[doc = "* `dest`: Address of the contract to call."] + #[doc = "* `value`: The balance to transfer from the `origin` to `dest`."] + #[doc = "* `gas_limit`: The gas limit enforced when executing the constructor."] + #[doc = "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the"] + #[doc = " caller to pay for the storage consumed."] + #[doc = "* `data`: The input data to pass to the contract."] + #[doc = ""] + #[doc = "* If the account is a smart-contract account, the associated code will be"] + #[doc = "executed and any value will be transferred."] + #[doc = "* If the account is a regular account, any value will be transferred."] + #[doc = "* If no account exists and the call value is not less than `existential_deposit`,"] + #[doc = "a regular account will be created and any value will be transferred."] + call { + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + gas_limit: runtime_types::sp_weights::weight_v2::Weight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + data: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 7)] + #[doc = "Instantiates a new contract from the supplied `code` optionally transferring"] + #[doc = "some balance."] + #[doc = ""] + #[doc = "This dispatchable has the same effect as calling [`Self::upload_code`] +"] + #[doc = "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please"] + #[doc = "also check the documentation of [`Self::upload_code`]."] + #[doc = ""] + #[doc = "# Parameters"] + #[doc = ""] + #[doc = "* `value`: The balance to transfer from the `origin` to the newly created contract."] + #[doc = "* `gas_limit`: The gas limit enforced when executing the constructor."] + #[doc = "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved"] + #[doc = " from the caller to pay for the storage consumed."] + #[doc = "* `code`: The contract code to deploy in raw bytes."] + #[doc = "* `data`: The input data to pass to the contract constructor."] + #[doc = "* `salt`: Used for the address derivation. See [`Pallet::contract_address`]."] + #[doc = ""] + #[doc = "Instantiation is executed as follows:"] + #[doc = ""] + #[doc = "- The supplied `code` is instrumented, deployed, and a `code_hash` is created for that"] + #[doc = " code."] + #[doc = "- If the `code_hash` already exists on the chain the underlying `code` will be shared."] + #[doc = "- The destination address is computed based on the sender, code_hash and the salt."] + #[doc = "- The smart-contract account is created at the computed address."] + #[doc = "- The `value` is transferred to the new account."] + #[doc = "- The `deploy` function is executed in the context of the newly-created account."] + instantiate_with_code { + #[codec(compact)] + value: ::core::primitive::u128, + gas_limit: runtime_types::sp_weights::weight_v2::Weight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + code: ::std::vec::Vec<::core::primitive::u8>, + data: ::std::vec::Vec<::core::primitive::u8>, + salt: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 8)] + #[doc = "Instantiates a contract from a previously deployed wasm binary."] + #[doc = ""] + #[doc = "This function is identical to [`Self::instantiate_with_code`] but without the"] + #[doc = "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary"] + #[doc = "must be supplied."] + instantiate { + #[codec(compact)] + value: ::core::primitive::u128, + gas_limit: runtime_types::sp_weights::weight_v2::Weight, + storage_deposit_limit: ::core::option::Option< + ::subxt::ext::codec::Compact<::core::primitive::u128>, + >, + code_hash: ::subxt::utils::H256, + data: ::std::vec::Vec<::core::primitive::u8>, + salt: ::std::vec::Vec<::core::primitive::u8>, + }, + } + } + pub mod wasm { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Determinism { + #[codec(index = 0)] + Deterministic, + #[codec(index = 1)] + AllowIndeterminism, + } + } + } + pub mod pallet_conviction_voting { + use super::runtime_types; + pub mod conviction { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Conviction { + #[codec(index = 0)] + None, + #[codec(index = 1)] + Locked1x, + #[codec(index = 2)] + Locked2x, + #[codec(index = 3)] + Locked3x, + #[codec(index = 4)] + Locked4x, + #[codec(index = 5)] + Locked5x, + #[codec(index = 6)] + Locked6x, + } + } + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"] # [doc = "otherwise it is a vote to keep the status quo."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_."] # [doc = ""] # [doc = "- `poll_index`: The index of the poll to vote for."] # [doc = "- `vote`: The vote configuration."] # [doc = ""] # [doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."] vote { # [codec (compact)] poll_index : :: core :: primitive :: u32 , vote : runtime_types :: pallet_conviction_voting :: vote :: AccountVote < :: core :: primitive :: u128 > , } , # [codec (index = 1)] # [doc = "Delegate the voting power (with some given conviction) of the sending account for a"] # [doc = "particular class of polls."] # [doc = ""] # [doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] # [doc = "time appropriate for the conviction's lock period."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] # [doc = " - be delegating already; or"] # [doc = " - have no voting activity (if there is, then it will need to be removed/consolidated"] # [doc = " through `reap_vote` or `unvote`)."] # [doc = ""] # [doc = "- `to`: The account whose voting the `target` account's voting power will follow."] # [doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"] # [doc = " to this function are required."] # [doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] # [doc = " account is undelegated, the funds will be locked for the corresponding period."] # [doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] # [doc = " be more than the account's current balance."] # [doc = ""] # [doc = "Emits `Delegated`."] # [doc = ""] # [doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] # [doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] delegate { class : :: core :: primitive :: u16 , to : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , conviction : runtime_types :: pallet_conviction_voting :: conviction :: Conviction , balance : :: core :: primitive :: u128 , } , # [codec (index = 2)] # [doc = "Undelegate the voting power of the sending account for a particular class of polls."] # [doc = ""] # [doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] # [doc = "of the conviction with which the delegation was issued has passed."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] # [doc = "currently delegating."] # [doc = ""] # [doc = "- `class`: The class of polls to remove the delegation from."] # [doc = ""] # [doc = "Emits `Undelegated`."] # [doc = ""] # [doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] # [doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] undelegate { class : :: core :: primitive :: u16 , } , # [codec (index = 3)] # [doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"] # [doc = "class."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_."] # [doc = ""] # [doc = "- `class`: The class of polls to unlock."] # [doc = "- `target`: The account to remove the lock on."] # [doc = ""] # [doc = "Weight: `O(R)` with R number of vote of target."] unlock { class : :: core :: primitive :: u16 , target : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 4)] # [doc = "Remove a vote for a poll."] # [doc = ""] # [doc = "If:"] # [doc = "- the poll was cancelled, or"] # [doc = "- the poll is ongoing, or"] # [doc = "- the poll has ended such that"] # [doc = " - the vote of the account was in opposition to the result; or"] # [doc = " - there was no conviction to the account's vote; or"] # [doc = " - the account made a split vote"] # [doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] # [doc = "funds being available."] # [doc = ""] # [doc = "If, however, the poll has ended and:"] # [doc = "- it finished corresponding to the vote of the account, and"] # [doc = "- the account made a standard vote with conviction, and"] # [doc = "- the lock period of the conviction is not over"] # [doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] # [doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] # [doc = "of both the amount locked and the time is it locked for)."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] # [doc = "registered for poll `index`."] # [doc = ""] # [doc = "- `index`: The index of poll of the vote to be removed."] # [doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"] # [doc = " which have finished or are cancelled, this must be `Some`."] # [doc = ""] # [doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] # [doc = " Weight is calculated for the maximum number of vote."] remove_vote { class : :: core :: option :: Option < :: core :: primitive :: u16 > , index : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Remove a vote for a poll."] # [doc = ""] # [doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] # [doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] # [doc = "either because the poll was cancelled, because the voter lost the poll or"] # [doc = "because the conviction period is over."] # [doc = ""] # [doc = "The dispatch origin of this call must be _Signed_."] # [doc = ""] # [doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"] # [doc = " `index`."] # [doc = "- `index`: The index of poll of the vote to be removed."] # [doc = "- `class`: The class of the poll."] # [doc = ""] # [doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] # [doc = " Weight is calculated for the maximum number of vote."] remove_other_vote { target : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , class : :: core :: primitive :: u16 , index : :: core :: primitive :: u32 , } , } + } + pub mod vote { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum AccountVote<_0> { + #[codec(index = 0)] + Standard { + vote: runtime_types::pallet_conviction_voting::vote::Vote, + balance: _0, + }, + #[codec(index = 1)] + Split { aye: _0, nay: _0 }, + #[codec(index = 2)] + SplitAbstain { aye: _0, nay: _0, abstain: _0 }, + } + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Vote(pub ::core::primitive::u8); + } + } + pub mod pallet_democracy { + use super::runtime_types; + pub mod conviction { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Conviction { + #[codec(index = 0)] + None, + #[codec(index = 1)] + Locked1x, + #[codec(index = 2)] + Locked2x, + #[codec(index = 3)] + Locked3x, + #[codec(index = 4)] + Locked4x, + #[codec(index = 5)] + Locked5x, + #[codec(index = 6)] + Locked6x, + } + } + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Propose a sensitive action to be taken."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the sender must"] + #[doc = "have funds to cover the deposit."] + #[doc = ""] + #[doc = "- `proposal_hash`: The hash of the proposal preimage."] + #[doc = "- `value`: The amount of deposit (must be at least `MinimumDeposit`)."] + #[doc = ""] + #[doc = "Emits `Proposed`."] + propose { + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 1)] + #[doc = "Signals agreement with a particular proposal."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the sender"] + #[doc = "must have funds to cover the deposit, equal to the original deposit."] + #[doc = ""] + #[doc = "- `proposal`: The index of the proposal to second."] + second { + #[codec(compact)] + proposal: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;"] + #[doc = "otherwise it is a vote to keep the status quo."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `ref_index`: The index of the referendum to vote for."] + #[doc = "- `vote`: The vote configuration."] + vote { + #[codec(compact)] + ref_index: ::core::primitive::u32, + vote: runtime_types::pallet_democracy::vote::AccountVote< + ::core::primitive::u128, + >, + }, + #[codec(index = 3)] + #[doc = "Schedule an emergency cancellation of a referendum. Cannot happen twice to the same"] + #[doc = "referendum."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `CancellationOrigin`."] + #[doc = ""] + #[doc = "-`ref_index`: The index of the referendum to cancel."] + #[doc = ""] + #[doc = "Weight: `O(1)`."] + emergency_cancel { ref_index: ::core::primitive::u32 }, + #[codec(index = 4)] + #[doc = "Schedule a referendum to be tabled once it is legal to schedule an external"] + #[doc = "referendum."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `ExternalOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The preimage hash of the proposal."] + external_propose { + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 5)] + #[doc = "Schedule a majority-carries referendum to be tabled next once it is legal to schedule"] + #[doc = "an external referendum."] + #[doc = ""] + #[doc = "The dispatch of this call must be `ExternalMajorityOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The preimage hash of the proposal."] + #[doc = ""] + #[doc = "Unlike `external_propose`, blacklisting has no effect on this and it may replace a"] + #[doc = "pre-scheduled `external_propose` call."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + external_propose_majority { + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 6)] + #[doc = "Schedule a negative-turnout-bias referendum to be tabled next once it is legal to"] + #[doc = "schedule an external referendum."] + #[doc = ""] + #[doc = "The dispatch of this call must be `ExternalDefaultOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The preimage hash of the proposal."] + #[doc = ""] + #[doc = "Unlike `external_propose`, blacklisting has no effect on this and it may replace a"] + #[doc = "pre-scheduled `external_propose` call."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + external_propose_default { + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 7)] + #[doc = "Schedule the currently externally-proposed majority-carries referendum to be tabled"] + #[doc = "immediately. If there is no externally-proposed referendum currently, or if there is one"] + #[doc = "but it is not a majority-carries referendum then it fails."] + #[doc = ""] + #[doc = "The dispatch of this call must be `FastTrackOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The hash of the current external proposal."] + #[doc = "- `voting_period`: The period that is allowed for voting on this proposal. Increased to"] + #[doc = "\tMust be always greater than zero."] + #[doc = "\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`."] + #[doc = "- `delay`: The number of block after voting has ended in approval and this should be"] + #[doc = " enacted. This doesn't have a minimum amount."] + #[doc = ""] + #[doc = "Emits `Started`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + fast_track { + proposal_hash: ::subxt::utils::H256, + voting_period: ::core::primitive::u32, + delay: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Veto and blacklist the external proposal hash."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `VetoOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The preimage hash of the proposal to veto and blacklist."] + #[doc = ""] + #[doc = "Emits `Vetoed`."] + #[doc = ""] + #[doc = "Weight: `O(V + log(V))` where V is number of `existing vetoers`"] + veto_external { proposal_hash: ::subxt::utils::H256 }, + #[codec(index = 9)] + #[doc = "Remove a referendum."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Root_."] + #[doc = ""] + #[doc = "- `ref_index`: The index of the referendum to cancel."] + #[doc = ""] + #[doc = "# Weight: `O(1)`."] + cancel_referendum { + #[codec(compact)] + ref_index: ::core::primitive::u32, + }, + #[codec(index = 10)] + #[doc = "Delegate the voting power (with some given conviction) of the sending account."] + #[doc = ""] + #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] + #[doc = "time appropriate for the conviction's lock period."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] + #[doc = " - be delegating already; or"] + #[doc = " - have no voting activity (if there is, then it will need to be removed/consolidated"] + #[doc = " through `reap_vote` or `unvote`)."] + #[doc = ""] + #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."] + #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] + #[doc = " account is undelegated, the funds will be locked for the corresponding period."] + #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] + #[doc = " be more than the account's current balance."] + #[doc = ""] + #[doc = "Emits `Delegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of referendums the voter delegating to has"] + #[doc = " voted on. Weight is charged as if maximum votes."] + delegate { + to: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + conviction: + runtime_types::pallet_democracy::conviction::Conviction, + balance: ::core::primitive::u128, + }, + #[codec(index = 11)] + #[doc = "Undelegate the voting power of the sending account."] + #[doc = ""] + #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] + #[doc = "of the conviction with which the delegation was issued."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] + #[doc = "currently delegating."] + #[doc = ""] + #[doc = "Emits `Undelegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of referendums the voter delegating to has"] + #[doc = " voted on. Weight is charged as if maximum votes."] + undelegate, + #[codec(index = 12)] + #[doc = "Clears all public proposals."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Root_."] + #[doc = ""] + #[doc = "Weight: `O(1)`."] + clear_public_proposals, + #[codec(index = 13)] + #[doc = "Unlock tokens that have an expired lock."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account to remove the lock on."] + #[doc = ""] + #[doc = "Weight: `O(R)` with R number of vote of target."] + unlock { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 14)] + #[doc = "Remove a vote for a referendum."] + #[doc = ""] + #[doc = "If:"] + #[doc = "- the referendum was cancelled, or"] + #[doc = "- the referendum is ongoing, or"] + #[doc = "- the referendum has ended such that"] + #[doc = " - the vote of the account was in opposition to the result; or"] + #[doc = " - there was no conviction to the account's vote; or"] + #[doc = " - the account made a split vote"] + #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] + #[doc = "funds being available."] + #[doc = ""] + #[doc = "If, however, the referendum has ended and:"] + #[doc = "- it finished corresponding to the vote of the account, and"] + #[doc = "- the account made a standard vote with conviction, and"] + #[doc = "- the lock period of the conviction is not over"] + #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] + #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] + #[doc = "of both the amount locked and the time is it locked for)."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] + #[doc = "registered for referendum `index`."] + #[doc = ""] + #[doc = "- `index`: The index of referendum of the vote to be removed."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] + remove_vote { index: ::core::primitive::u32 }, + #[codec(index = 15)] + #[doc = "Remove a vote for a referendum."] + #[doc = ""] + #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] + #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] + #[doc = "either because the referendum was cancelled, because the voter lost the referendum or"] + #[doc = "because the conviction period is over."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account of the vote to be removed; this account must have voted for"] + #[doc = " referendum `index`."] + #[doc = "- `index`: The index of referendum of the vote to be removed."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] + remove_other_vote { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + index: ::core::primitive::u32, + }, + #[codec(index = 16)] + #[doc = "Permanently place a proposal into the blacklist. This prevents it from ever being"] + #[doc = "proposed again."] + #[doc = ""] + #[doc = "If called on a queued public or external proposal, then this will result in it being"] + #[doc = "removed. If the `ref_index` supplied is an active referendum with the proposal hash,"] + #[doc = "then it will be cancelled."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `BlacklistOrigin`."] + #[doc = ""] + #[doc = "- `proposal_hash`: The proposal hash to blacklist permanently."] + #[doc = "- `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be"] + #[doc = "cancelled."] + #[doc = ""] + #[doc = "Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a"] + #[doc = " reasonable value)."] + blacklist { + proposal_hash: ::subxt::utils::H256, + maybe_ref_index: ::core::option::Option<::core::primitive::u32>, + }, + #[codec(index = 17)] + #[doc = "Remove a proposal."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `CancelProposalOrigin`."] + #[doc = ""] + #[doc = "- `prop_index`: The index of the proposal to cancel."] + #[doc = ""] + #[doc = "Weight: `O(p)` where `p = PublicProps::::decode_len()`"] + cancel_proposal { + #[codec(compact)] + prop_index: ::core::primitive::u32, + }, + #[codec(index = 18)] + #[doc = "Set or clear a metadata of a proposal or a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must correspond to the `MetadataOwner`."] + #[doc = " - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`"] + #[doc = " threshold."] + #[doc = " - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`"] + #[doc = " threshold."] + #[doc = " - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`"] + #[doc = " threshold."] + #[doc = " - `Signed` by a creator for a public proposal."] + #[doc = " - `Signed` to clear a metadata for a finished referendum."] + #[doc = " - `Root` to set a metadata for an ongoing referendum."] + #[doc = "- `owner`: an identifier of a metadata owner."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] + set_metadata { + owner: runtime_types::pallet_democracy::types::MetadataOwner, + maybe_hash: ::core::option::Option<::subxt::utils::H256>, + }, + } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum MetadataOwner { + #[codec(index = 0)] + External, + #[codec(index = 1)] + Proposal(::core::primitive::u32), + #[codec(index = 2)] + Referendum(::core::primitive::u32), + } + } + pub mod vote { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum AccountVote<_0> { + #[codec(index = 0)] + Standard { + vote: runtime_types::pallet_democracy::vote::Vote, + balance: _0, + }, + #[codec(index = 1)] + Split { aye: _0, nay: _0 }, + } + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Vote(pub ::core::primitive::u8); + } + } + pub mod pallet_election_provider_multi_phase { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Submit a solution for the unsigned phase."] # [doc = ""] # [doc = "The dispatch origin fo this call must be __none__."] # [doc = ""] # [doc = "This submission is checked on the fly. Moreover, this unsigned solution is only"] # [doc = "validated when submitted to the pool from the **local** node. Effectively, this means"] # [doc = "that only active validators can submit this transaction when authoring a block (similar"] # [doc = "to an inherent)."] # [doc = ""] # [doc = "To prevent any incorrect solution (and thus wasted time/weight), this transaction will"] # [doc = "panic if the solution submitted by the validator is invalid in any way, effectively"] # [doc = "putting their authoring reward at risk."] # [doc = ""] # [doc = "No deposit or reward is associated with this submission."] submit_unsigned { raw_solution : :: std :: boxed :: Box < runtime_types :: pallet_election_provider_multi_phase :: RawSolution < runtime_types :: kitchensink_runtime :: NposSolution16 > > , witness : runtime_types :: pallet_election_provider_multi_phase :: SolutionOrSnapshotSize , } , # [codec (index = 1)] # [doc = "Set a new value for `MinimumUntrustedScore`."] # [doc = ""] # [doc = "Dispatch origin must be aligned with `T::ForceOrigin`."] # [doc = ""] # [doc = "This check can be turned off by setting the value to `None`."] set_minimum_untrusted_score { maybe_next_score : :: core :: option :: Option < runtime_types :: sp_npos_elections :: ElectionScore > , } , # [codec (index = 2)] # [doc = "Set a solution in the queue, to be handed out to the client of this pallet in the next"] # [doc = "call to `ElectionProvider::elect`."] # [doc = ""] # [doc = "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`."] # [doc = ""] # [doc = "The solution is not checked for any feasibility and is assumed to be trustworthy, as any"] # [doc = "feasibility check itself can in principle cause the election process to fail (due to"] # [doc = "memory/weight constrains)."] set_emergency_election_result { supports : :: std :: vec :: Vec < (:: subxt :: utils :: AccountId32 , runtime_types :: sp_npos_elections :: Support < :: subxt :: utils :: AccountId32 > ,) > , } , # [codec (index = 3)] # [doc = "Submit a solution for the signed phase."] # [doc = ""] # [doc = "The dispatch origin fo this call must be __signed__."] # [doc = ""] # [doc = "The solution is potentially queued, based on the claimed score and processed at the end"] # [doc = "of the signed phase."] # [doc = ""] # [doc = "A deposit is reserved and recorded for the solution. Based on the outcome, the solution"] # [doc = "might be rewarded, slashed, or get all or a part of the deposit back."] submit { raw_solution : :: std :: boxed :: Box < runtime_types :: pallet_election_provider_multi_phase :: RawSolution < runtime_types :: kitchensink_runtime :: NposSolution16 > > , } , # [codec (index = 4)] # [doc = "Trigger the governance fallback."] # [doc = ""] # [doc = "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to"] # [doc = "calling [`Call::set_emergency_election_result`]."] governance_fallback { maybe_max_voters : :: core :: option :: Option < :: core :: primitive :: u32 > , maybe_max_targets : :: core :: option :: Option < :: core :: primitive :: u32 > , } , } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct RawSolution<_0> { + pub solution: _0, + pub score: runtime_types::sp_npos_elections::ElectionScore, + pub round: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct SolutionOrSnapshotSize { + #[codec(compact)] + pub voters: ::core::primitive::u32, + #[codec(compact)] + pub targets: ::core::primitive::u32, + } + } + pub mod pallet_elections_phragmen { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Vote for a set of candidates for the upcoming round of election. This can be called to"] + #[doc = "set the initial votes, or update already existing votes."] + #[doc = ""] + #[doc = "Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is"] + #[doc = "reserved. The deposit is based on the number of votes and can be updated over time."] + #[doc = ""] + #[doc = "The `votes` should:"] + #[doc = " - not be empty."] + #[doc = " - be less than the number of possible candidates. Note that all current members and"] + #[doc = " runners-up are also automatically candidates for the next round."] + #[doc = ""] + #[doc = "If `value` is more than `who`'s free balance, then the maximum of the two is used."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed."] + #[doc = ""] + #[doc = "### Warning"] + #[doc = ""] + #[doc = "It is the responsibility of the caller to **NOT** place all of their balance into the"] + #[doc = "lock and keep some for further operations."] + vote { + votes: ::std::vec::Vec<::subxt::utils::AccountId32>, + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 1)] + #[doc = "Remove `origin` as a voter."] + #[doc = ""] + #[doc = "This removes the lock and returns the deposit."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed and be a voter."] + remove_voter, + #[codec(index = 2)] + #[doc = "Submit oneself for candidacy. A fixed amount of deposit is recorded."] + #[doc = ""] + #[doc = "All candidates are wiped at the end of the term. They either become a member/runner-up,"] + #[doc = "or leave the system while their deposit is slashed."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed."] + #[doc = ""] + #[doc = "### Warning"] + #[doc = ""] + #[doc = "Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]"] + #[doc = "to get their deposit back. Losing the spot in an election will always lead to a slash."] + #[doc = ""] + #[doc = "The number of current candidates must be provided as witness data."] + #[doc = "## Complexity"] + #[doc = "O(C + log(C)) where C is candidate_count."] + submit_candidacy { + #[codec(compact)] + candidate_count: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Renounce one's intention to be a candidate for the next election round. 3 potential"] + #[doc = "outcomes exist:"] + #[doc = ""] + #[doc = "- `origin` is a candidate and not elected in any set. In this case, the deposit is"] + #[doc = " unreserved, returned and origin is removed as a candidate."] + #[doc = "- `origin` is a current runner-up. In this case, the deposit is unreserved, returned and"] + #[doc = " origin is removed as a runner-up."] + #[doc = "- `origin` is a current member. In this case, the deposit is unreserved and origin is"] + #[doc = " removed as a member, consequently not being a candidate for the next round anymore."] + #[doc = " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they"] + #[doc = " are immediately used. If the prime is renouncing, then no prime will exist until the"] + #[doc = " next round."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed, and have one of the above roles."] + #[doc = "The type of renouncing must be provided as witness data."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = " - Renouncing::Candidate(count): O(count + log(count))"] + #[doc = " - Renouncing::Member: O(1)"] + #[doc = " - Renouncing::RunnerUp: O(1)"] + renounce_candidacy { + renouncing: runtime_types::pallet_elections_phragmen::Renouncing, + }, + #[codec(index = 4)] + #[doc = "Remove a particular member from the set. This is effective immediately and the bond of"] + #[doc = "the outgoing member is slashed."] + #[doc = ""] + #[doc = "If a runner-up is available, then the best runner-up will be removed and replaces the"] + #[doc = "outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is"] + #[doc = "started, else, nothing happens."] + #[doc = ""] + #[doc = "If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,"] + #[doc = "it is returned."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be root."] + #[doc = ""] + #[doc = "Note that this does not affect the designated block number of the next election."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Check details of remove_and_replace_member() and do_phragmen()."] + remove_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + slash_bond: ::core::primitive::bool, + rerun_election: ::core::primitive::bool, + }, + #[codec(index = 5)] + #[doc = "Clean all voters who are defunct (i.e. they do not serve any purpose at all). The"] + #[doc = "deposit of the removed voters are returned."] + #[doc = ""] + #[doc = "This is an root function to be used only for cleaning the state."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be root."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Check is_defunct_voter() details."] + clean_defunct_voters { + num_voters: ::core::primitive::u32, + num_defunct: ::core::primitive::u32, + }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Renouncing { + #[codec(index = 0)] + Member, + #[codec(index = 1)] + RunnerUp, + #[codec(index = 2)] + Candidate(#[codec(compact)] ::core::primitive::u32), + } + } + pub mod pallet_fast_unstake { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Register oneself for fast-unstake."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed by the controller account, similar to"] + #[doc = "`staking::unbond`."] + #[doc = ""] + #[doc = "The stash associated with the origin must have no ongoing unlocking chunks. If"] + #[doc = "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash"] + #[doc = "to be checked in further blocks."] + #[doc = ""] + #[doc = "If by the time this is called, the stash is actually eligible for fast-unstake, then"] + #[doc = "they are guaranteed to remain eligible, because the call will chill them as well."] + #[doc = ""] + #[doc = "If the check works, the entire staking data is removed, i.e. the stash is fully"] + #[doc = "unstaked."] + #[doc = ""] + #[doc = "If the check fails, the stash remains chilled and waiting for being unbonded as in with"] + #[doc = "the normal staking system, but they lose part of their unbonding chunks due to consuming"] + #[doc = "the chain's resources."] + register_fast_unstake, + #[codec(index = 1)] + #[doc = "Deregister oneself from the fast-unstake."] + #[doc = ""] + #[doc = "This is useful if one is registered, they are still waiting, and they change their mind."] + #[doc = ""] + #[doc = "Note that the associated stash is still fully unbonded and chilled as a consequence of"] + #[doc = "calling `register_fast_unstake`. This should probably be followed by a call to"] + #[doc = "`Staking::rebond`."] + deregister, + #[codec(index = 2)] + #[doc = "Control the operation of this pallet."] + #[doc = ""] + #[doc = "Dispatch origin must be signed by the [`Config::ControlOrigin`]."] + control { + eras_to_check: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_glutton { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Initializes the pallet by writing into `TrashData`."] + #[doc = ""] + #[doc = "Only callable by Root. A good default for `trash_count` is `5_000`."] + initialize_pallet { + new_count: ::core::primitive::u32, + witness_count: ::core::option::Option<::core::primitive::u32>, + }, + #[codec(index = 1)] + #[doc = "Set the `Compute` storage value that determines how much of the"] + #[doc = "block's weight `ref_time` to use during `on_idle`."] + #[doc = ""] + #[doc = "Only callable by Root."] + set_compute { + compute: runtime_types::sp_arithmetic::per_things::Perbill, + }, + #[codec(index = 2)] + #[doc = "Set the `Storage` storage value that determines the PoV size usage"] + #[doc = "for each block."] + #[doc = ""] + #[doc = "Only callable by Root."] + set_storage { + storage: runtime_types::sp_arithmetic::per_things::Perbill, + }, + } + } + } + pub mod pallet_grandpa { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + report_equivocation { + equivocation_proof: ::std::boxed::Box< + runtime_types::sp_consensus_grandpa::EquivocationProof< + ::subxt::utils::H256, + ::core::primitive::u32, + >, + >, + key_owner_proof: runtime_types::sp_session::MembershipProof, + }, + #[codec(index = 1)] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + report_equivocation_unsigned { + equivocation_proof: ::std::boxed::Box< + runtime_types::sp_consensus_grandpa::EquivocationProof< + ::subxt::utils::H256, + ::core::primitive::u32, + >, + >, + key_owner_proof: runtime_types::sp_session::MembershipProof, + }, + #[codec(index = 2)] + #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."] + #[doc = ""] + #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"] + #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"] + #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."] + #[doc = "The block production rate (which may be slowed down because of finality lagging) should"] + #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"] + #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"] + #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"] + #[doc = "block of all validators of the new authority set."] + #[doc = ""] + #[doc = "Only callable by root."] + note_stalled { + delay: ::core::primitive::u32, + best_finalized_block_number: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_identity { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Identity pallet declaration."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Add a registrar to the system."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."] + #[doc = ""] + #[doc = "- `account`: the account of the registrar."] + #[doc = ""] + #[doc = "Emits `RegistrarAdded` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)` where `R` registrar-count (governance-bounded and code-bounded)."] + add_registrar { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Set an account's identity information and reserve the appropriate deposit."] + #[doc = ""] + #[doc = "If the account already has identity information, the deposit is taken as part payment"] + #[doc = "for the new deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `info`: The identity information."] + #[doc = ""] + #[doc = "Emits `IdentitySet` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(X + X' + R)`"] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)"] + #[doc = " - where `R` judgements-count (registrar-count-bounded)"] + set_identity { + info: ::std::boxed::Box< + runtime_types::pallet_identity::types::IdentityInfo, + >, + }, + #[codec(index = 2)] + #[doc = "Set the sub-accounts of the sender."] + #[doc = ""] + #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"] + #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "- `subs`: The identity's (new) sub-accounts."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(P + S)`"] + #[doc = " - where `P` old-subs-count (hard- and deposit-bounded)."] + #[doc = " - where `S` subs-count (hard- and deposit-bounded)."] + set_subs { + subs: ::std::vec::Vec<( + ::subxt::utils::AccountId32, + runtime_types::pallet_identity::types::Data, + )>, + }, + #[codec(index = 3)] + #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."] + #[doc = ""] + #[doc = "Payment: All reserved balances on the account are returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "Emits `IdentityCleared` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + S + X)`"] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `S` subs-count (hard- and deposit-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + clear_identity, + #[codec(index = 4)] + #[doc = "Request a judgement from a registrar."] + #[doc = ""] + #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"] + #[doc = "given."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."] + #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] + #[doc = ""] + #[doc = "```nocompile"] + #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "```"] + #[doc = ""] + #[doc = "Emits `JudgementRequested` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + X)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + request_judgement { + #[codec(compact)] + reg_index: ::core::primitive::u32, + #[codec(compact)] + max_fee: ::core::primitive::u128, + }, + #[codec(index = 5)] + #[doc = "Cancel a previous request."] + #[doc = ""] + #[doc = "Payment: A previously reserved deposit is returned on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."] + #[doc = ""] + #[doc = "Emits `JudgementUnrequested` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + X)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + cancel_request { reg_index: ::core::primitive::u32 }, + #[codec(index = 6)] + #[doc = "Set the fee required for a judgement to be requested from a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fee`: the new fee."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + set_fee { + #[codec(compact)] + index: ::core::primitive::u32, + #[codec(compact)] + fee: ::core::primitive::u128, + }, + #[codec(index = 7)] + #[doc = "Change the account associated with a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `new`: the new account ID."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + set_account_id { + #[codec(compact)] + index: ::core::primitive::u32, + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 8)] + #[doc = "Set the field information for a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fields`: the fields that the registrar concerns themselves with."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + set_fields { + #[codec(compact)] + index: ::core::primitive::u32, + fields: runtime_types::pallet_identity::types::BitFlags< + runtime_types::pallet_identity::types::IdentityField, + >, + }, + #[codec(index = 9)] + #[doc = "Provide a judgement for an account's identity."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `reg_index`."] + #[doc = ""] + #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."] + #[doc = "- `identity`: The hash of the [`IdentityInfo`] for that the judgement is provided."] + #[doc = ""] + #[doc = "Emits `JudgementGiven` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + X)`."] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + provide_judgement { + #[codec(compact)] + reg_index: ::core::primitive::u32, + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + judgement: runtime_types::pallet_identity::types::Judgement< + ::core::primitive::u128, + >, + identity: ::subxt::utils::H256, + }, + #[codec(index = 10)] + #[doc = "Remove an account's identity and sub-account information and slash the deposits."] + #[doc = ""] + #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"] + #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"] + #[doc = "manually using `cancel_request`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] + #[doc = ""] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = ""] + #[doc = "Emits `IdentityKilled` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + S + X)`"] + #[doc = " - where `R` registrar-count (governance-bounded)."] + #[doc = " - where `S` subs-count (hard- and deposit-bounded)."] + #[doc = " - where `X` additional-field-count (deposit-bounded and code-bounded)."] + kill_identity { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 11)] + #[doc = "Add the given account to the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] + add_sub { + sub: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + data: runtime_types::pallet_identity::types::Data, + }, + #[codec(index = 12)] + #[doc = "Alter the associated name of the given sub-account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] + rename_sub { + sub: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + data: runtime_types::pallet_identity::types::Data, + }, + #[codec(index = 13)] + #[doc = "Remove the given account from the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] + remove_sub { + sub: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 14)] + #[doc = "Remove the sender as a sub-account."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender (*not* the original depositor)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "super-identity."] + #[doc = ""] + #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"] + #[doc = "controller of an account is maliciously registered as a sub-account."] + quit_sub, + } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BitFlags<_0>( + pub ::core::primitive::u64, + #[codec(skip)] pub ::core::marker::PhantomData<_0>, + ); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Data { + #[codec(index = 0)] + None, + #[codec(index = 1)] + Raw0([::core::primitive::u8; 0usize]), + #[codec(index = 2)] + Raw1([::core::primitive::u8; 1usize]), + #[codec(index = 3)] + Raw2([::core::primitive::u8; 2usize]), + #[codec(index = 4)] + Raw3([::core::primitive::u8; 3usize]), + #[codec(index = 5)] + Raw4([::core::primitive::u8; 4usize]), + #[codec(index = 6)] + Raw5([::core::primitive::u8; 5usize]), + #[codec(index = 7)] + Raw6([::core::primitive::u8; 6usize]), + #[codec(index = 8)] + Raw7([::core::primitive::u8; 7usize]), + #[codec(index = 9)] + Raw8([::core::primitive::u8; 8usize]), + #[codec(index = 10)] + Raw9([::core::primitive::u8; 9usize]), + #[codec(index = 11)] + Raw10([::core::primitive::u8; 10usize]), + #[codec(index = 12)] + Raw11([::core::primitive::u8; 11usize]), + #[codec(index = 13)] + Raw12([::core::primitive::u8; 12usize]), + #[codec(index = 14)] + Raw13([::core::primitive::u8; 13usize]), + #[codec(index = 15)] + Raw14([::core::primitive::u8; 14usize]), + #[codec(index = 16)] + Raw15([::core::primitive::u8; 15usize]), + #[codec(index = 17)] + Raw16([::core::primitive::u8; 16usize]), + #[codec(index = 18)] + Raw17([::core::primitive::u8; 17usize]), + #[codec(index = 19)] + Raw18([::core::primitive::u8; 18usize]), + #[codec(index = 20)] + Raw19([::core::primitive::u8; 19usize]), + #[codec(index = 21)] + Raw20([::core::primitive::u8; 20usize]), + #[codec(index = 22)] + Raw21([::core::primitive::u8; 21usize]), + #[codec(index = 23)] + Raw22([::core::primitive::u8; 22usize]), + #[codec(index = 24)] + Raw23([::core::primitive::u8; 23usize]), + #[codec(index = 25)] + Raw24([::core::primitive::u8; 24usize]), + #[codec(index = 26)] + Raw25([::core::primitive::u8; 25usize]), + #[codec(index = 27)] + Raw26([::core::primitive::u8; 26usize]), + #[codec(index = 28)] + Raw27([::core::primitive::u8; 27usize]), + #[codec(index = 29)] + Raw28([::core::primitive::u8; 28usize]), + #[codec(index = 30)] + Raw29([::core::primitive::u8; 29usize]), + #[codec(index = 31)] + Raw30([::core::primitive::u8; 30usize]), + #[codec(index = 32)] + Raw31([::core::primitive::u8; 31usize]), + #[codec(index = 33)] + Raw32([::core::primitive::u8; 32usize]), + #[codec(index = 34)] + BlakeTwo256([::core::primitive::u8; 32usize]), + #[codec(index = 35)] + Sha256([::core::primitive::u8; 32usize]), + #[codec(index = 36)] + Keccak256([::core::primitive::u8; 32usize]), + #[codec(index = 37)] + ShaThree256([::core::primitive::u8; 32usize]), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum IdentityField { + #[codec(index = 1)] + Display, + #[codec(index = 2)] + Legal, + #[codec(index = 4)] + Web, + #[codec(index = 8)] + Riot, + #[codec(index = 16)] + Email, + #[codec(index = 32)] + PgpFingerprint, + #[codec(index = 64)] + Image, + #[codec(index = 128)] + Twitter, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct IdentityInfo { + pub additional: + runtime_types::bounded_collections::bounded_vec::BoundedVec<( + runtime_types::pallet_identity::types::Data, + runtime_types::pallet_identity::types::Data, + )>, + pub display: runtime_types::pallet_identity::types::Data, + pub legal: runtime_types::pallet_identity::types::Data, + pub web: runtime_types::pallet_identity::types::Data, + pub riot: runtime_types::pallet_identity::types::Data, + pub email: runtime_types::pallet_identity::types::Data, + pub pgp_fingerprint: + ::core::option::Option<[::core::primitive::u8; 20usize]>, + pub image: runtime_types::pallet_identity::types::Data, + pub twitter: runtime_types::pallet_identity::types::Data, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Judgement<_0> { + #[codec(index = 0)] + Unknown, + #[codec(index = 1)] + FeePaid(_0), + #[codec(index = 2)] + Reasonable, + #[codec(index = 3)] + KnownGood, + #[codec(index = 4)] + OutOfDate, + #[codec(index = 5)] + LowQuality, + #[codec(index = 6)] + Erroneous, + } + } + } + pub mod pallet_im_online { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "## Complexity:"] # [doc = "- `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is length of"] # [doc = " `heartbeat.network_state.external_address`"] # [doc = " - `O(K)`: decoding of length `K`"] # [doc = " - `O(E)`: decoding/encoding of length `E`"] heartbeat { heartbeat : runtime_types :: pallet_im_online :: Heartbeat < :: core :: primitive :: u32 > , signature : runtime_types :: pallet_im_online :: sr25519 :: app_sr25519 :: Signature , } , } + } + pub mod sr25519 { + use super::runtime_types; + pub mod app_sr25519 { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub runtime_types::sp_core::sr25519::Public); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub runtime_types::sp_core::sr25519::Signature); + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Heartbeat<_0> { + pub block_number: _0, + pub network_state: runtime_types::sp_core::offchain::OpaqueNetworkState, + pub session_index: _0, + pub authority_index: _0, + pub validators_len: _0, + } + } + pub mod pallet_indices { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Assign an previously unassigned index."] + #[doc = ""] + #[doc = "Payment: `Deposit` is reserved from the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be claimed. This must not be in use."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + claim { index: ::core::primitive::u32 }, + #[codec(index = 1)] + #[doc = "Assign an index already owned by the sender to another account. The balance reservation"] + #[doc = "is effectively transferred to the new account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + transfer { + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + index: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Free up an index owned by the sender."] + #[doc = ""] + #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."] + #[doc = ""] + #[doc = "- `index`: the index to be freed. This must be owned by the sender."] + #[doc = ""] + #[doc = "Emits `IndexFreed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + free { index: ::core::primitive::u32 }, + #[codec(index = 3)] + #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"] + #[doc = "held, then any deposit is reimbursed to its current owner."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `index`: the index to be (re-)assigned."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + force_transfer { + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + index: ::core::primitive::u32, + freeze: ::core::primitive::bool, + }, + #[codec(index = 4)] + #[doc = "Freeze an index so it will always point to the sender account. This consumes the"] + #[doc = "deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"] + #[doc = "non-frozen account `index`."] + #[doc = ""] + #[doc = "- `index`: the index to be frozen in place."] + #[doc = ""] + #[doc = "Emits `IndexFrozen` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + freeze { index: ::core::primitive::u32 }, + } + } + } + pub mod pallet_lottery { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Buy a ticket to enter the lottery."] + #[doc = ""] + #[doc = "This extrinsic acts as a passthrough function for `call`. In all"] + #[doc = "situations where `call` alone would succeed, this extrinsic should"] + #[doc = "succeed."] + #[doc = ""] + #[doc = "If `call` is successful, then we will attempt to purchase a ticket,"] + #[doc = "which may fail silently. To detect success of a ticket purchase, you"] + #[doc = "should listen for the `TicketBought` event."] + #[doc = ""] + #[doc = "This extrinsic must be called by a signed origin."] + buy_ticket { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Set calls in storage which can be used to purchase a lottery ticket."] + #[doc = ""] + #[doc = "This function only matters if you use the `ValidateCall` implementation"] + #[doc = "provided by this pallet, which uses storage to determine the valid calls."] + #[doc = ""] + #[doc = "This extrinsic must be called by the Manager origin."] + set_calls { + calls: ::std::vec::Vec< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 2)] + #[doc = "Start a lottery using the provided configuration."] + #[doc = ""] + #[doc = "This extrinsic must be called by the `ManagerOrigin`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = ""] + #[doc = "* `price`: The cost of a single ticket."] + #[doc = "* `length`: How long the lottery should run for starting at the current block."] + #[doc = "* `delay`: How long after the lottery end we should wait before picking a winner."] + #[doc = "* `repeat`: If the lottery should repeat when completed."] + start_lottery { + price: ::core::primitive::u128, + length: ::core::primitive::u32, + delay: ::core::primitive::u32, + repeat: ::core::primitive::bool, + }, + #[codec(index = 3)] + #[doc = "If a lottery is repeating, you can use this to stop the repeat."] + #[doc = "The lottery will continue to run to completion."] + #[doc = ""] + #[doc = "This extrinsic must be called by the `ManagerOrigin`."] + stop_repeat, + } + } + } + pub mod pallet_membership { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Add a member `who` to the set."] + #[doc = ""] + #[doc = "May only be called from `T::AddOrigin`."] + add_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Remove a member `who` from the set."] + #[doc = ""] + #[doc = "May only be called from `T::RemoveOrigin`."] + remove_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 2)] + #[doc = "Swap out one member `remove` for another `add`."] + #[doc = ""] + #[doc = "May only be called from `T::SwapOrigin`."] + #[doc = ""] + #[doc = "Prime membership is *not* passed from `remove` to `add`, if extant."] + swap_member { + remove: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + add: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 3)] + #[doc = "Change the membership to a new set, disregarding the existing membership. Be nice and"] + #[doc = "pass `members` pre-sorted."] + #[doc = ""] + #[doc = "May only be called from `T::ResetOrigin`."] + reset_members { + members: ::std::vec::Vec<::subxt::utils::AccountId32>, + }, + #[codec(index = 4)] + #[doc = "Swap out the sending member for some other key `new`."] + #[doc = ""] + #[doc = "May only be called from `Signed` origin of a current member."] + #[doc = ""] + #[doc = "Prime membership is passed from the origin account to `new`, if extant."] + change_key { + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 5)] + #[doc = "Set the prime member. Must be a current member."] + #[doc = ""] + #[doc = "May only be called from `T::PrimeOrigin`."] + set_prime { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 6)] + #[doc = "Remove the prime member if it exists."] + #[doc = ""] + #[doc = "May only be called from `T::PrimeOrigin`."] + clear_prime, + } + } + } + pub mod pallet_message_queue { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Remove a page which has no more messages remaining to be processed or is stale."] + reap_page { + message_origin: ::core::primitive::u32, + page_index: ::core::primitive::u32, + }, + #[codec(index = 1)] + #[doc = "Execute an overweight message."] + #[doc = ""] + #[doc = "Temporary processing errors will be propagated whereas permanent errors are treated"] + #[doc = "as success condition."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `message_origin`: The origin from which the message to be executed arrived."] + #[doc = "- `page`: The page in the queue in which the message to be executed is sitting."] + #[doc = "- `index`: The index into the queue of the message to be executed."] + #[doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"] + #[doc = " of the message."] + #[doc = ""] + #[doc = "Benchmark complexity considerations: O(index + weight_limit)."] + execute_overweight { + message_origin: ::core::primitive::u32, + page: ::core::primitive::u32, + index: ::core::primitive::u32, + weight_limit: runtime_types::sp_weights::weight_v2::Weight, + }, + } + } + } + pub mod pallet_multisig { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"] + #[doc = "multi-signature, but do not participate in the approval process."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."] + as_multi_threshold_1 { + other_signatories: ::std::vec::Vec<::subxt::utils::AccountId32>, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "If there are enough, then dispatch the call."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "NOTE: Unless this is the final approval, you will generally want to use"] + #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"] + #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"] + #[doc = "may be found in the deposited `MultisigExecuted` event."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S + Z + Call)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- The weight of the `call`."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] + as_multi { + threshold: ::core::primitive::u16, + other_signatories: ::std::vec::Vec<::subxt::utils::AccountId32>, + maybe_timepoint: ::core::option::Option< + runtime_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + max_weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 2)] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] + approve_as_multi { + threshold: ::core::primitive::u16, + other_signatories: ::std::vec::Vec<::subxt::utils::AccountId32>, + maybe_timepoint: ::core::option::Option< + runtime_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + >, + call_hash: [::core::primitive::u8; 32usize], + max_weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 3)] + #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"] + #[doc = "for this operation will be unreserved on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"] + #[doc = "transaction for this dispatch."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- One event."] + #[doc = "- I/O: 1 read `O(S)`, one remove."] + #[doc = "- Storage: removes one item."] + cancel_as_multi { + threshold: ::core::primitive::u16, + other_signatories: ::std::vec::Vec<::subxt::utils::AccountId32>, + timepoint: runtime_types::pallet_multisig::Timepoint< + ::core::primitive::u32, + >, + call_hash: [::core::primitive::u8; 32usize], + }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Timepoint<_0> { + pub height: _0, + pub index: _0, + } + } + pub mod pallet_nfts { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Issue a new collection of non-fungible items from a public origin."] # [doc = ""] # [doc = "This new collection has no items initially and its owner is the origin."] # [doc = ""] # [doc = "The origin must be Signed and the sender must have sufficient funds free."] # [doc = ""] # [doc = "`ItemDeposit` funds of sender are reserved."] # [doc = ""] # [doc = "Parameters:"] # [doc = "- `admin`: The admin of this collection. The admin is the initial address of each"] # [doc = "member of the collection's admin team."] # [doc = ""] # [doc = "Emits `Created` event when successful."] # [doc = ""] # [doc = "Weight: `O(1)`"] create { admin : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , config : runtime_types :: pallet_nfts :: types :: CollectionConfig < :: core :: primitive :: u128 , :: core :: primitive :: u32 , :: core :: primitive :: u32 > , } , # [codec (index = 1)] # [doc = "Issue a new collection of non-fungible items from a privileged origin."] # [doc = ""] # [doc = "This new collection has no items initially."] # [doc = ""] # [doc = "The origin must conform to `ForceOrigin`."] # [doc = ""] # [doc = "Unlike `create`, no funds are reserved."] # [doc = ""] # [doc = "- `owner`: The owner of this collection of items. The owner has full superuser"] # [doc = " permissions over this item, but may later change and configure the permissions using"] # [doc = " `transfer_ownership` and `set_team`."] # [doc = ""] # [doc = "Emits `ForceCreated` event when successful."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_create { owner : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , config : runtime_types :: pallet_nfts :: types :: CollectionConfig < :: core :: primitive :: u128 , :: core :: primitive :: u32 , :: core :: primitive :: u32 > , } , # [codec (index = 2)] # [doc = "Destroy a collection of fungible items."] # [doc = ""] # [doc = "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the"] # [doc = "owner of the `collection`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection to be destroyed."] # [doc = "- `witness`: Information on the items minted in the collection. This must be"] # [doc = "correct."] # [doc = ""] # [doc = "Emits `Destroyed` event when successful."] # [doc = ""] # [doc = "Weight: `O(n + m)` where:"] # [doc = "- `n = witness.items`"] # [doc = "- `m = witness.item_metadatas`"] # [doc = "- `a = witness.attributes`"] destroy { collection : :: core :: primitive :: u32 , witness : runtime_types :: pallet_nfts :: types :: DestroyWitness , } , # [codec (index = 3)] # [doc = "Mint an item of a particular collection."] # [doc = ""] # [doc = "The origin must be Signed and the sender must be the Issuer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be minted."] # [doc = "- `item`: An identifier of the new item."] # [doc = "- `mint_to`: Account into which the item will be minted."] # [doc = "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned"] # [doc = " item_id from that collection needs to be provided within the witness data object."] # [doc = ""] # [doc = "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`."] # [doc = ""] # [doc = "Emits `Issued` event when successful."] # [doc = ""] # [doc = "Weight: `O(1)`"] mint { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , mint_to : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , witness_data : :: core :: option :: Option < runtime_types :: pallet_nfts :: types :: MintWitness < :: core :: primitive :: u32 > > , } , # [codec (index = 4)] # [doc = "Mint an item of a particular collection from a privileged origin."] # [doc = ""] # [doc = "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the"] # [doc = "Issuer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be minted."] # [doc = "- `item`: An identifier of the new item."] # [doc = "- `mint_to`: Account into which the item will be minted."] # [doc = "- `item_config`: A config of the new item."] # [doc = ""] # [doc = "Emits `Issued` event when successful."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_mint { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , mint_to : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , item_config : runtime_types :: pallet_nfts :: types :: ItemConfig , } , # [codec (index = 5)] # [doc = "Destroy a single item."] # [doc = ""] # [doc = "Origin must be Signed and the signing account must be either:"] # [doc = "- the Admin of the `collection`;"] # [doc = "- the Owner of the `item`;"] # [doc = ""] # [doc = "- `collection`: The collection of the item to be burned."] # [doc = "- `item`: The item to be burned."] # [doc = "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the"] # [doc = " item is owned by this value."] # [doc = ""] # [doc = "Emits `Burned` with the actual amount burned."] # [doc = ""] # [doc = "Weight: `O(1)`"] # [doc = "Modes: `check_owner.is_some()`."] burn { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , check_owner : :: core :: option :: Option < :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > > , } , # [codec (index = 6)] # [doc = "Move an item from the sender account to another."] # [doc = ""] # [doc = "Origin must be Signed and the signing account must be either:"] # [doc = "- the Admin of the `collection`;"] # [doc = "- the Owner of the `item`;"] # [doc = "- the approved delegate for the `item` (in this case, the approval is reset)."] # [doc = ""] # [doc = "Arguments:"] # [doc = "- `collection`: The collection of the item to be transferred."] # [doc = "- `item`: The item to be transferred."] # [doc = "- `dest`: The account to receive ownership of the item."] # [doc = ""] # [doc = "Emits `Transferred`."] # [doc = ""] # [doc = "Weight: `O(1)`"] transfer { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , dest : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 7)] # [doc = "Re-evaluate the deposits on some items."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the items to be reevaluated."] # [doc = "- `items`: The items of the collection whose deposits will be reevaluated."] # [doc = ""] # [doc = "NOTE: This exists as a best-effort function. Any items which are unknown or"] # [doc = "in the case that the owner account does not have reservable funds to pay for a"] # [doc = "deposit increase are ignored. Generally the owner isn't going to call this on items"] # [doc = "whose existing deposit is less than the refreshed deposit as it would only cost them,"] # [doc = "so it's of little consequence."] # [doc = ""] # [doc = "It will still return an error in the case that the collection is unknown or the signer"] # [doc = "is not permitted to call it."] # [doc = ""] # [doc = "Weight: `O(items.len())`"] redeposit { collection : :: core :: primitive :: u32 , items : :: std :: vec :: Vec < :: core :: primitive :: u32 > , } , # [codec (index = 8)] # [doc = "Disallow further unprivileged transfer of an item."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be changed."] # [doc = "- `item`: The item to become non-transferable."] # [doc = ""] # [doc = "Emits `ItemTransferLocked`."] # [doc = ""] # [doc = "Weight: `O(1)`"] lock_item_transfer { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , } , # [codec (index = 9)] # [doc = "Re-allow unprivileged transfer of an item."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be changed."] # [doc = "- `item`: The item to become transferable."] # [doc = ""] # [doc = "Emits `ItemTransferUnlocked`."] # [doc = ""] # [doc = "Weight: `O(1)`"] unlock_item_transfer { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , } , # [codec (index = 10)] # [doc = "Disallows specified settings for the whole collection."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection to be locked."] # [doc = "- `lock_settings`: The settings to be locked."] # [doc = ""] # [doc = "Note: it's possible to only lock(set) the setting, but not to unset it."] # [doc = "Emits `CollectionLocked`."] # [doc = ""] # [doc = "Weight: `O(1)`"] lock_collection { collection : :: core :: primitive :: u32 , lock_settings : runtime_types :: pallet_nfts :: types :: BitFlags < runtime_types :: pallet_nfts :: types :: CollectionSetting > , } , # [codec (index = 11)] # [doc = "Change the Owner of a collection."] # [doc = ""] # [doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] # [doc = ""] # [doc = "- `collection`: The collection whose owner should be changed."] # [doc = "- `owner`: The new Owner of this collection. They must have called"] # [doc = " `set_accept_ownership` with `collection` in order for this operation to succeed."] # [doc = ""] # [doc = "Emits `OwnerChanged`."] # [doc = ""] # [doc = "Weight: `O(1)`"] transfer_ownership { collection : :: core :: primitive :: u32 , owner : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 12)] # [doc = "Change the Issuer, Admin and Freezer of a collection."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`collection`."] # [doc = ""] # [doc = "- `collection`: The collection whose team should be changed."] # [doc = "- `issuer`: The new Issuer of this collection."] # [doc = "- `admin`: The new Admin of this collection."] # [doc = "- `freezer`: The new Freezer of this collection."] # [doc = ""] # [doc = "Emits `TeamChanged`."] # [doc = ""] # [doc = "Weight: `O(1)`"] set_team { collection : :: core :: primitive :: u32 , issuer : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , admin : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , freezer : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 13)] # [doc = "Change the Owner of a collection."] # [doc = ""] # [doc = "Origin must be `ForceOrigin`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection."] # [doc = "- `owner`: The new Owner of this collection."] # [doc = ""] # [doc = "Emits `OwnerChanged`."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_collection_owner { collection : :: core :: primitive :: u32 , owner : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "Change the config of a collection."] # [doc = ""] # [doc = "Origin must be `ForceOrigin`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection."] # [doc = "- `config`: The new config of this collection."] # [doc = ""] # [doc = "Emits `CollectionConfigChanged`."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_collection_config { collection : :: core :: primitive :: u32 , config : runtime_types :: pallet_nfts :: types :: CollectionConfig < :: core :: primitive :: u128 , :: core :: primitive :: u32 , :: core :: primitive :: u32 > , } , # [codec (index = 15)] # [doc = "Approve an item to be transferred by a delegated third-party account."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`item`."] # [doc = ""] # [doc = "- `collection`: The collection of the item to be approved for delegated transfer."] # [doc = "- `item`: The item to be approved for delegated transfer."] # [doc = "- `delegate`: The account to delegate permission to transfer the item."] # [doc = "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the"] # [doc = "\tnumber of blocks after which the approval will expire"] # [doc = ""] # [doc = "Emits `TransferApproved` on success."] # [doc = ""] # [doc = "Weight: `O(1)`"] approve_transfer { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , delegate : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , maybe_deadline : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 16)] # [doc = "Cancel one of the transfer approvals for a specific item."] # [doc = ""] # [doc = "Origin must be either:"] # [doc = "- the `Force` origin;"] # [doc = "- `Signed` with the signer being the Admin of the `collection`;"] # [doc = "- `Signed` with the signer being the Owner of the `item`;"] # [doc = ""] # [doc = "Arguments:"] # [doc = "- `collection`: The collection of the item of whose approval will be cancelled."] # [doc = "- `item`: The item of the collection of whose approval will be cancelled."] # [doc = "- `delegate`: The account that is going to loose their approval."] # [doc = ""] # [doc = "Emits `ApprovalCancelled` on success."] # [doc = ""] # [doc = "Weight: `O(1)`"] cancel_approval { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , delegate : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 17)] # [doc = "Cancel all the approvals of a specific item."] # [doc = ""] # [doc = "Origin must be either:"] # [doc = "- the `Force` origin;"] # [doc = "- `Signed` with the signer being the Admin of the `collection`;"] # [doc = "- `Signed` with the signer being the Owner of the `item`;"] # [doc = ""] # [doc = "Arguments:"] # [doc = "- `collection`: The collection of the item of whose approvals will be cleared."] # [doc = "- `item`: The item of the collection of whose approvals will be cleared."] # [doc = ""] # [doc = "Emits `AllApprovalsCancelled` on success."] # [doc = ""] # [doc = "Weight: `O(1)`"] clear_all_transfer_approvals { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , } , # [codec (index = 18)] # [doc = "Disallows changing the metadata or attributes of the item."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`collection`."] # [doc = ""] # [doc = "- `collection`: The collection if the `item`."] # [doc = "- `item`: An item to be locked."] # [doc = "- `lock_metadata`: Specifies whether the metadata should be locked."] # [doc = "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace"] # [doc = " should be locked."] # [doc = ""] # [doc = "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace"] # [doc = "only. When the metadata or attributes are locked, it won't be possible the unlock them."] # [doc = ""] # [doc = "Emits `ItemPropertiesLocked`."] # [doc = ""] # [doc = "Weight: `O(1)`"] lock_item_properties { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , lock_metadata : :: core :: primitive :: bool , lock_attributes : :: core :: primitive :: bool , } , # [codec (index = 19)] # [doc = "Set an attribute for a collection or item."] # [doc = ""] # [doc = "Origin must be Signed and must conform to the namespace ruleset:"] # [doc = "- `CollectionOwner` namespace could be modified by the `collection` owner only;"] # [doc = "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`"] # [doc = " should be set in that case;"] # [doc = "- `Account(AccountId)` namespace could be modified only when the `origin` was given a"] # [doc = " permission to do so;"] # [doc = ""] # [doc = "The funds of `origin` are reserved according to the formula:"] # [doc = "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into"] # [doc = "account any already reserved funds."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose item's metadata to set."] # [doc = "- `maybe_item`: The identifier of the item whose metadata to set."] # [doc = "- `namespace`: Attribute's namespace."] # [doc = "- `key`: The key of the attribute."] # [doc = "- `value`: The value to which to set the attribute."] # [doc = ""] # [doc = "Emits `AttributeSet`."] # [doc = ""] # [doc = "Weight: `O(1)`"] set_attribute { collection : :: core :: primitive :: u32 , maybe_item : :: core :: option :: Option < :: core :: primitive :: u32 > , namespace : runtime_types :: frame_support :: traits :: tokens :: misc :: AttributeNamespace < :: subxt :: utils :: AccountId32 > , key : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , value : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 20)] # [doc = "Force-set an attribute for a collection or item."] # [doc = ""] # [doc = "Origin must be `ForceOrigin`."] # [doc = ""] # [doc = "If the attribute already exists and it was set by another account, the deposit"] # [doc = "will be returned to the previous owner."] # [doc = ""] # [doc = "- `set_as`: An optional owner of the attribute."] # [doc = "- `collection`: The identifier of the collection whose item's metadata to set."] # [doc = "- `maybe_item`: The identifier of the item whose metadata to set."] # [doc = "- `namespace`: Attribute's namespace."] # [doc = "- `key`: The key of the attribute."] # [doc = "- `value`: The value to which to set the attribute."] # [doc = ""] # [doc = "Emits `AttributeSet`."] # [doc = ""] # [doc = "Weight: `O(1)`"] force_set_attribute { set_as : :: core :: option :: Option < :: subxt :: utils :: AccountId32 > , collection : :: core :: primitive :: u32 , maybe_item : :: core :: option :: Option < :: core :: primitive :: u32 > , namespace : runtime_types :: frame_support :: traits :: tokens :: misc :: AttributeNamespace < :: subxt :: utils :: AccountId32 > , key : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , value : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 21)] # [doc = "Clear an attribute for a collection or item."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "attribute."] # [doc = ""] # [doc = "Any deposit is freed for the collection's owner."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose item's metadata to clear."] # [doc = "- `maybe_item`: The identifier of the item whose metadata to clear."] # [doc = "- `namespace`: Attribute's namespace."] # [doc = "- `key`: The key of the attribute."] # [doc = ""] # [doc = "Emits `AttributeCleared`."] # [doc = ""] # [doc = "Weight: `O(1)`"] clear_attribute { collection : :: core :: primitive :: u32 , maybe_item : :: core :: option :: Option < :: core :: primitive :: u32 > , namespace : runtime_types :: frame_support :: traits :: tokens :: misc :: AttributeNamespace < :: subxt :: utils :: AccountId32 > , key : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 22)] # [doc = "Approve item's attributes to be changed by a delegated third-party account."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `item`."] # [doc = ""] # [doc = "- `collection`: A collection of the item."] # [doc = "- `item`: The item that holds attributes."] # [doc = "- `delegate`: The account to delegate permission to change attributes of the item."] # [doc = ""] # [doc = "Emits `ItemAttributesApprovalAdded` on success."] approve_item_attributes { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , delegate : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , } , # [codec (index = 23)] # [doc = "Cancel the previously provided approval to change item's attributes."] # [doc = "All the previously set attributes by the `delegate` will be removed."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `item`."] # [doc = ""] # [doc = "- `collection`: Collection that the item is contained within."] # [doc = "- `item`: The item that holds attributes."] # [doc = "- `delegate`: The previously approved account to remove."] # [doc = ""] # [doc = "Emits `ItemAttributesApprovalRemoved` on success."] cancel_item_attributes_approval { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , delegate : :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , witness : runtime_types :: pallet_nfts :: types :: CancelAttributesApprovalWitness , } , # [codec (index = 24)] # [doc = "Set the metadata for an item."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`collection`."] # [doc = ""] # [doc = "If the origin is Signed, then funds of signer are reserved according to the formula:"] # [doc = "`MetadataDepositBase + DepositPerByte * data.len` taking into"] # [doc = "account any already reserved funds."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose item's metadata to set."] # [doc = "- `item`: The identifier of the item whose metadata to set."] # [doc = "- `data`: The general information of this item. Limited in length by `StringLimit`."] # [doc = ""] # [doc = "Emits `ItemMetadataSet`."] # [doc = ""] # [doc = "Weight: `O(1)`"] set_metadata { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , data : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 25)] # [doc = "Clear the metadata for an item."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] # [doc = "`collection`."] # [doc = ""] # [doc = "Any deposit is freed for the collection's owner."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose item's metadata to clear."] # [doc = "- `item`: The identifier of the item whose metadata to clear."] # [doc = ""] # [doc = "Emits `ItemMetadataCleared`."] # [doc = ""] # [doc = "Weight: `O(1)`"] clear_metadata { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , } , # [codec (index = 26)] # [doc = "Set the metadata for a collection."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] # [doc = "the `collection`."] # [doc = ""] # [doc = "If the origin is `Signed`, then funds of signer are reserved according to the formula:"] # [doc = "`MetadataDepositBase + DepositPerByte * data.len` taking into"] # [doc = "account any already reserved funds."] # [doc = ""] # [doc = "- `collection`: The identifier of the item whose metadata to update."] # [doc = "- `data`: The general information of this item. Limited in length by `StringLimit`."] # [doc = ""] # [doc = "Emits `CollectionMetadataSet`."] # [doc = ""] # [doc = "Weight: `O(1)`"] set_collection_metadata { collection : :: core :: primitive :: u32 , data : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < :: core :: primitive :: u8 > , } , # [codec (index = 27)] # [doc = "Clear the metadata for a collection."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] # [doc = "the `collection`."] # [doc = ""] # [doc = "Any deposit is freed for the collection's owner."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection whose metadata to clear."] # [doc = ""] # [doc = "Emits `CollectionMetadataCleared`."] # [doc = ""] # [doc = "Weight: `O(1)`"] clear_collection_metadata { collection : :: core :: primitive :: u32 , } , # [codec (index = 28)] # [doc = "Set (or reset) the acceptance of ownership for a particular account."] # [doc = ""] # [doc = "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a"] # [doc = "provider reference."] # [doc = ""] # [doc = "- `maybe_collection`: The identifier of the collection whose ownership the signer is"] # [doc = " willing to accept, or if `None`, an indication that the signer is willing to accept no"] # [doc = " ownership transferal."] # [doc = ""] # [doc = "Emits `OwnershipAcceptanceChanged`."] set_accept_ownership { maybe_collection : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 29)] # [doc = "Set the maximum number of items a collection could have."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] # [doc = "the `collection`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection to change."] # [doc = "- `max_supply`: The maximum number of items a collection could have."] # [doc = ""] # [doc = "Emits `CollectionMaxSupplySet` event when successful."] set_collection_max_supply { collection : :: core :: primitive :: u32 , max_supply : :: core :: primitive :: u32 , } , # [codec (index = 30)] # [doc = "Update mint settings."] # [doc = ""] # [doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] # [doc = "the `collection`."] # [doc = ""] # [doc = "- `collection`: The identifier of the collection to change."] # [doc = "- `mint_settings`: The new mint settings."] # [doc = ""] # [doc = "Emits `CollectionMintSettingsUpdated` event when successful."] update_mint_settings { collection : :: core :: primitive :: u32 , mint_settings : runtime_types :: pallet_nfts :: types :: MintSettings < :: core :: primitive :: u128 , :: core :: primitive :: u32 , :: core :: primitive :: u32 > , } , # [codec (index = 31)] # [doc = "Set (or reset) the price for an item."] # [doc = ""] # [doc = "Origin must be Signed and must be the owner of the asset `item`."] # [doc = ""] # [doc = "- `collection`: The collection of the item."] # [doc = "- `item`: The item to set the price for."] # [doc = "- `price`: The price for the item. Pass `None`, to reset the price."] # [doc = "- `buyer`: Restricts the buy operation to a specific account."] # [doc = ""] # [doc = "Emits `ItemPriceSet` on success if the price is not `None`."] # [doc = "Emits `ItemPriceRemoved` on success if the price is `None`."] set_price { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , price : :: core :: option :: Option < :: core :: primitive :: u128 > , whitelisted_buyer : :: core :: option :: Option < :: subxt :: utils :: MultiAddress < :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > > , } , # [codec (index = 32)] # [doc = "Allows to buy an item if it's up for sale."] # [doc = ""] # [doc = "Origin must be Signed and must not be the owner of the `item`."] # [doc = ""] # [doc = "- `collection`: The collection of the item."] # [doc = "- `item`: The item the sender wants to buy."] # [doc = "- `bid_price`: The price the sender is willing to pay."] # [doc = ""] # [doc = "Emits `ItemBought` on success."] buy_item { collection : :: core :: primitive :: u32 , item : :: core :: primitive :: u32 , bid_price : :: core :: primitive :: u128 , } , # [codec (index = 33)] # [doc = "Allows to pay the tips."] # [doc = ""] # [doc = "Origin must be Signed."] # [doc = ""] # [doc = "- `tips`: Tips array."] # [doc = ""] # [doc = "Emits `TipSent` on every tip transfer."] pay_tips { tips : runtime_types :: bounded_collections :: bounded_vec :: BoundedVec < runtime_types :: pallet_nfts :: types :: ItemTip < :: core :: primitive :: u32 , :: core :: primitive :: u32 , :: subxt :: utils :: AccountId32 , :: core :: primitive :: u128 > > , } , # [codec (index = 34)] # [doc = "Register a new atomic swap, declaring an intention to send an `item` in exchange for"] # [doc = "`desired_item` from origin to target on the current blockchain."] # [doc = "The target can execute the swap during the specified `duration` of blocks (if set)."] # [doc = "Additionally, the price could be set for the desired `item`."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `item`."] # [doc = ""] # [doc = "- `collection`: The collection of the item."] # [doc = "- `item`: The item an owner wants to give."] # [doc = "- `desired_collection`: The collection of the desired item."] # [doc = "- `desired_item`: The desired item an owner wants to receive."] # [doc = "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`."] # [doc = "- `duration`: A deadline for the swap. Specified by providing the number of blocks"] # [doc = "\tafter which the swap will expire."] # [doc = ""] # [doc = "Emits `SwapCreated` on success."] create_swap { offered_collection : :: core :: primitive :: u32 , offered_item : :: core :: primitive :: u32 , desired_collection : :: core :: primitive :: u32 , maybe_desired_item : :: core :: option :: Option < :: core :: primitive :: u32 > , maybe_price : :: core :: option :: Option < runtime_types :: pallet_nfts :: types :: PriceWithDirection < :: core :: primitive :: u128 > > , duration : :: core :: primitive :: u32 , } , # [codec (index = 35)] # [doc = "Cancel an atomic swap."] # [doc = ""] # [doc = "Origin must be Signed."] # [doc = "Origin must be an owner of the `item` if the deadline hasn't expired."] # [doc = ""] # [doc = "- `collection`: The collection of the item."] # [doc = "- `item`: The item an owner wants to give."] # [doc = ""] # [doc = "Emits `SwapCancelled` on success."] cancel_swap { offered_collection : :: core :: primitive :: u32 , offered_item : :: core :: primitive :: u32 , } , # [codec (index = 36)] # [doc = "Claim an atomic swap."] # [doc = "This method executes a pending swap, that was created by a counterpart before."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `item`."] # [doc = ""] # [doc = "- `send_collection`: The collection of the item to be sent."] # [doc = "- `send_item`: The item to be sent."] # [doc = "- `receive_collection`: The collection of the item to be received."] # [doc = "- `receive_item`: The item to be received."] # [doc = "- `witness_price`: A price that was previously agreed on."] # [doc = ""] # [doc = "Emits `SwapClaimed` on success."] claim_swap { send_collection : :: core :: primitive :: u32 , send_item : :: core :: primitive :: u32 , receive_collection : :: core :: primitive :: u32 , receive_item : :: core :: primitive :: u32 , witness_price : :: core :: option :: Option < runtime_types :: pallet_nfts :: types :: PriceWithDirection < :: core :: primitive :: u128 > > , } , # [codec (index = 37)] # [doc = "Mint an item by providing the pre-signed approval."] # [doc = ""] # [doc = "Origin must be Signed."] # [doc = ""] # [doc = "- `mint_data`: The pre-signed approval that consists of the information about the item,"] # [doc = " its metadata, attributes, who can mint it (`None` for anyone) and until what block"] # [doc = " number."] # [doc = "- `signature`: The signature of the `data` object."] # [doc = "- `signer`: The `data` object's signer. Should be an owner of the collection."] # [doc = ""] # [doc = "Emits `Issued` on success."] # [doc = "Emits `AttributeSet` if the attributes were provided."] # [doc = "Emits `ItemMetadataSet` if the metadata was not empty."] mint_pre_signed { mint_data : runtime_types :: pallet_nfts :: types :: PreSignedMint < :: core :: primitive :: u32 , :: core :: primitive :: u32 , :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , signature : runtime_types :: sp_runtime :: MultiSignature , signer : :: subxt :: utils :: AccountId32 , } , # [codec (index = 38)] # [doc = "Set attributes for an item by providing the pre-signed approval."] # [doc = ""] # [doc = "Origin must be Signed and must be an owner of the `data.item`."] # [doc = ""] # [doc = "- `data`: The pre-signed approval that consists of the information about the item,"] # [doc = " attributes to update and until what block number."] # [doc = "- `signature`: The signature of the `data` object."] # [doc = "- `signer`: The `data` object's signer. Should be an owner of the collection for the"] # [doc = " `CollectionOwner` namespace."] # [doc = ""] # [doc = "Emits `AttributeSet` for each provided attribute."] # [doc = "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before."] # [doc = "Emits `PreSignedAttributesSet` on success."] set_attributes_pre_signed { data : runtime_types :: pallet_nfts :: types :: PreSignedAttributes < :: core :: primitive :: u32 , :: core :: primitive :: u32 , :: subxt :: utils :: AccountId32 , :: core :: primitive :: u32 > , signature : runtime_types :: sp_runtime :: MultiSignature , signer : :: subxt :: utils :: AccountId32 , } , } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BitFlags<_0>( + pub ::core::primitive::u64, + #[codec(skip)] pub ::core::marker::PhantomData<_0>, + ); + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CancelAttributesApprovalWitness { + pub account_attributes: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct CollectionConfig<_0, _1, _2> { + pub settings: runtime_types::pallet_nfts::types::BitFlags< + runtime_types::pallet_nfts::types::CollectionSetting, + >, + pub max_supply: ::core::option::Option<_1>, + pub mint_settings: + runtime_types::pallet_nfts::types::MintSettings<_0, _1, _1>, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<_2>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum CollectionSetting { + #[codec(index = 1)] + TransferableItems, + #[codec(index = 2)] + UnlockedMetadata, + #[codec(index = 4)] + UnlockedAttributes, + #[codec(index = 8)] + UnlockedMaxSupply, + #[codec(index = 16)] + DepositRequired, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct DestroyWitness { + #[codec(compact)] + pub items: ::core::primitive::u32, + #[codec(compact)] + pub item_metadatas: ::core::primitive::u32, + #[codec(compact)] + pub attributes: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ItemConfig { + pub settings: runtime_types::pallet_nfts::types::BitFlags< + runtime_types::pallet_nfts::types::ItemSetting, + >, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ItemSetting { + #[codec(index = 1)] + Transferable, + #[codec(index = 2)] + UnlockedMetadata, + #[codec(index = 4)] + UnlockedAttributes, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ItemTip<_0, _1, _2, _3> { + pub collection: _0, + pub item: _0, + pub receiver: _2, + pub amount: _3, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<_1>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MintSettings<_0, _1, _2> { + pub mint_type: runtime_types::pallet_nfts::types::MintType<_1>, + pub price: ::core::option::Option<_0>, + pub start_block: ::core::option::Option<_1>, + pub end_block: ::core::option::Option<_1>, + pub default_item_settings: + runtime_types::pallet_nfts::types::BitFlags< + runtime_types::pallet_nfts::types::ItemSetting, + >, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<_2>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum MintType<_0> { + #[codec(index = 0)] + Issuer, + #[codec(index = 1)] + Public, + #[codec(index = 2)] + HolderOf(_0), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MintWitness<_0> { + pub owner_of_item: _0, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct PreSignedAttributes < _0 , _1 , _2 , _3 > { pub collection : _0 , pub item : _0 , pub attributes : :: std :: vec :: Vec < (:: std :: vec :: Vec < :: core :: primitive :: u8 > , :: std :: vec :: Vec < :: core :: primitive :: u8 > ,) > , pub namespace : runtime_types :: frame_support :: traits :: tokens :: misc :: AttributeNamespace < _2 > , pub deadline : _0 , # [codec (skip)] pub __subxt_unused_type_params : :: core :: marker :: PhantomData < (_3 , _1) > } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct PreSignedMint<_0, _1, _2, _3> { + pub collection: _0, + pub item: _0, + pub attributes: ::std::vec::Vec<( + ::std::vec::Vec<::core::primitive::u8>, + ::std::vec::Vec<::core::primitive::u8>, + )>, + pub metadata: ::std::vec::Vec<::core::primitive::u8>, + pub only_account: ::core::option::Option<_2>, + pub deadline: _0, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<(_3, _1)>, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum PriceDirection { + #[codec(index = 0)] + Send, + #[codec(index = 1)] + Receive, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct PriceWithDirection<_0> { + pub amount: _0, + pub direction: runtime_types::pallet_nfts::types::PriceDirection, + } + } + } + pub mod pallet_nis { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Place a bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."] + #[doc = ""] + #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"] + #[doc = " consolidated, removed. Must be at least `MinBid`."] + #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"] + #[doc = " thawed. Must be greater than 1 and no more than `QueueCount`."] + #[doc = ""] + #[doc = "Complexities:"] + #[doc = "- `Queues[duration].len()` (just take max)."] + place_bid { + #[codec(compact)] + amount: ::core::primitive::u128, + duration: ::core::primitive::u32, + }, + #[codec(index = 1)] + #[doc = "Retract a previously placed bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"] + #[doc = "of `amount` for `duration`."] + #[doc = ""] + #[doc = "- `amount`: The amount of the previous bid."] + #[doc = "- `duration`: The duration of the previous bid."] + retract_bid { + #[codec(compact)] + amount: ::core::primitive::u128, + duration: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Ensure we have sufficient funding for all potential payouts."] + #[doc = ""] + #[doc = "- `origin`: Must be accepted by `FundOrigin`."] + fund_deficit, + #[codec(index = 3)] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"] + #[doc = " well as any fungible counterpart."] + #[doc = "- `index`: The index of the receipt."] + #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"] + #[doc = " `None`, then all of it should be."] + thaw_private { + #[codec(compact)] + index: ::core::primitive::u32, + maybe_proportion: ::core::option::Option< + runtime_types::sp_arithmetic::per_things::Perquintill, + >, + }, + #[codec(index = 4)] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"] + #[doc = " for receipt `index`."] + #[doc = "- `index`: The index of the receipt."] + thaw_communal { + #[codec(compact)] + index: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Make a private receipt communal and create fungible counterparts for its owner."] + communify { + #[codec(compact)] + index: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."] + privatize { + #[codec(compact)] + index: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_nomination_pools { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Stake funds with a pool. The amount to bond is transferred from the member to the"] + #[doc = "pools account and immediately increases the pools bond."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "* An account can only be a member of a single pool."] + #[doc = "* An account cannot join the same pool multiple times."] + #[doc = "* This call will *not* dust the member account, so the member must have at least"] + #[doc = " `existential deposit + amount` in their account."] + #[doc = "* Only a pool with [`PoolState::Open`] can be joined"] + join { + #[codec(compact)] + amount: ::core::primitive::u128, + pool_id: ::core::primitive::u32, + }, + #[codec(index = 1)] + #[doc = "Bond `extra` more funds from `origin` into the pool to which they already belong."] + #[doc = ""] + #[doc = "Additional funds can come from either the free balance of the account, of from the"] + #[doc = "accumulated rewards, see [`BondExtra`]."] + #[doc = ""] + #[doc = "Bonding extra funds implies an automatic payout of all pending rewards as well."] + #[doc = "See `bond_extra_other` to bond pending rewards of `other` members."] + bond_extra { + extra: runtime_types::pallet_nomination_pools::BondExtra< + ::core::primitive::u128, + >, + }, + #[codec(index = 2)] + #[doc = "A bonded member can use this to claim their payout based on the rewards that the pool"] + #[doc = "has accumulated since their last claimed payout (OR since joining if this is there first"] + #[doc = "time claiming rewards). The payout will be transferred to the member's account."] + #[doc = ""] + #[doc = "The member will earn rewards pro rata based on the members stake vs the sum of the"] + #[doc = "members in the pools stake. Rewards do not \"expire\"."] + #[doc = ""] + #[doc = "See `claim_payout_other` to caim rewards on bahalf of some `other` pool member."] + claim_payout, + #[codec(index = 3)] + #[doc = "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It"] + #[doc = "implicitly collects the rewards one last time, since not doing so would mean some"] + #[doc = "rewards would be forfeited."] + #[doc = ""] + #[doc = "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any"] + #[doc = "account)."] + #[doc = ""] + #[doc = "# Conditions for a permissionless dispatch."] + #[doc = ""] + #[doc = "* The pool is blocked and the caller is either the root or bouncer. This is refereed to"] + #[doc = " as a kick."] + #[doc = "* The pool is destroying and the member is not the depositor."] + #[doc = "* The pool is destroying, the member is the depositor and no other members are in the"] + #[doc = " pool."] + #[doc = ""] + #[doc = "## Conditions for permissioned dispatch (i.e. the caller is also the"] + #[doc = "`member_account`):"] + #[doc = ""] + #[doc = "* The caller is not the depositor."] + #[doc = "* The caller is the depositor, the pool is destroying and no other members are in the"] + #[doc = " pool."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "If there are too many unlocking chunks to unbond with the pool account,"] + #[doc = "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks."] + #[doc = "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]"] + #[doc = "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks"] + #[doc = "are available). However, it may not be possible to release the current unlocking chunks,"] + #[doc = "in which case, the result of this call will likely be the `NoMoreChunks` error from the"] + #[doc = "staking system."] + unbond { + member_account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + unbonding_points: ::core::primitive::u128, + }, + #[codec(index = 4)] + #[doc = "Call `withdraw_unbonded` for the pools account. This call can be made by any account."] + #[doc = ""] + #[doc = "This is useful if their are too many unlocking chunks to call `unbond`, and some"] + #[doc = "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user"] + #[doc = "would probably see an error like `NoMoreChunks` emitted from the staking system when"] + #[doc = "they attempt to unbond."] + pool_withdraw_unbonded { + pool_id: ::core::primitive::u32, + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an"] + #[doc = "error is returned."] + #[doc = ""] + #[doc = "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any"] + #[doc = "account)."] + #[doc = ""] + #[doc = "# Conditions for a permissionless dispatch"] + #[doc = ""] + #[doc = "* The pool is in destroy mode and the target is not the depositor."] + #[doc = "* The target is the depositor and they are the only member in the sub pools."] + #[doc = "* The pool is blocked and the caller is either the root or bouncer."] + #[doc = ""] + #[doc = "# Conditions for permissioned dispatch"] + #[doc = ""] + #[doc = "* The caller is the target and they are not the depositor."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "If the target is the depositor, the pool will be destroyed."] + withdraw_unbonded { + member_account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Create a new delegation pool."] + #[doc = ""] + #[doc = "# Arguments"] + #[doc = ""] + #[doc = "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of"] + #[doc = " deposit since the pools creator cannot fully unbond funds until the pool is being"] + #[doc = " destroyed."] + #[doc = "* `index` - A disambiguation index for creating the account. Likely only useful when"] + #[doc = " creating multiple pools in the same extrinsic."] + #[doc = "* `root` - The account to set as [`PoolRoles::root`]."] + #[doc = "* `nominator` - The account to set as the [`PoolRoles::nominator`]."] + #[doc = "* `bouncer` - The account to set as the [`PoolRoles::bouncer`]."] + #[doc = ""] + #[doc = "# Note"] + #[doc = ""] + #[doc = "In addition to `amount`, the caller will transfer the existential deposit; so the caller"] + #[doc = "needs at have at least `amount + existential_deposit` transferrable."] + create { + #[codec(compact)] + amount: ::core::primitive::u128, + root: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + nominator: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + bouncer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 7)] + #[doc = "Create a new delegation pool with a previously used pool id"] + #[doc = ""] + #[doc = "# Arguments"] + #[doc = ""] + #[doc = "same as `create` with the inclusion of"] + #[doc = "* `pool_id` - `A valid PoolId."] + create_with_pool_id { + #[codec(compact)] + amount: ::core::primitive::u128, + root: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + nominator: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + bouncer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + pool_id: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Nominate on behalf of the pool."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed by the pool nominator or the pool"] + #[doc = "root role."] + #[doc = ""] + #[doc = "This directly forward the call to the staking pallet, on behalf of the pool bonded"] + #[doc = "account."] + nominate { + pool_id: ::core::primitive::u32, + validators: ::std::vec::Vec<::subxt::utils::AccountId32>, + }, + #[codec(index = 9)] + #[doc = "Set a new state for the pool."] + #[doc = ""] + #[doc = "If a pool is already in the `Destroying` state, then under no condition can its state"] + #[doc = "change again."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be either:"] + #[doc = ""] + #[doc = "1. signed by the bouncer, or the root role of the pool,"] + #[doc = "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and"] + #[doc = " then the state of the pool can be permissionlessly changed to `Destroying`."] + set_state { + pool_id: ::core::primitive::u32, + state: runtime_types::pallet_nomination_pools::PoolState, + }, + #[codec(index = 10)] + #[doc = "Set a new metadata for the pool."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed by the bouncer, or the root role"] + #[doc = "of the pool."] + set_metadata { + pool_id: ::core::primitive::u32, + metadata: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 11)] + #[doc = "Update configurations for the nomination pools. The origin for this call must be"] + #[doc = "Root."] + #[doc = ""] + #[doc = "# Arguments"] + #[doc = ""] + #[doc = "* `min_join_bond` - Set [`MinJoinBond`]."] + #[doc = "* `min_create_bond` - Set [`MinCreateBond`]."] + #[doc = "* `max_pools` - Set [`MaxPools`]."] + #[doc = "* `max_members` - Set [`MaxPoolMembers`]."] + #[doc = "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]."] + set_configs { + min_join_bond: runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u128, + >, + min_create_bond: runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u128, + >, + max_pools: runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u32, + >, + max_members: runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u32, + >, + max_members_per_pool: + runtime_types::pallet_nomination_pools::ConfigOp< + ::core::primitive::u32, + >, + }, + #[codec(index = 12)] + #[doc = "Update the roles of the pool."] + #[doc = ""] + #[doc = "The root is the only entity that can change any of the roles, including itself,"] + #[doc = "excluding the depositor, who can never change."] + #[doc = ""] + #[doc = "It emits an event, notifying UIs of the role change. This event is quite relevant to"] + #[doc = "most pool members and they should be informed of changes to pool roles."] + update_roles { + pool_id: ::core::primitive::u32, + new_root: runtime_types::pallet_nomination_pools::ConfigOp< + ::subxt::utils::AccountId32, + >, + new_nominator: runtime_types::pallet_nomination_pools::ConfigOp< + ::subxt::utils::AccountId32, + >, + new_bouncer: runtime_types::pallet_nomination_pools::ConfigOp< + ::subxt::utils::AccountId32, + >, + }, + #[codec(index = 13)] + #[doc = "Chill on behalf of the pool."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be signed by the pool nominator or the pool"] + #[doc = "root role, same as [`Pallet::nominate`]."] + #[doc = ""] + #[doc = "This directly forward the call to the staking pallet, on behalf of the pool bonded"] + #[doc = "account."] + chill { pool_id: ::core::primitive::u32 }, + #[codec(index = 14)] + #[doc = "`origin` bonds funds from `extra` for some pool member `member` into their respective"] + #[doc = "pools."] + #[doc = ""] + #[doc = "`origin` can bond extra funds from free balance or pending rewards when `origin =="] + #[doc = "other`."] + #[doc = ""] + #[doc = "In the case of `origin != other`, `origin` can only bond extra pending rewards of"] + #[doc = "`other` members assuming set_claim_permission for the given member is"] + #[doc = "`PermissionlessAll` or `PermissionlessCompound`."] + bond_extra_other { + member: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + extra: runtime_types::pallet_nomination_pools::BondExtra< + ::core::primitive::u128, + >, + }, + #[codec(index = 15)] + #[doc = "Allows a pool member to set a claim permission to allow or disallow permissionless"] + #[doc = "bonding and withdrawing."] + #[doc = ""] + #[doc = "By default, this is `Permissioned`, which implies only the pool member themselves can"] + #[doc = "claim their pending rewards. If a pool member wishes so, they can set this to"] + #[doc = "`PermissionlessAll` to allow any account to claim their rewards and bond extra to the"] + #[doc = "pool."] + #[doc = ""] + #[doc = "# Arguments"] + #[doc = ""] + #[doc = "* `origin` - Member of a pool."] + #[doc = "* `actor` - Account to claim reward. // improve this"] + set_claim_permission { + permission: + runtime_types::pallet_nomination_pools::ClaimPermission, + }, + #[codec(index = 16)] + #[doc = "`origin` can claim payouts on some pool member `other`'s behalf."] + #[doc = ""] + #[doc = "Pool member `other` must have a `PermissionlessAll` or `PermissionlessWithdraw` in order"] + #[doc = "for this call to be successful."] + claim_payout_other { other: ::subxt::utils::AccountId32 }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum BondExtra<_0> { + #[codec(index = 0)] + FreeBalance(_0), + #[codec(index = 1)] + Rewards, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ClaimPermission { + #[codec(index = 0)] + Permissioned, + #[codec(index = 1)] + PermissionlessCompound, + #[codec(index = 2)] + PermissionlessWithdraw, + #[codec(index = 3)] + PermissionlessAll, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ConfigOp<_0> { + #[codec(index = 0)] + Noop, + #[codec(index = 1)] + Set(_0), + #[codec(index = 2)] + Remove, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum PoolState { + #[codec(index = 0)] + Open, + #[codec(index = 1)] + Blocked, + #[codec(index = 2)] + Destroying, + } + } + pub mod pallet_preimage { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Register a preimage on-chain."] + #[doc = ""] + #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"] + #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."] + note_preimage { + bytes: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Clear an unrequested preimage from the runtime storage."] + #[doc = ""] + #[doc = "If `len` is provided, then it will be a much cheaper operation."] + #[doc = ""] + #[doc = "- `hash`: The hash of the preimage to be removed from the store."] + #[doc = "- `len`: The length of the preimage of `hash`."] + unnote_preimage { hash: ::subxt::utils::H256 }, + #[codec(index = 2)] + #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."] + #[doc = ""] + #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"] + #[doc = "a user may have paid, and take the control of the preimage out of their hands."] + request_preimage { hash: ::subxt::utils::H256 }, + #[codec(index = 3)] + #[doc = "Clear a previously made request for a preimage."] + #[doc = ""] + #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."] + unrequest_preimage { hash: ::subxt::utils::H256 }, + } + } + } + pub mod pallet_proxy { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] + proxy { + real: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + force_proxy_type: ::core::option::Option< + runtime_types::kitchensink_runtime::ProxyType, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."] + #[doc = "- `proxy_type`: The permissions allowed for this proxy account."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + add_proxy { + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + proxy_type: runtime_types::kitchensink_runtime::ProxyType, + delay: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Unregister a proxy account for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."] + #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."] + remove_proxy { + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + proxy_type: runtime_types::kitchensink_runtime::ProxyType, + delay: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Unregister all proxy accounts for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "WARNING: This may be called on accounts created by `pure`, however if done, then"] + #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"] + remove_proxies, + #[codec(index = 4)] + #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"] + #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."] + #[doc = ""] + #[doc = "Requires a `Signed` origin."] + #[doc = ""] + #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"] + #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"] + #[doc = "allow for maximum flexibility."] + #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"] + #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"] + #[doc = "want to use `0`."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + #[doc = ""] + #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"] + #[doc = "same sender, with the same parameters."] + #[doc = ""] + #[doc = "Fails if there are insufficient funds to pay for deposit."] + create_pure { + proxy_type: runtime_types::kitchensink_runtime::ProxyType, + delay: ::core::primitive::u32, + index: ::core::primitive::u16, + }, + #[codec(index = 5)] + #[doc = "Removes a previously spawned pure proxy."] + #[doc = ""] + #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"] + #[doc = "inaccessible."] + #[doc = ""] + #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"] + #[doc = "`pure` with corresponding parameters."] + #[doc = ""] + #[doc = "- `spawner`: The account that originally called `pure` to create this account."] + #[doc = "- `index`: The disambiguation index originally passed to `pure`. Probably `0`."] + #[doc = "- `proxy_type`: The proxy type originally passed to `pure`."] + #[doc = "- `height`: The height of the chain when the call to `pure` was processed."] + #[doc = "- `ext_index`: The extrinsic index in which the call to `pure` was processed."] + #[doc = ""] + #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"] + #[doc = "account whose `pure` call has corresponding parameters."] + kill_pure { + spawner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + proxy_type: runtime_types::kitchensink_runtime::ProxyType, + index: ::core::primitive::u16, + #[codec(compact)] + height: ::core::primitive::u32, + #[codec(compact)] + ext_index: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "Publish the hash of a proxy-call that will be made in the future."] + #[doc = ""] + #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"] + #[doc = "if the delay associated with the proxy relationship is greater than zero."] + #[doc = ""] + #[doc = "No more than `MaxPending` announcements may be made at any one time."] + #[doc = ""] + #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"] + #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] + announce { + real: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call_hash: ::subxt::utils::H256, + }, + #[codec(index = 7)] + #[doc = "Remove a given announcement."] + #[doc = ""] + #[doc = "May be called by a proxy account to remove a call they previously announced and return"] + #[doc = "the deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] + remove_announcement { + real: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call_hash: ::subxt::utils::H256, + }, + #[codec(index = 8)] + #[doc = "Remove the given announcement of a delegate."] + #[doc = ""] + #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"] + #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `delegate`: The account that previously announced the call."] + #[doc = "- `call_hash`: The hash of the call to be made."] + reject_announcement { + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call_hash: ::subxt::utils::H256, + }, + #[codec(index = 9)] + #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "Removes any corresponding announcement(s)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] + proxy_announced { + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + real: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + force_proxy_type: ::core::option::Option< + runtime_types::kitchensink_runtime::ProxyType, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + } + } + } + pub mod pallet_ranked_collective { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Introduce a new member."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AdminOrigin`."] + #[doc = "- `who`: Account of non-member which will become a member."] + #[doc = "- `rank`: The rank to give the new member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + add_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Increment the rank of an existing member by one."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AdminOrigin`."] + #[doc = "- `who`: Account of existing member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + promote_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 2)] + #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"] + #[doc = "then they are removed entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AdminOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."] + demote_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 3)] + #[doc = "Remove the member entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AdminOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = "- `min_rank`: The rank of the member or greater."] + #[doc = ""] + #[doc = "Weight: `O(min_rank)`."] + remove_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + min_rank: ::core::primitive::u16, + }, + #[codec(index = 4)] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by a member account."] + #[doc = "- `poll`: Index of a poll which is ongoing."] + #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."] + #[doc = ""] + #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."] + vote { + poll: ::core::primitive::u32, + aye: ::core::primitive::bool, + }, + #[codec(index = 5)] + #[doc = "Remove votes from the given poll. It must have ended."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by any account."] + #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"] + #[doc = " exist."] + #[doc = "- `max`: Maximum number of vote items from remove in this call."] + #[doc = ""] + #[doc = "Transaction fees are waived if the operation is successful."] + #[doc = ""] + #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."] + cleanup_poll { + poll_index: ::core::primitive::u32, + max: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_recovery { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Send a call through a recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."] + #[doc = "- `call`: The call you want to make with the recovered account."] + as_recovered { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Allow ROOT to bypass the recovery process and set an a rescuer account"] + #[doc = "for a lost account directly."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The \"lost account\" to be recovered."] + #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."] + set_recovered { + lost: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + rescuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 2)] + #[doc = "Create a recovery configuration for your account. This makes your account recoverable."] + #[doc = ""] + #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"] + #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"] + #[doc = "in full when the user calls `remove_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"] + #[doc = " ordered and contain no duplicate values."] + #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"] + #[doc = " account can be recovered. Should be less than or equal to the length of the list of"] + #[doc = " friends."] + #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"] + #[doc = " needs to pass before the account can be recovered."] + create_recovery { + friends: ::std::vec::Vec<::subxt::utils::AccountId32>, + threshold: ::core::primitive::u16, + delay_period: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Initiate the process for recovering a recoverable account."] + #[doc = ""] + #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"] + #[doc = "recovery process. This deposit will always be repatriated to the account"] + #[doc = "trying to be recovered. See `close_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to recover. This account needs to be"] + #[doc = " recoverable (i.e. have a recovery configuration)."] + initiate_recovery { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 4)] + #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"] + #[doc = "process for that account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""] + #[doc = "for the recoverable account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The lost account that you want to recover."] + #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."] + #[doc = ""] + #[doc = "The combination of these two parameters must point to an active recovery"] + #[doc = "process."] + vouch_recovery { + lost: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + rescuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 5)] + #[doc = "Allow a successful rescuer to claim their recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""] + #[doc = "who has successfully completed the account recovery process: collected"] + #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"] + #[doc = " you."] + claim_recovery { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 6)] + #[doc = "As the controller of a recoverable account, close an active recovery"] + #[doc = "process for your account."] + #[doc = ""] + #[doc = "Payment: By calling this function, the recoverable account will receive"] + #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account with an active recovery process for it."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `rescuer`: The account trying to rescue this recoverable account."] + close_recovery { + rescuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 7)] + #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."] + #[doc = ""] + #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"] + #[doc = "recovery attempts before calling this function else it will fail."] + #[doc = ""] + #[doc = "Payment: By calling this function the recoverable account will unreserve"] + #[doc = "their recovery configuration deposit."] + #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account (i.e. has a recovery configuration)."] + remove_recovery, + #[codec(index = 8)] + #[doc = "Cancel the ability to use `as_recovered` for `account`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you are able to call on-behalf-of."] + cancel_recovered { + account: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + } + } + } + pub mod pallet_referenda { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] + submit { + proposal_origin: ::std::boxed::Box< + runtime_types::kitchensink_runtime::OriginCaller, + >, + proposal: + runtime_types::frame_support::traits::preimages::Bounded< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + enactment_moment: + runtime_types::frame_support::traits::schedule::DispatchTime< + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] + place_decision_deposit { index: ::core::primitive::u32 }, + #[codec(index = 2)] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] + refund_decision_deposit { index: ::core::primitive::u32 }, + #[codec(index = 3)] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] + cancel { index: ::core::primitive::u32 }, + #[codec(index = 4)] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] + kill { index: ::core::primitive::u32 }, + #[codec(index = 5)] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] + nudge_referendum { index: ::core::primitive::u32 }, + #[codec(index = 6)] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] + one_fewer_deciding { track: ::core::primitive::u16 }, + #[codec(index = 7)] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] + refund_submission_deposit { index: ::core::primitive::u32 }, + #[codec(index = 8)] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] + set_metadata { + index: ::core::primitive::u32, + maybe_hash: ::core::option::Option<::subxt::utils::H256>, + }, + } + } + } + pub mod pallet_remark { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Index and store data off chain."] + store { + remark: ::std::vec::Vec<::core::primitive::u8>, + }, + } + } + } + pub mod pallet_root_testing { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "A dispatch that will fill the block weight up to the given ratio."] + fill_block { + ratio: runtime_types::sp_arithmetic::per_things::Perbill, + }, + } + } + } + pub mod pallet_scheduler { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Anonymously schedule a task."] + schedule { + when: ::core::primitive::u32, + maybe_periodic: ::core::option::Option<( + ::core::primitive::u32, + ::core::primitive::u32, + )>, + priority: ::core::primitive::u8, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Cancel an anonymously scheduled task."] + cancel { + when: ::core::primitive::u32, + index: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Schedule a named task."] + schedule_named { + id: [::core::primitive::u8; 32usize], + when: ::core::primitive::u32, + maybe_periodic: ::core::option::Option<( + ::core::primitive::u32, + ::core::primitive::u32, + )>, + priority: ::core::primitive::u8, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 3)] + #[doc = "Cancel a named scheduled task."] + cancel_named { + id: [::core::primitive::u8; 32usize], + }, + #[codec(index = 4)] + #[doc = "Anonymously schedule a task after a delay."] + schedule_after { + after: ::core::primitive::u32, + maybe_periodic: ::core::option::Option<( + ::core::primitive::u32, + ::core::primitive::u32, + )>, + priority: ::core::primitive::u8, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 5)] + #[doc = "Schedule a named task after a delay."] + schedule_named_after { + id: [::core::primitive::u8; 32usize], + after: ::core::primitive::u32, + maybe_periodic: ::core::option::Option<( + ::core::primitive::u32, + ::core::primitive::u32, + )>, + priority: ::core::primitive::u8, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + } + } + } + pub mod pallet_session { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Sets the session key(s) of the function caller to `keys`."] + #[doc = "Allows an account to set its session key prior to becoming a validator."] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be signed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"] + #[doc = " fixed."] + set_keys { + keys: runtime_types::kitchensink_runtime::SessionKeys, + proof: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 1)] + #[doc = "Removes any session key(s) of the function caller."] + #[doc = ""] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be Signed and the account must be either be"] + #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"] + #[doc = "means being a controller account) or directly convertible into a validator ID (which"] + #[doc = "usually means being a stash account)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"] + #[doc = " `T::Keys::key_ids()` which is fixed."] + purge_keys, + } + } + } + pub mod pallet_society { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "A user outside of the society can make a bid for entry."] + #[doc = ""] + #[doc = "Payment: `CandidateDeposit` will be reserved for making a bid. It is returned"] + #[doc = "when the bid becomes a member, or if the bid calls `unbid`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + B + C + logM + logB + X)"] + #[doc = "\t - B (len of bids)"] + #[doc = " - C (len of candidates)"] + #[doc = " - M (len of members)"] + #[doc = " - X (balance reserve)"] + bid { value: ::core::primitive::u128 }, + #[codec(index = 1)] + #[doc = "A bidder can remove their bid for entry into society."] + #[doc = "By doing so, they will have their candidate deposit returned or"] + #[doc = "they will unvouch their voucher."] + #[doc = ""] + #[doc = "Payment: The bid deposit is unreserved if the user made a bid."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who wants to unbid."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(B + X)"] + #[doc = " - B (len of bids)"] + #[doc = " - X (balance unreserve)"] + unbid { pos: ::core::primitive::u32 }, + #[codec(index = 2)] + #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."] + #[doc = ""] + #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"] + #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"] + #[doc = "the suspension judgement origin, the member will be banned from vouching again."] + #[doc = ""] + #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"] + #[doc = "be paid as a portion of the reward the member will receive for joining the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The user who you would like to vouch for."] + #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"] + #[doc = "a member in the society."] + #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"] + #[doc = "the society. Tips larger than `value` will be saturated upon payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + B + C + logM + logB + X)"] + #[doc = " - B (len of bids)"] + #[doc = " - C (len of candidates)"] + #[doc = " - M (len of members)"] + #[doc = " - X (balance reserve)"] + vouch { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + value: ::core::primitive::u128, + tip: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"] + #[doc = "only a bidder (and not a candidate)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(B)"] + #[doc = " - B (len of bids)"] + unvouch { pos: ::core::primitive::u32 }, + #[codec(index = 4)] + #[doc = "As a member, vote on a candidate."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `candidate`: The candidate that the member would like to bid on."] + #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"] + #[doc = " rejected (`false`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM + C)"] + #[doc = " - C (len of candidates)"] + #[doc = " - M (len of members)"] + vote { + candidate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + approve: ::core::primitive::bool, + }, + #[codec(index = 5)] + #[doc = "As a member, vote on the defender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `approve`: A boolean which says if the candidate should be"] + #[doc = "approved (`true`) or rejected (`false`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM)"] + #[doc = " - M (len of members)"] + defender_vote { approve: ::core::primitive::bool }, + #[codec(index = 6)] + #[doc = "Transfer the first matured payout for the sender and remove it from the records."] + #[doc = ""] + #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"] + #[doc = "payouts."] + #[doc = ""] + #[doc = "Payment: The member will receive a payment equal to their first matured"] + #[doc = "payout to their free balance."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member with"] + #[doc = "payouts remaining."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM + P + X)"] + #[doc = " - M (len of members)"] + #[doc = " - P (number of payouts for a particular member)"] + #[doc = " - X (currency transfer call)"] + payout, + #[codec(index = 7)] + #[doc = "Found the society."] + #[doc = ""] + #[doc = "This is done as a discrete action in order to allow for the"] + #[doc = "pallet to be included into a running chain and can only be done once."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `founder` - The first member and head of the newly founded society."] + #[doc = "- `max_members` - The initial max number of members for the society."] + #[doc = "- `rules` - The rules of this society concerning membership."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + found { + founder: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + max_members: ::core::primitive::u32, + rules: ::std::vec::Vec<::core::primitive::u8>, + }, + #[codec(index = 8)] + #[doc = "Annul the founding of the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"] + #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"] + #[doc = "member."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + unfound, + #[codec(index = 9)] + #[doc = "Allow suspension judgement origin to make judgement on a suspended member."] + #[doc = ""] + #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"] + #[doc = "any of the existing storage items for that member."] + #[doc = ""] + #[doc = "If a suspended member is rejected, remove all associated storage items, including"] + #[doc = "their payouts, and remove any vouched bids they currently have."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended member to be judged."] + #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"] + #[doc = " (`true`) or rejects (`false`) a suspended member."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM + B)"] + #[doc = " - B (len of bids)"] + #[doc = " - M (len of members)"] + judge_suspended_member { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + forgive: ::core::primitive::bool, + }, + #[codec(index = 10)] + #[doc = "Allow suspended judgement origin to make judgement on a suspended candidate."] + #[doc = ""] + #[doc = "If the judgement is `Approve`, we add them to society as a member with the appropriate"] + #[doc = "payment for joining society."] + #[doc = ""] + #[doc = "If the judgement is `Reject`, we either slash the deposit of the bid, giving it back"] + #[doc = "to the society treasury, or we ban the voucher from vouching again."] + #[doc = ""] + #[doc = "If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go"] + #[doc = "through the induction process again."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _SuspensionJudgementOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended candidate to be judged."] + #[doc = "- `judgement` - `Approve`, `Reject`, or `Rebid`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(M + logM + B + X)"] + #[doc = " - B (len of bids)"] + #[doc = " - M (len of members)"] + #[doc = " - X (balance action)"] + judge_suspended_candidate { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + judgement: runtime_types::pallet_society::Judgement, + }, + #[codec(index = 11)] + #[doc = "Allows root origin to change the maximum number of members in society."] + #[doc = "Max membership count must be greater than 1."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `max` - The maximum number of members for the society."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + set_max_members { max: ::core::primitive::u32 }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Judgement { + #[codec(index = 0)] + Rebid, + #[codec(index = 1)] + Reject, + #[codec(index = 2)] + Approve, + } + } + pub mod pallet_staking { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Take the origin account as a stash and lock up `value` of its balance. `controller` will"] + #[doc = "be the account that controls it."] + #[doc = ""] + #[doc = "`value` must be more than the `minimum_balance` specified by `T::Currency`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the stash account."] + #[doc = ""] + #[doc = "Emits `Bonded`."] + #[doc = "## Complexity"] + #[doc = "- Independent of the arguments. Moderate complexity."] + #[doc = "- O(1)."] + #[doc = "- Three extra DB entries."] + #[doc = ""] + #[doc = "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned"] + #[doc = "unless the `origin` falls below _existential deposit_ and gets removed as dust."] + bond { + controller: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + value: ::core::primitive::u128, + payee: runtime_types::pallet_staking::RewardDestination< + ::subxt::utils::AccountId32, + >, + }, + #[codec(index = 1)] + #[doc = "Add some extra amount that have appeared in the stash `free_balance` into the balance up"] + #[doc = "for staking."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the stash, not the controller."] + #[doc = ""] + #[doc = "Use this if there are additional funds in your stash account that you wish to bond."] + #[doc = "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose"] + #[doc = "any limitation on the amount that can be added."] + #[doc = ""] + #[doc = "Emits `Bonded`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Independent of the arguments. Insignificant complexity."] + #[doc = "- O(1)."] + bond_extra { + #[codec(compact)] + max_additional: ::core::primitive::u128, + }, + #[codec(index = 2)] + #[doc = "Schedule a portion of the stash to be unlocked ready for transfer out after the bond"] + #[doc = "period ends. If this leaves an amount actively bonded less than"] + #[doc = "T::Currency::minimum_balance(), then it is increased to the full amount."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "Once the unlock period is done, you can call `withdraw_unbonded` to actually move"] + #[doc = "the funds out of management ready for transfer."] + #[doc = ""] + #[doc = "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)"] + #[doc = "can co-exists at the same time. If there are no unlocking chunks slots available"] + #[doc = "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible)."] + #[doc = ""] + #[doc = "If a user encounters the `InsufficientBond` error when calling this extrinsic,"] + #[doc = "they should call `chill` first in order to free up their bonded funds."] + #[doc = ""] + #[doc = "Emits `Unbonded`."] + #[doc = ""] + #[doc = "See also [`Call::withdraw_unbonded`]."] + unbond { + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "Remove any unlocked chunks from the `unlocking` queue from our management."] + #[doc = ""] + #[doc = "This essentially frees up that balance to be used by the stash account to do"] + #[doc = "whatever it wants."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller."] + #[doc = ""] + #[doc = "Emits `Withdrawn`."] + #[doc = ""] + #[doc = "See also [`Call::unbond`]."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(S) where S is the number of slashing spans to remove"] + #[doc = "NOTE: Weight annotation is the kill scenario, we refund otherwise."] + withdraw_unbonded { + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 4)] + #[doc = "Declare the desire to validate for the origin controller."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + validate { + prefs: runtime_types::pallet_staking::ValidatorPrefs, + }, + #[codec(index = 5)] + #[doc = "Declare the desire to nominate `targets` for the origin controller."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- The transaction's complexity is proportional to the size of `targets` (N)"] + #[doc = "which is capped at CompactAssignments::LIMIT (T::MaxNominations)."] + #[doc = "- Both the reads and writes follow a similar pattern."] + nominate { + targets: ::std::vec::Vec< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 6)] + #[doc = "Declare no desire to either validate or nominate."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Independent of the arguments. Insignificant complexity."] + #[doc = "- Contains one read."] + #[doc = "- Writes are limited to the `origin` account key."] + chill, + #[codec(index = 7)] + #[doc = "(Re-)set the payment target for a controller."] + #[doc = ""] + #[doc = "Effects will be felt instantly (as soon as this function is completed successfully)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + #[doc = "- Independent of the arguments. Insignificant complexity."] + #[doc = "- Contains a limited number of reads."] + #[doc = "- Writes are limited to the `origin` account key."] + #[doc = "---------"] + set_payee { + payee: runtime_types::pallet_staking::RewardDestination< + ::subxt::utils::AccountId32, + >, + }, + #[codec(index = 8)] + #[doc = "(Re-)set the controller of a stash."] + #[doc = ""] + #[doc = "Effects will be felt instantly (as soon as this function is completed successfully)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the stash, not the controller."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(1)"] + #[doc = "- Independent of the arguments. Insignificant complexity."] + #[doc = "- Contains a limited number of reads."] + #[doc = "- Writes are limited to the `origin` account key."] + set_controller { + controller: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 9)] + #[doc = "Sets the ideal number of validators."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(1)"] + set_validator_count { + #[codec(compact)] + new: ::core::primitive::u32, + }, + #[codec(index = 10)] + #[doc = "Increments the ideal number of validators upto maximum of"] + #[doc = "`ElectionProviderBase::MaxWinners`."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "Same as [`Self::set_validator_count`]."] + increase_validator_count { + #[codec(compact)] + additional: ::core::primitive::u32, + }, + #[codec(index = 11)] + #[doc = "Scale up the ideal number of validators by a factor upto maximum of"] + #[doc = "`ElectionProviderBase::MaxWinners`."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "Same as [`Self::set_validator_count`]."] + scale_validator_count { + factor: runtime_types::sp_arithmetic::per_things::Percent, + }, + #[codec(index = 12)] + #[doc = "Force there to be no new eras indefinitely."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "# Warning"] + #[doc = ""] + #[doc = "The election process starts multiple blocks before the end of the era."] + #[doc = "Thus the election process may be ongoing when this is called. In this case the"] + #[doc = "election will continue until the next era is triggered."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- No arguments."] + #[doc = "- Weight: O(1)"] + force_no_eras, + #[codec(index = 13)] + #[doc = "Force there to be a new era at the end of the next session. After this, it will be"] + #[doc = "reset to normal (non-forced) behaviour."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "# Warning"] + #[doc = ""] + #[doc = "The election process starts multiple blocks before the end of the era."] + #[doc = "If this is called just before a new era is triggered, the election process may not"] + #[doc = "have enough blocks to get a result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- No arguments."] + #[doc = "- Weight: O(1)"] + force_new_era, + #[codec(index = 14)] + #[doc = "Set the validators who cannot be slashed (if any)."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + set_invulnerables { + invulnerables: ::std::vec::Vec<::subxt::utils::AccountId32>, + }, + #[codec(index = 15)] + #[doc = "Force a current staker to become completely unstaked, immediately."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + force_unstake { + stash: ::subxt::utils::AccountId32, + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 16)] + #[doc = "Force there to be a new era at the end of sessions indefinitely."] + #[doc = ""] + #[doc = "The dispatch origin must be Root."] + #[doc = ""] + #[doc = "# Warning"] + #[doc = ""] + #[doc = "The election process starts multiple blocks before the end of the era."] + #[doc = "If this is called just before a new era is triggered, the election process may not"] + #[doc = "have enough blocks to get a result."] + force_new_era_always, + #[codec(index = 17)] + #[doc = "Cancel enactment of a deferred slash."] + #[doc = ""] + #[doc = "Can be called by the `T::AdminOrigin`."] + #[doc = ""] + #[doc = "Parameters: era and indices of the slashes for that era to kill."] + cancel_deferred_slash { + era: ::core::primitive::u32, + slash_indices: ::std::vec::Vec<::core::primitive::u32>, + }, + #[codec(index = 18)] + #[doc = "Pay out all the stakers behind a single validator for a single era."] + #[doc = ""] + #[doc = "- `validator_stash` is the stash account of the validator. Their nominators, up to"] + #[doc = " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards."] + #[doc = "- `era` may be any era between `[current_era - history_depth; current_era]`."] + #[doc = ""] + #[doc = "The origin of this call must be _Signed_. Any account can call this function, even if"] + #[doc = "it is not one of the stakers."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- At most O(MaxNominatorRewardedPerValidator)."] + payout_stakers { + validator_stash: ::subxt::utils::AccountId32, + era: ::core::primitive::u32, + }, + #[codec(index = 19)] + #[doc = "Rebond a portion of the stash scheduled to be unlocked."] + #[doc = ""] + #[doc = "The dispatch origin must be signed by the controller."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- Time complexity: O(L), where L is unlocking chunks"] + #[doc = "- Bounded by `MaxUnlockingChunks`."] + rebond { + #[codec(compact)] + value: ::core::primitive::u128, + }, + #[codec(index = 20)] + #[doc = "Remove all data structures concerning a staker/stash once it is at a state where it can"] + #[doc = "be considered `dust` in the staking system. The requirements are:"] + #[doc = ""] + #[doc = "1. the `total_balance` of the stash is below existential deposit."] + #[doc = "2. or, the `ledger.total` of the stash is below existential deposit."] + #[doc = ""] + #[doc = "The former can happen in cases like a slash; the latter when a fully unbonded account"] + #[doc = "is still receiving staking rewards in `RewardDestination::Staked`."] + #[doc = ""] + #[doc = "It can be called by anyone, as long as `stash` meets the above requirements."] + #[doc = ""] + #[doc = "Refunds the transaction fees upon successful execution."] + reap_stash { + stash: ::subxt::utils::AccountId32, + num_slashing_spans: ::core::primitive::u32, + }, + #[codec(index = 21)] + #[doc = "Remove the given nominations from the calling validator."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."] + #[doc = ""] + #[doc = "- `who`: A list of nominator stash accounts who are nominating this validator which"] + #[doc = " should no longer be nominating this validator."] + #[doc = ""] + #[doc = "Note: Making this call only makes sense if you first set the validator preferences to"] + #[doc = "block any further nominations."] + kick { + who: ::std::vec::Vec< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 22)] + #[doc = "Update the various staking configurations ."] + #[doc = ""] + #[doc = "* `min_nominator_bond`: The minimum active bond needed to be a nominator."] + #[doc = "* `min_validator_bond`: The minimum active bond needed to be a validator."] + #[doc = "* `max_nominator_count`: The max number of users who can be a nominator at once. When"] + #[doc = " set to `None`, no limit is enforced."] + #[doc = "* `max_validator_count`: The max number of users who can be a validator at once. When"] + #[doc = " set to `None`, no limit is enforced."] + #[doc = "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which"] + #[doc = " should be filled in order for the `chill_other` transaction to work."] + #[doc = "* `min_commission`: The minimum amount of commission that each validators must maintain."] + #[doc = " This is checked only upon calling `validate`. Existing validators are not affected."] + #[doc = ""] + #[doc = "RuntimeOrigin must be Root to call this function."] + #[doc = ""] + #[doc = "NOTE: Existing nominators and validators will not be affected by this update."] + #[doc = "to kick people under the new limits, `chill_other` should be called."] + set_staking_configs { + min_nominator_bond: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u128, + >, + min_validator_bond: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u128, + >, + max_nominator_count: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u32, + >, + max_validator_count: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + ::core::primitive::u32, + >, + chill_threshold: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + runtime_types::sp_arithmetic::per_things::Percent, + >, + min_commission: + runtime_types::pallet_staking::pallet::pallet::ConfigOp< + runtime_types::sp_arithmetic::per_things::Perbill, + >, + }, + #[codec(index = 23)] + #[doc = "Declare a `controller` to stop participating as either a validator or nominator."] + #[doc = ""] + #[doc = "Effects will be felt at the beginning of the next era."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_, but can be called by anyone."] + #[doc = ""] + #[doc = "If the caller is the same as the controller being targeted, then no further checks are"] + #[doc = "enforced, and this function behaves just like `chill`."] + #[doc = ""] + #[doc = "If the caller is different than the controller being targeted, the following conditions"] + #[doc = "must be met:"] + #[doc = ""] + #[doc = "* `controller` must belong to a nominator who has become non-decodable,"] + #[doc = ""] + #[doc = "Or:"] + #[doc = ""] + #[doc = "* A `ChillThreshold` must be set and checked which defines how close to the max"] + #[doc = " nominators or validators we must reach before users can start chilling one-another."] + #[doc = "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine"] + #[doc = " how close we are to the threshold."] + #[doc = "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines"] + #[doc = " if this is a person that should be chilled because they have not met the threshold"] + #[doc = " bond required."] + #[doc = ""] + #[doc = "This can be helpful if bond requirements are updated, and we need to remove old users"] + #[doc = "who do not satisfy these requirements."] + chill_other { + controller: ::subxt::utils::AccountId32, + }, + #[codec(index = 24)] + #[doc = "Force a validator to have at least the minimum commission. This will not affect a"] + #[doc = "validator who already has a commission greater than or equal to the minimum. Any account"] + #[doc = "can call this."] + force_apply_min_commission { + validator_stash: ::subxt::utils::AccountId32, + }, + #[codec(index = 25)] + #[doc = "Sets the minimum amount of commission that each validators must maintain."] + #[doc = ""] + #[doc = "This call has lower privilege requirements than `set_staking_config` and can be called"] + #[doc = "by the `T::AdminOrigin`. Root can always call this."] + set_min_commission { + new: runtime_types::sp_arithmetic::per_things::Perbill, + }, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum ConfigOp<_0> { + #[codec(index = 0)] + Noop, + #[codec(index = 1)] + Set(_0), + #[codec(index = 2)] + Remove, + } + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum RewardDestination<_0> { + #[codec(index = 0)] + Staked, + #[codec(index = 1)] + Stash, + #[codec(index = 2)] + Controller, + #[codec(index = 3)] + Account(_0), + #[codec(index = 4)] + None, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ValidatorPrefs { + #[codec(compact)] + pub commission: runtime_types::sp_arithmetic::per_things::Perbill, + pub blocked: ::core::primitive::bool, + } + } + pub mod pallet_state_trie_migration { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Control the automatic migration."] # [doc = ""] # [doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."] control_auto_migration { maybe_config : :: core :: option :: Option < runtime_types :: pallet_state_trie_migration :: pallet :: MigrationLimits > , } , # [codec (index = 1)] # [doc = "Continue the migration for the given `limits`."] # [doc = ""] # [doc = "The dispatch origin of this call can be any signed account."] # [doc = ""] # [doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"] # [doc = "Upon successful execution, the transaction fee is returned."] # [doc = ""] # [doc = "The (potentially over-estimated) of the byte length of all the data read must be"] # [doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"] # [doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"] # [doc = "`real_size_upper` bytes of read data."] # [doc = ""] # [doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"] # [doc = "generally trigger a migration that they do not intend. This parameter is just a message"] # [doc = "from caller, saying that they believed `witness_task` was the last state of the"] # [doc = "migration, and they only wish for their transaction to do anything, if this assumption"] # [doc = "holds. In case `witness_task` does not match, the transaction fails."] # [doc = ""] # [doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"] # [doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"] # [doc = "`size` limit can always be overwritten."] continue_migrate { limits : runtime_types :: pallet_state_trie_migration :: pallet :: MigrationLimits , real_size_upper : :: core :: primitive :: u32 , witness_task : runtime_types :: pallet_state_trie_migration :: pallet :: MigrationTask , } , # [codec (index = 2)] # [doc = "Migrate the list of top keys by iterating each of them one by one."] # [doc = ""] # [doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] # [doc = "should only be used in case any keys are leftover due to a bug."] migrate_custom_top { keys : :: std :: vec :: Vec < :: std :: vec :: Vec < :: core :: primitive :: u8 > > , witness_size : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Migrate the list of child keys by iterating each of them one by one."] # [doc = ""] # [doc = "All of the given child keys must be present under one `child_root`."] # [doc = ""] # [doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] # [doc = "should only be used in case any keys are leftover due to a bug."] migrate_custom_child { root : :: std :: vec :: Vec < :: core :: primitive :: u8 > , child_keys : :: std :: vec :: Vec < :: std :: vec :: Vec < :: core :: primitive :: u8 > > , total_size : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Set the maximum limit of the signed migration."] set_signed_max_limits { limits : runtime_types :: pallet_state_trie_migration :: pallet :: MigrationLimits , } , # [codec (index = 5)] # [doc = "Forcefully set the progress the running migration."] # [doc = ""] # [doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"] # [doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"] # [doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"] # [doc = "used, so probably it is already migrated."] # [doc = ""] # [doc = "In case you mess things up, you can also, in principle, use this to reset the migration"] # [doc = "process."] force_set_progress { progress_top : runtime_types :: pallet_state_trie_migration :: pallet :: Progress , progress_child : runtime_types :: pallet_state_trie_migration :: pallet :: Progress , } , } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MigrationLimits { + pub size: ::core::primitive::u32, + pub item: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MigrationTask { + pub progress_top: + runtime_types::pallet_state_trie_migration::pallet::Progress, + pub progress_child: + runtime_types::pallet_state_trie_migration::pallet::Progress, + pub size: ::core::primitive::u32, + pub top_items: ::core::primitive::u32, + pub child_items: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Progress { + #[codec(index = 0)] + ToStart, + #[codec(index = 1)] + LastKey( + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ), + #[codec(index = 2)] + Complete, + } + } + } + pub mod pallet_sudo { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + sudo { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Sudo user to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + sudo_unchecked_weight { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 2)] + #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"] + #[doc = "key."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + set_key { + new: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 3)] + #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"] + #[doc = "a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + sudo_as { + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + } + } + } + pub mod pallet_timestamp { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Set the current time."] + #[doc = ""] + #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"] + #[doc = "phase, if this call hasn't been invoked by that time."] + #[doc = ""] + #[doc = "The timestamp should be greater than the previous one by the amount specified by"] + #[doc = "`MinimumPeriod`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Inherent`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"] + #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in"] + #[doc = " `on_finalize`)"] + #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."] + set { + #[codec(compact)] + now: ::core::primitive::u64, + }, + } + } + } + pub mod pallet_tips { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Report something `reason` that deserves a tip and claim any eventual the finder's fee."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`."] + #[doc = ""] + #[doc = "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be"] + #[doc = " a UTF-8-encoded URL."] + #[doc = "- `who`: The account which should be credited for the tip."] + #[doc = ""] + #[doc = "Emits `NewTip` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R)` where `R` length of `reason`."] + #[doc = " - encoding and hashing of 'reason'"] + report_awesome { + reason: ::std::vec::Vec<::core::primitive::u8>, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Retract a prior tip-report from `report_awesome`, and cancel the process of tipping."] + #[doc = ""] + #[doc = "If successful, the original deposit will be unreserved."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the tip identified by `hash`"] + #[doc = "must have been reported by the signing account through `report_awesome` (and not"] + #[doc = "through `tip_new`)."] + #[doc = ""] + #[doc = "- `hash`: The identity of the open tip for which a tip value is declared. This is formed"] + #[doc = " as the hash of the tuple of the original tip `reason` and the beneficiary account ID."] + #[doc = ""] + #[doc = "Emits `TipRetracted` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`"] + #[doc = " - Depends on the length of `T::Hash` which is fixed."] + retract_tip { hash: ::subxt::utils::H256 }, + #[codec(index = 2)] + #[doc = "Give a tip for something new; no finder's fee will be taken."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must be a"] + #[doc = "member of the `Tippers` set."] + #[doc = ""] + #[doc = "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be"] + #[doc = " a UTF-8-encoded URL."] + #[doc = "- `who`: The account which should be credited for the tip."] + #[doc = "- `tip_value`: The amount of tip that the sender would like to give. The median tip"] + #[doc = " value of active tippers will be given to the `who`."] + #[doc = ""] + #[doc = "Emits `NewTip` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(R + T)` where `R` length of `reason`, `T` is the number of tippers."] + #[doc = " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by"] + #[doc = " `ContainsLengthBound`. The actual cost depends on the implementation of"] + #[doc = " `T::Tippers`."] + #[doc = " - `O(R)`: hashing and encoding of reason of length `R`"] + tip_new { + reason: ::std::vec::Vec<::core::primitive::u8>, + who: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + #[codec(compact)] + tip_value: ::core::primitive::u128, + }, + #[codec(index = 3)] + #[doc = "Declare a tip value for an already-open tip."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must be a"] + #[doc = "member of the `Tippers` set."] + #[doc = ""] + #[doc = "- `hash`: The identity of the open tip for which a tip value is declared. This is formed"] + #[doc = " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary"] + #[doc = " account ID."] + #[doc = "- `tip_value`: The amount of tip that the sender would like to give. The median tip"] + #[doc = " value of active tippers will be given to the `who`."] + #[doc = ""] + #[doc = "Emits `TipClosing` if the threshold of tippers has been reached and the countdown period"] + #[doc = "has started."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`, insert"] + #[doc = " tip and check closing, `T` is charged as upper bound given by `ContainsLengthBound`."] + #[doc = " The actual cost depends on the implementation of `T::Tippers`."] + #[doc = ""] + #[doc = " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it"] + #[doc = " is weighted as if almost full i.e of length `T-1`."] + tip { + hash: ::subxt::utils::H256, + #[codec(compact)] + tip_value: ::core::primitive::u128, + }, + #[codec(index = 4)] + #[doc = "Close and payout a tip."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "The tip identified by `hash` must have finished its countdown period."] + #[doc = ""] + #[doc = "- `hash`: The identity of the open tip for which a tip value is declared. This is formed"] + #[doc = " as the hash of the tuple of the original tip `reason` and the beneficiary account ID."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- : `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`. `T`"] + #[doc = " is charged as upper bound given by `ContainsLengthBound`. The actual cost depends on"] + #[doc = " the implementation of `T::Tippers`."] + close_tip { hash: ::subxt::utils::H256 }, + #[codec(index = 5)] + #[doc = "Remove and slash an already-open tip."] + #[doc = ""] + #[doc = "May only be called from `T::RejectOrigin`."] + #[doc = ""] + #[doc = "As a result, the finder is slashed and the deposits are lost."] + #[doc = ""] + #[doc = "Emits `TipSlashed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + slash_tip { hash: ::subxt::utils::H256 }, + } + } + } + pub mod pallet_transaction_storage { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + # [codec (index = 0)] # [doc = "Index and store data off chain. Minimum data size is 1 bytes, maximum is"] # [doc = "`MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`"] # [doc = "is called."] # [doc = "## Complexity"] # [doc = "- O(n*log(n)) of data size, as all data is pushed to an in-memory trie."] store { data : :: std :: vec :: Vec < :: core :: primitive :: u8 > , } , # [codec (index = 1)] # [doc = "Renew previously stored data. Parameters are the block number that contains"] # [doc = "previous `store` or `renew` call and transaction index within that block."] # [doc = "Transaction index is emitted in the `Stored` or `Renewed` event."] # [doc = "Applies same fees as `store`."] # [doc = "## Complexity"] # [doc = "- O(1)."] renew { block : :: core :: primitive :: u32 , index : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Check storage proof for block number `block_number() - StoragePeriod`."] # [doc = "If such block does not exist the proof is expected to be `None`."] # [doc = "## Complexity"] # [doc = "- Linear w.r.t the number of indexed transactions in the proved block for random"] # [doc = " probing."] # [doc = "There's a DB read for each transaction."] check_proof { proof : runtime_types :: sp_transaction_storage_proof :: TransactionStorageProof , } , } + } + } + pub mod pallet_treasury { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Put forward a suggestion for spending. A deposit proportional to the value"] + #[doc = "is reserved and slashed if the proposal is rejected. It is returned once the"] + #[doc = "proposal is awarded."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + propose_spend { + #[codec(compact)] + value: ::core::primitive::u128, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Reject a proposed spend. The original deposit will be slashed."] + #[doc = ""] + #[doc = "May only be called from `T::RejectOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] + reject_proposal { + #[codec(compact)] + proposal_id: ::core::primitive::u32, + }, + #[codec(index = 2)] + #[doc = "Approve a proposal. At a later time, the proposal will be allocated to the beneficiary"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::ApproveOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = " - O(1)."] + approve_proposal { + #[codec(compact)] + proposal_id: ::core::primitive::u32, + }, + #[codec(index = 3)] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "- `origin`: Must be `SpendOrigin` with the `Success` value being at least `amount`."] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The destination account for the transfer."] + #[doc = ""] + #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"] + #[doc = "beneficiary."] + spend { + #[codec(compact)] + amount: ::core::primitive::u128, + beneficiary: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 4)] + #[doc = "Force a previously approved proposal to be removed from the approval queue."] + #[doc = "The original deposit will no longer be returned."] + #[doc = ""] + #[doc = "May only be called from `T::RejectOrigin`."] + #[doc = "- `proposal_id`: The index of a proposal"] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(A) where `A` is the number of approvals"] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,"] + #[doc = "i.e., the proposal has not been approved. This could also mean the proposal does not"] + #[doc = "exist altogether, thus there is no way it would have been approved in the first place."] + remove_approval { + #[codec(compact)] + proposal_id: ::core::primitive::u32, + }, + } + } + } + pub mod pallet_uniques { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Issue a new collection of non-fungible items from a public origin."] + #[doc = ""] + #[doc = "This new collection has no items initially and its owner is the origin."] + #[doc = ""] + #[doc = "The origin must conform to the configured `CreateOrigin` and have sufficient funds free."] + #[doc = ""] + #[doc = "`ItemDeposit` funds of sender are reserved."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `collection`: The identifier of the new collection. This must not be currently in use."] + #[doc = "- `admin`: The admin of this collection. The admin is the initial address of each"] + #[doc = "member of the collection's admin team."] + #[doc = ""] + #[doc = "Emits `Created` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + create { + collection: ::core::primitive::u32, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 1)] + #[doc = "Issue a new collection of non-fungible items from a privileged origin."] + #[doc = ""] + #[doc = "This new collection has no items initially."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin`."] + #[doc = ""] + #[doc = "Unlike `create`, no funds are reserved."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the new item. This must not be currently in use."] + #[doc = "- `owner`: The owner of this collection of items. The owner has full superuser"] + #[doc = " permissions"] + #[doc = "over this item, but may later change and configure the permissions using"] + #[doc = "`transfer_ownership` and `set_team`."] + #[doc = ""] + #[doc = "Emits `ForceCreated` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_create { + collection: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + free_holding: ::core::primitive::bool, + }, + #[codec(index = 2)] + #[doc = "Destroy a collection of fungible items."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the"] + #[doc = "owner of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection to be destroyed."] + #[doc = "- `witness`: Information on the items minted in the collection. This must be"] + #[doc = "correct."] + #[doc = ""] + #[doc = "Emits `Destroyed` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(n + m)` where:"] + #[doc = "- `n = witness.items`"] + #[doc = "- `m = witness.item_metadatas`"] + #[doc = "- `a = witness.attributes`"] + destroy { + collection: ::core::primitive::u32, + witness: runtime_types::pallet_uniques::types::DestroyWitness, + }, + #[codec(index = 3)] + #[doc = "Mint an item of a particular collection."] + #[doc = ""] + #[doc = "The origin must be Signed and the sender must be the Issuer of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be minted."] + #[doc = "- `item`: The item value of the item to be minted."] + #[doc = "- `beneficiary`: The initial owner of the minted item."] + #[doc = ""] + #[doc = "Emits `Issued` event when successful."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + mint { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 4)] + #[doc = "Destroy a single item."] + #[doc = ""] + #[doc = "Origin must be Signed and the signing account must be either:"] + #[doc = "- the Admin of the `collection`;"] + #[doc = "- the Owner of the `item`;"] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be burned."] + #[doc = "- `item`: The item of the item to be burned."] + #[doc = "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the"] + #[doc = " item is owned by this value."] + #[doc = ""] + #[doc = "Emits `Burned` with the actual amount burned."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + #[doc = "Modes: `check_owner.is_some()`."] + burn { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + check_owner: ::core::option::Option< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 5)] + #[doc = "Move an item from the sender account to another."] + #[doc = ""] + #[doc = "This resets the approved account of the item."] + #[doc = ""] + #[doc = "Origin must be Signed and the signing account must be either:"] + #[doc = "- the Admin of the `collection`;"] + #[doc = "- the Owner of the `item`;"] + #[doc = "- the approved delegate for the `item` (in this case, the approval is reset)."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = "- `collection`: The collection of the item to be transferred."] + #[doc = "- `item`: The item of the item to be transferred."] + #[doc = "- `dest`: The account to receive ownership of the item."] + #[doc = ""] + #[doc = "Emits `Transferred`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + transfer { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + dest: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 6)] + #[doc = "Reevaluate the deposits on some items."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection to be frozen."] + #[doc = "- `items`: The items of the collection whose deposits will be reevaluated."] + #[doc = ""] + #[doc = "NOTE: This exists as a best-effort function. Any items which are unknown or"] + #[doc = "in the case that the owner account does not have reservable funds to pay for a"] + #[doc = "deposit increase are ignored. Generally the owner isn't going to call this on items"] + #[doc = "whose existing deposit is less than the refreshed deposit as it would only cost them,"] + #[doc = "so it's of little consequence."] + #[doc = ""] + #[doc = "It will still return an error in the case that the collection is unknown of the signer"] + #[doc = "is not permitted to call it."] + #[doc = ""] + #[doc = "Weight: `O(items.len())`"] + redeposit { + collection: ::core::primitive::u32, + items: ::std::vec::Vec<::core::primitive::u32>, + }, + #[codec(index = 7)] + #[doc = "Disallow further unprivileged transfer of an item."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be frozen."] + #[doc = "- `item`: The item of the item to be frozen."] + #[doc = ""] + #[doc = "Emits `Frozen`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + freeze { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Re-allow unprivileged transfer of an item."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be thawed."] + #[doc = "- `item`: The item of the item to be thawed."] + #[doc = ""] + #[doc = "Emits `Thawed`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + thaw { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + }, + #[codec(index = 9)] + #[doc = "Disallow further unprivileged transfers for a whole collection."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Freezer of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection to be frozen."] + #[doc = ""] + #[doc = "Emits `CollectionFrozen`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + freeze_collection { collection: ::core::primitive::u32 }, + #[codec(index = 10)] + #[doc = "Re-allow unprivileged transfers for a whole collection."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Admin of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection to be thawed."] + #[doc = ""] + #[doc = "Emits `CollectionThawed`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + thaw_collection { collection: ::core::primitive::u32 }, + #[codec(index = 11)] + #[doc = "Change the Owner of a collection."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection whose owner should be changed."] + #[doc = "- `owner`: The new Owner of this collection. They must have called"] + #[doc = " `set_accept_ownership` with `collection` in order for this operation to succeed."] + #[doc = ""] + #[doc = "Emits `OwnerChanged`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + transfer_ownership { + collection: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 12)] + #[doc = "Change the Issuer, Admin and Freezer of a collection."] + #[doc = ""] + #[doc = "Origin must be Signed and the sender should be the Owner of the `collection`."] + #[doc = ""] + #[doc = "- `collection`: The collection whose team should be changed."] + #[doc = "- `issuer`: The new Issuer of this collection."] + #[doc = "- `admin`: The new Admin of this collection."] + #[doc = "- `freezer`: The new Freezer of this collection."] + #[doc = ""] + #[doc = "Emits `TeamChanged`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_team { + collection: ::core::primitive::u32, + issuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + freezer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 13)] + #[doc = "Approve an item to be transferred by a delegated third-party account."] + #[doc = ""] + #[doc = "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be"] + #[doc = "either the owner of the `item` or the admin of the collection."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item to be approved for delegated transfer."] + #[doc = "- `item`: The item of the item to be approved for delegated transfer."] + #[doc = "- `delegate`: The account to delegate permission to transfer the item."] + #[doc = ""] + #[doc = "Important NOTE: The `approved` account gets reset after each transfer."] + #[doc = ""] + #[doc = "Emits `ApprovedTransfer` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + approve_transfer { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + delegate: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 14)] + #[doc = "Cancel the prior approval for the transfer of an item by a delegate."] + #[doc = ""] + #[doc = "Origin must be either:"] + #[doc = "- the `Force` origin;"] + #[doc = "- `Signed` with the signer being the Admin of the `collection`;"] + #[doc = "- `Signed` with the signer being the Owner of the `item`;"] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = "- `collection`: The collection of the item of whose approval will be cancelled."] + #[doc = "- `item`: The item of the item of whose approval will be cancelled."] + #[doc = "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to"] + #[doc = " which permission of transfer is delegated."] + #[doc = ""] + #[doc = "Emits `ApprovalCancelled` on success."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + cancel_approval { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + maybe_check_delegate: ::core::option::Option< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 15)] + #[doc = "Alter the attributes of a given item."] + #[doc = ""] + #[doc = "Origin must be `ForceOrigin`."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the item."] + #[doc = "- `owner`: The new Owner of this item."] + #[doc = "- `issuer`: The new Issuer of this item."] + #[doc = "- `admin`: The new Admin of this item."] + #[doc = "- `freezer`: The new Freezer of this item."] + #[doc = "- `free_holding`: Whether a deposit is taken for holding an item of this collection."] + #[doc = "- `is_frozen`: Whether this collection is frozen except for permissioned/admin"] + #[doc = "instructions."] + #[doc = ""] + #[doc = "Emits `ItemStatusChanged` with the identity of the item."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + force_item_status { + collection: ::core::primitive::u32, + owner: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + issuer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + admin: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + freezer: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + free_holding: ::core::primitive::bool, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 16)] + #[doc = "Set an attribute for a collection or item."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] + #[doc = "`collection`."] + #[doc = ""] + #[doc = "If the origin is Signed, then funds of signer are reserved according to the formula:"] + #[doc = "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into"] + #[doc = "account any already reserved funds."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose item's metadata to set."] + #[doc = "- `maybe_item`: The identifier of the item whose metadata to set."] + #[doc = "- `key`: The key of the attribute."] + #[doc = "- `value`: The value to which to set the attribute."] + #[doc = ""] + #[doc = "Emits `AttributeSet`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_attribute { + collection: ::core::primitive::u32, + maybe_item: ::core::option::Option<::core::primitive::u32>, + key: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + value: + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 17)] + #[doc = "Clear an attribute for a collection or item."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] + #[doc = "`collection`."] + #[doc = ""] + #[doc = "Any deposit is freed for the collection's owner."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose item's metadata to clear."] + #[doc = "- `maybe_item`: The identifier of the item whose metadata to clear."] + #[doc = "- `key`: The key of the attribute."] + #[doc = ""] + #[doc = "Emits `AttributeCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + clear_attribute { + collection: ::core::primitive::u32, + maybe_item: ::core::option::Option<::core::primitive::u32>, + key: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 18)] + #[doc = "Set the metadata for an item."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] + #[doc = "`collection`."] + #[doc = ""] + #[doc = "If the origin is Signed, then funds of signer are reserved according to the formula:"] + #[doc = "`MetadataDepositBase + DepositPerByte * data.len` taking into"] + #[doc = "account any already reserved funds."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose item's metadata to set."] + #[doc = "- `item`: The identifier of the item whose metadata to set."] + #[doc = "- `data`: The general information of this item. Limited in length by `StringLimit`."] + #[doc = "- `is_frozen`: Whether the metadata should be frozen against further changes."] + #[doc = ""] + #[doc = "Emits `MetadataSet`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_metadata { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + data: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 19)] + #[doc = "Clear the metadata for an item."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the"] + #[doc = "`item`."] + #[doc = ""] + #[doc = "Any deposit is freed for the collection's owner."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose item's metadata to clear."] + #[doc = "- `item`: The identifier of the item whose metadata to clear."] + #[doc = ""] + #[doc = "Emits `MetadataCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + clear_metadata { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + }, + #[codec(index = 20)] + #[doc = "Set the metadata for a collection."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] + #[doc = "the `collection`."] + #[doc = ""] + #[doc = "If the origin is `Signed`, then funds of signer are reserved according to the formula:"] + #[doc = "`MetadataDepositBase + DepositPerByte * data.len` taking into"] + #[doc = "account any already reserved funds."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the item whose metadata to update."] + #[doc = "- `data`: The general information of this item. Limited in length by `StringLimit`."] + #[doc = "- `is_frozen`: Whether the metadata should be frozen against further changes."] + #[doc = ""] + #[doc = "Emits `CollectionMetadataSet`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + set_collection_metadata { + collection: ::core::primitive::u32, + data: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + is_frozen: ::core::primitive::bool, + }, + #[codec(index = 21)] + #[doc = "Clear the metadata for a collection."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] + #[doc = "the `collection`."] + #[doc = ""] + #[doc = "Any deposit is freed for the collection's owner."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection whose metadata to clear."] + #[doc = ""] + #[doc = "Emits `CollectionMetadataCleared`."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] + clear_collection_metadata { collection: ::core::primitive::u32 }, + #[codec(index = 22)] + #[doc = "Set (or reset) the acceptance of ownership for a particular account."] + #[doc = ""] + #[doc = "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a"] + #[doc = "provider reference."] + #[doc = ""] + #[doc = "- `maybe_collection`: The identifier of the collection whose ownership the signer is"] + #[doc = " willing to accept, or if `None`, an indication that the signer is willing to accept no"] + #[doc = " ownership transferal."] + #[doc = ""] + #[doc = "Emits `OwnershipAcceptanceChanged`."] + set_accept_ownership { + maybe_collection: ::core::option::Option<::core::primitive::u32>, + }, + #[codec(index = 23)] + #[doc = "Set the maximum amount of items a collection could have."] + #[doc = ""] + #[doc = "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of"] + #[doc = "the `collection`."] + #[doc = ""] + #[doc = "Note: This function can only succeed once per collection."] + #[doc = ""] + #[doc = "- `collection`: The identifier of the collection to change."] + #[doc = "- `max_supply`: The maximum amount of items a collection could have."] + #[doc = ""] + #[doc = "Emits `CollectionMaxSupplySet` event when successful."] + set_collection_max_supply { + collection: ::core::primitive::u32, + max_supply: ::core::primitive::u32, + }, + #[codec(index = 24)] + #[doc = "Set (or reset) the price for an item."] + #[doc = ""] + #[doc = "Origin must be Signed and must be the owner of the asset `item`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item."] + #[doc = "- `item`: The item to set the price for."] + #[doc = "- `price`: The price for the item. Pass `None`, to reset the price."] + #[doc = "- `buyer`: Restricts the buy operation to a specific account."] + #[doc = ""] + #[doc = "Emits `ItemPriceSet` on success if the price is not `None`."] + #[doc = "Emits `ItemPriceRemoved` on success if the price is `None`."] + set_price { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + price: ::core::option::Option<::core::primitive::u128>, + whitelisted_buyer: ::core::option::Option< + ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 25)] + #[doc = "Allows to buy an item if it's up for sale."] + #[doc = ""] + #[doc = "Origin must be Signed and must not be the owner of the `item`."] + #[doc = ""] + #[doc = "- `collection`: The collection of the item."] + #[doc = "- `item`: The item the sender wants to buy."] + #[doc = "- `bid_price`: The price the sender is willing to pay."] + #[doc = ""] + #[doc = "Emits `ItemBought` on success."] + buy_item { + collection: ::core::primitive::u32, + item: ::core::primitive::u32, + bid_price: ::core::primitive::u128, + }, + } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct DestroyWitness { + #[codec(compact)] + pub items: ::core::primitive::u32, + #[codec(compact)] + pub item_metadatas: ::core::primitive::u32, + #[codec(compact)] + pub attributes: ::core::primitive::u32, + } + } + } + pub mod pallet_utility { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Send a batch of dispatch calls."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + #[doc = ""] + #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"] + #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"] + #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"] + #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"] + #[doc = "event is deposited."] + batch { + calls: ::std::vec::Vec< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 1)] + #[doc = "Send a call through an indexed pseudonym of the sender."] + #[doc = ""] + #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"] + #[doc = "use the same filter as the origin of this call."] + #[doc = ""] + #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."] + #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"] + #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"] + #[doc = "in the Multisig pallet instead."] + #[doc = ""] + #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + as_derivative { + index: ::core::primitive::u16, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 2)] + #[doc = "Send a batch of dispatch calls and atomically execute them."] + #[doc = "The whole transaction will rollback and fail if any of the calls failed."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + batch_all { + calls: ::std::vec::Vec< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 3)] + #[doc = "Dispatches a function call with a provided origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + dispatch_as { + as_origin: ::std::boxed::Box< + runtime_types::kitchensink_runtime::OriginCaller, + >, + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 4)] + #[doc = "Send a batch of dispatch calls."] + #[doc = "Unlike `batch`, it allows errors and won't interrupt."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + force_batch { + calls: ::std::vec::Vec< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + #[codec(index = 5)] + #[doc = "Dispatch a function call with a specified weight."] + #[doc = ""] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Root origin to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + with_weight { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + weight: runtime_types::sp_weights::weight_v2::Weight, + }, + } + } + } + pub mod pallet_vesting { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Unlock any vested funds of the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + vest, + #[codec(index = 1)] + #[doc = "Unlock any vested funds of a `target` account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + vest_other { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + }, + #[codec(index = 2)] + #[doc = "Create a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account receiving the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + vested_transfer { + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + schedule: + runtime_types::pallet_vesting::vesting_info::VestingInfo< + ::core::primitive::u128, + ::core::primitive::u32, + >, + }, + #[codec(index = 3)] + #[doc = "Force a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `source`: The account whose funds should be transferred."] + #[doc = "- `target`: The account that should be transferred the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] + force_vested_transfer { + source: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + target: ::subxt::utils::MultiAddress< + ::subxt::utils::AccountId32, + ::core::primitive::u32, + >, + schedule: + runtime_types::pallet_vesting::vesting_info::VestingInfo< + ::core::primitive::u128, + ::core::primitive::u32, + >, + }, + #[codec(index = 4)] + #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"] + #[doc = "the highest possible start and end blocks. If both schedules have already started the"] + #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"] + #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"] + #[doc = "unmodified."] + #[doc = ""] + #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."] + #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."] + #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"] + #[doc = "and both will be removed."] + #[doc = ""] + #[doc = "Merged schedule attributes:"] + #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"] + #[doc = " current_block)`."] + #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."] + #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `schedule1_index`: index of the first schedule to merge."] + #[doc = "- `schedule2_index`: index of the second schedule to merge."] + merge_schedules { + schedule1_index: ::core::primitive::u32, + schedule2_index: ::core::primitive::u32, + }, + } + } + pub mod vesting_info { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct VestingInfo<_0, _1> { + pub locked: _0, + pub per_block: _0, + pub starting_block: _1, + } + } + } + pub mod pallet_whitelist { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + #[doc = "Contains one variant per dispatchable that can be called by an extrinsic."] + pub enum Call { + #[codec(index = 0)] + whitelist_call { call_hash: ::subxt::utils::H256 }, + #[codec(index = 1)] + remove_whitelisted_call { call_hash: ::subxt::utils::H256 }, + #[codec(index = 2)] + dispatch_whitelisted_call { + call_hash: ::subxt::utils::H256, + call_encoded_len: ::core::primitive::u32, + call_weight_witness: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 3)] + dispatch_whitelisted_call_with_preimage { + call: ::std::boxed::Box< + runtime_types::kitchensink_runtime::RuntimeCall, + >, + }, + } + } + } + pub mod sp_arithmetic { + use super::runtime_types; + pub mod per_things { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct PerU16(pub ::core::primitive::u16); + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Perbill(pub ::core::primitive::u32); + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Percent(pub ::core::primitive::u8); + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Perquintill(pub ::core::primitive::u64); + } + } + pub mod sp_authority_discovery { + use super::runtime_types; + pub mod app { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub runtime_types::sp_core::sr25519::Public); + } + } + pub mod sp_consensus_babe { + use super::runtime_types; + pub mod app { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub runtime_types::sp_core::sr25519::Public); + } + pub mod digests { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum NextConfigDescriptor { + #[codec(index = 1)] + V1 { + c: (::core::primitive::u64, ::core::primitive::u64), + allowed_slots: runtime_types::sp_consensus_babe::AllowedSlots, + }, + } + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum AllowedSlots { + #[codec(index = 0)] + PrimarySlots, + #[codec(index = 1)] + PrimaryAndSecondaryPlainSlots, + #[codec(index = 2)] + PrimaryAndSecondaryVRFSlots, + } + } + pub mod sp_consensus_grandpa { + use super::runtime_types; + pub mod app { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub runtime_types::sp_core::ed25519::Public); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub runtime_types::sp_core::ed25519::Signature); + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Equivocation<_0, _1> { + #[codec(index = 0)] + Prevote( + runtime_types::finality_grandpa::Equivocation< + runtime_types::sp_consensus_grandpa::app::Public, + runtime_types::finality_grandpa::Prevote<_0, _1>, + runtime_types::sp_consensus_grandpa::app::Signature, + >, + ), + #[codec(index = 1)] + Precommit( + runtime_types::finality_grandpa::Equivocation< + runtime_types::sp_consensus_grandpa::app::Public, + runtime_types::finality_grandpa::Precommit<_0, _1>, + runtime_types::sp_consensus_grandpa::app::Signature, + >, + ), + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct EquivocationProof<_0, _1> { + pub set_id: ::core::primitive::u64, + pub equivocation: + runtime_types::sp_consensus_grandpa::Equivocation<_0, _1>, + } + } + pub mod sp_consensus_slots { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct EquivocationProof<_0, _1> { + pub offender: _1, + pub slot: runtime_types::sp_consensus_slots::Slot, + pub first_header: _0, + pub second_header: _0, + } + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Slot(pub ::core::primitive::u64); + } + pub mod sp_core { + use super::runtime_types; + pub mod ecdsa { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub [::core::primitive::u8; 65usize]); + } + pub mod ed25519 { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub [::core::primitive::u8; 32usize]); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub [::core::primitive::u8; 64usize]); + } + pub mod offchain { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct OpaqueMultiaddr(pub ::std::vec::Vec<::core::primitive::u8>); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct OpaqueNetworkState { + pub peer_id: runtime_types::sp_core::OpaquePeerId, + pub external_addresses: ::std::vec::Vec< + runtime_types::sp_core::offchain::OpaqueMultiaddr, + >, + } + } + pub mod sr25519 { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Public(pub [::core::primitive::u8; 32usize]); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Signature(pub [::core::primitive::u8; 64usize]); + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct OpaquePeerId(pub ::std::vec::Vec<::core::primitive::u8>); + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Void {} + } + pub mod sp_npos_elections { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct ElectionScore { + pub minimal_stake: ::core::primitive::u128, + pub sum_stake: ::core::primitive::u128, + pub sum_stake_squared: ::core::primitive::u128, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Support<_0> { + pub total: ::core::primitive::u128, + pub voters: ::std::vec::Vec<(_0, ::core::primitive::u128)>, + } + } + pub mod sp_runtime { + use super::runtime_types; + pub mod generic { + use super::runtime_types; + pub mod digest { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Digest { + pub logs: ::std::vec::Vec< + runtime_types::sp_runtime::generic::digest::DigestItem, + >, + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum DigestItem { + #[codec(index = 6)] + PreRuntime( + [::core::primitive::u8; 4usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + #[codec(index = 4)] + Consensus( + [::core::primitive::u8; 4usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + #[codec(index = 5)] + Seal( + [::core::primitive::u8; 4usize], + ::std::vec::Vec<::core::primitive::u8>, + ), + #[codec(index = 0)] + Other(::std::vec::Vec<::core::primitive::u8>), + #[codec(index = 8)] + RuntimeEnvironmentUpdated, + } + } + pub mod era { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum Era { + #[codec(index = 0)] + Immortal, + #[codec(index = 1)] + Mortal1(::core::primitive::u8), + #[codec(index = 2)] + Mortal2(::core::primitive::u8), + #[codec(index = 3)] + Mortal3(::core::primitive::u8), + #[codec(index = 4)] + Mortal4(::core::primitive::u8), + #[codec(index = 5)] + Mortal5(::core::primitive::u8), + #[codec(index = 6)] + Mortal6(::core::primitive::u8), + #[codec(index = 7)] + Mortal7(::core::primitive::u8), + #[codec(index = 8)] + Mortal8(::core::primitive::u8), + #[codec(index = 9)] + Mortal9(::core::primitive::u8), + #[codec(index = 10)] + Mortal10(::core::primitive::u8), + #[codec(index = 11)] + Mortal11(::core::primitive::u8), + #[codec(index = 12)] + Mortal12(::core::primitive::u8), + #[codec(index = 13)] + Mortal13(::core::primitive::u8), + #[codec(index = 14)] + Mortal14(::core::primitive::u8), + #[codec(index = 15)] + Mortal15(::core::primitive::u8), + #[codec(index = 16)] + Mortal16(::core::primitive::u8), + #[codec(index = 17)] + Mortal17(::core::primitive::u8), + #[codec(index = 18)] + Mortal18(::core::primitive::u8), + #[codec(index = 19)] + Mortal19(::core::primitive::u8), + #[codec(index = 20)] + Mortal20(::core::primitive::u8), + #[codec(index = 21)] + Mortal21(::core::primitive::u8), + #[codec(index = 22)] + Mortal22(::core::primitive::u8), + #[codec(index = 23)] + Mortal23(::core::primitive::u8), + #[codec(index = 24)] + Mortal24(::core::primitive::u8), + #[codec(index = 25)] + Mortal25(::core::primitive::u8), + #[codec(index = 26)] + Mortal26(::core::primitive::u8), + #[codec(index = 27)] + Mortal27(::core::primitive::u8), + #[codec(index = 28)] + Mortal28(::core::primitive::u8), + #[codec(index = 29)] + Mortal29(::core::primitive::u8), + #[codec(index = 30)] + Mortal30(::core::primitive::u8), + #[codec(index = 31)] + Mortal31(::core::primitive::u8), + #[codec(index = 32)] + Mortal32(::core::primitive::u8), + #[codec(index = 33)] + Mortal33(::core::primitive::u8), + #[codec(index = 34)] + Mortal34(::core::primitive::u8), + #[codec(index = 35)] + Mortal35(::core::primitive::u8), + #[codec(index = 36)] + Mortal36(::core::primitive::u8), + #[codec(index = 37)] + Mortal37(::core::primitive::u8), + #[codec(index = 38)] + Mortal38(::core::primitive::u8), + #[codec(index = 39)] + Mortal39(::core::primitive::u8), + #[codec(index = 40)] + Mortal40(::core::primitive::u8), + #[codec(index = 41)] + Mortal41(::core::primitive::u8), + #[codec(index = 42)] + Mortal42(::core::primitive::u8), + #[codec(index = 43)] + Mortal43(::core::primitive::u8), + #[codec(index = 44)] + Mortal44(::core::primitive::u8), + #[codec(index = 45)] + Mortal45(::core::primitive::u8), + #[codec(index = 46)] + Mortal46(::core::primitive::u8), + #[codec(index = 47)] + Mortal47(::core::primitive::u8), + #[codec(index = 48)] + Mortal48(::core::primitive::u8), + #[codec(index = 49)] + Mortal49(::core::primitive::u8), + #[codec(index = 50)] + Mortal50(::core::primitive::u8), + #[codec(index = 51)] + Mortal51(::core::primitive::u8), + #[codec(index = 52)] + Mortal52(::core::primitive::u8), + #[codec(index = 53)] + Mortal53(::core::primitive::u8), + #[codec(index = 54)] + Mortal54(::core::primitive::u8), + #[codec(index = 55)] + Mortal55(::core::primitive::u8), + #[codec(index = 56)] + Mortal56(::core::primitive::u8), + #[codec(index = 57)] + Mortal57(::core::primitive::u8), + #[codec(index = 58)] + Mortal58(::core::primitive::u8), + #[codec(index = 59)] + Mortal59(::core::primitive::u8), + #[codec(index = 60)] + Mortal60(::core::primitive::u8), + #[codec(index = 61)] + Mortal61(::core::primitive::u8), + #[codec(index = 62)] + Mortal62(::core::primitive::u8), + #[codec(index = 63)] + Mortal63(::core::primitive::u8), + #[codec(index = 64)] + Mortal64(::core::primitive::u8), + #[codec(index = 65)] + Mortal65(::core::primitive::u8), + #[codec(index = 66)] + Mortal66(::core::primitive::u8), + #[codec(index = 67)] + Mortal67(::core::primitive::u8), + #[codec(index = 68)] + Mortal68(::core::primitive::u8), + #[codec(index = 69)] + Mortal69(::core::primitive::u8), + #[codec(index = 70)] + Mortal70(::core::primitive::u8), + #[codec(index = 71)] + Mortal71(::core::primitive::u8), + #[codec(index = 72)] + Mortal72(::core::primitive::u8), + #[codec(index = 73)] + Mortal73(::core::primitive::u8), + #[codec(index = 74)] + Mortal74(::core::primitive::u8), + #[codec(index = 75)] + Mortal75(::core::primitive::u8), + #[codec(index = 76)] + Mortal76(::core::primitive::u8), + #[codec(index = 77)] + Mortal77(::core::primitive::u8), + #[codec(index = 78)] + Mortal78(::core::primitive::u8), + #[codec(index = 79)] + Mortal79(::core::primitive::u8), + #[codec(index = 80)] + Mortal80(::core::primitive::u8), + #[codec(index = 81)] + Mortal81(::core::primitive::u8), + #[codec(index = 82)] + Mortal82(::core::primitive::u8), + #[codec(index = 83)] + Mortal83(::core::primitive::u8), + #[codec(index = 84)] + Mortal84(::core::primitive::u8), + #[codec(index = 85)] + Mortal85(::core::primitive::u8), + #[codec(index = 86)] + Mortal86(::core::primitive::u8), + #[codec(index = 87)] + Mortal87(::core::primitive::u8), + #[codec(index = 88)] + Mortal88(::core::primitive::u8), + #[codec(index = 89)] + Mortal89(::core::primitive::u8), + #[codec(index = 90)] + Mortal90(::core::primitive::u8), + #[codec(index = 91)] + Mortal91(::core::primitive::u8), + #[codec(index = 92)] + Mortal92(::core::primitive::u8), + #[codec(index = 93)] + Mortal93(::core::primitive::u8), + #[codec(index = 94)] + Mortal94(::core::primitive::u8), + #[codec(index = 95)] + Mortal95(::core::primitive::u8), + #[codec(index = 96)] + Mortal96(::core::primitive::u8), + #[codec(index = 97)] + Mortal97(::core::primitive::u8), + #[codec(index = 98)] + Mortal98(::core::primitive::u8), + #[codec(index = 99)] + Mortal99(::core::primitive::u8), + #[codec(index = 100)] + Mortal100(::core::primitive::u8), + #[codec(index = 101)] + Mortal101(::core::primitive::u8), + #[codec(index = 102)] + Mortal102(::core::primitive::u8), + #[codec(index = 103)] + Mortal103(::core::primitive::u8), + #[codec(index = 104)] + Mortal104(::core::primitive::u8), + #[codec(index = 105)] + Mortal105(::core::primitive::u8), + #[codec(index = 106)] + Mortal106(::core::primitive::u8), + #[codec(index = 107)] + Mortal107(::core::primitive::u8), + #[codec(index = 108)] + Mortal108(::core::primitive::u8), + #[codec(index = 109)] + Mortal109(::core::primitive::u8), + #[codec(index = 110)] + Mortal110(::core::primitive::u8), + #[codec(index = 111)] + Mortal111(::core::primitive::u8), + #[codec(index = 112)] + Mortal112(::core::primitive::u8), + #[codec(index = 113)] + Mortal113(::core::primitive::u8), + #[codec(index = 114)] + Mortal114(::core::primitive::u8), + #[codec(index = 115)] + Mortal115(::core::primitive::u8), + #[codec(index = 116)] + Mortal116(::core::primitive::u8), + #[codec(index = 117)] + Mortal117(::core::primitive::u8), + #[codec(index = 118)] + Mortal118(::core::primitive::u8), + #[codec(index = 119)] + Mortal119(::core::primitive::u8), + #[codec(index = 120)] + Mortal120(::core::primitive::u8), + #[codec(index = 121)] + Mortal121(::core::primitive::u8), + #[codec(index = 122)] + Mortal122(::core::primitive::u8), + #[codec(index = 123)] + Mortal123(::core::primitive::u8), + #[codec(index = 124)] + Mortal124(::core::primitive::u8), + #[codec(index = 125)] + Mortal125(::core::primitive::u8), + #[codec(index = 126)] + Mortal126(::core::primitive::u8), + #[codec(index = 127)] + Mortal127(::core::primitive::u8), + #[codec(index = 128)] + Mortal128(::core::primitive::u8), + #[codec(index = 129)] + Mortal129(::core::primitive::u8), + #[codec(index = 130)] + Mortal130(::core::primitive::u8), + #[codec(index = 131)] + Mortal131(::core::primitive::u8), + #[codec(index = 132)] + Mortal132(::core::primitive::u8), + #[codec(index = 133)] + Mortal133(::core::primitive::u8), + #[codec(index = 134)] + Mortal134(::core::primitive::u8), + #[codec(index = 135)] + Mortal135(::core::primitive::u8), + #[codec(index = 136)] + Mortal136(::core::primitive::u8), + #[codec(index = 137)] + Mortal137(::core::primitive::u8), + #[codec(index = 138)] + Mortal138(::core::primitive::u8), + #[codec(index = 139)] + Mortal139(::core::primitive::u8), + #[codec(index = 140)] + Mortal140(::core::primitive::u8), + #[codec(index = 141)] + Mortal141(::core::primitive::u8), + #[codec(index = 142)] + Mortal142(::core::primitive::u8), + #[codec(index = 143)] + Mortal143(::core::primitive::u8), + #[codec(index = 144)] + Mortal144(::core::primitive::u8), + #[codec(index = 145)] + Mortal145(::core::primitive::u8), + #[codec(index = 146)] + Mortal146(::core::primitive::u8), + #[codec(index = 147)] + Mortal147(::core::primitive::u8), + #[codec(index = 148)] + Mortal148(::core::primitive::u8), + #[codec(index = 149)] + Mortal149(::core::primitive::u8), + #[codec(index = 150)] + Mortal150(::core::primitive::u8), + #[codec(index = 151)] + Mortal151(::core::primitive::u8), + #[codec(index = 152)] + Mortal152(::core::primitive::u8), + #[codec(index = 153)] + Mortal153(::core::primitive::u8), + #[codec(index = 154)] + Mortal154(::core::primitive::u8), + #[codec(index = 155)] + Mortal155(::core::primitive::u8), + #[codec(index = 156)] + Mortal156(::core::primitive::u8), + #[codec(index = 157)] + Mortal157(::core::primitive::u8), + #[codec(index = 158)] + Mortal158(::core::primitive::u8), + #[codec(index = 159)] + Mortal159(::core::primitive::u8), + #[codec(index = 160)] + Mortal160(::core::primitive::u8), + #[codec(index = 161)] + Mortal161(::core::primitive::u8), + #[codec(index = 162)] + Mortal162(::core::primitive::u8), + #[codec(index = 163)] + Mortal163(::core::primitive::u8), + #[codec(index = 164)] + Mortal164(::core::primitive::u8), + #[codec(index = 165)] + Mortal165(::core::primitive::u8), + #[codec(index = 166)] + Mortal166(::core::primitive::u8), + #[codec(index = 167)] + Mortal167(::core::primitive::u8), + #[codec(index = 168)] + Mortal168(::core::primitive::u8), + #[codec(index = 169)] + Mortal169(::core::primitive::u8), + #[codec(index = 170)] + Mortal170(::core::primitive::u8), + #[codec(index = 171)] + Mortal171(::core::primitive::u8), + #[codec(index = 172)] + Mortal172(::core::primitive::u8), + #[codec(index = 173)] + Mortal173(::core::primitive::u8), + #[codec(index = 174)] + Mortal174(::core::primitive::u8), + #[codec(index = 175)] + Mortal175(::core::primitive::u8), + #[codec(index = 176)] + Mortal176(::core::primitive::u8), + #[codec(index = 177)] + Mortal177(::core::primitive::u8), + #[codec(index = 178)] + Mortal178(::core::primitive::u8), + #[codec(index = 179)] + Mortal179(::core::primitive::u8), + #[codec(index = 180)] + Mortal180(::core::primitive::u8), + #[codec(index = 181)] + Mortal181(::core::primitive::u8), + #[codec(index = 182)] + Mortal182(::core::primitive::u8), + #[codec(index = 183)] + Mortal183(::core::primitive::u8), + #[codec(index = 184)] + Mortal184(::core::primitive::u8), + #[codec(index = 185)] + Mortal185(::core::primitive::u8), + #[codec(index = 186)] + Mortal186(::core::primitive::u8), + #[codec(index = 187)] + Mortal187(::core::primitive::u8), + #[codec(index = 188)] + Mortal188(::core::primitive::u8), + #[codec(index = 189)] + Mortal189(::core::primitive::u8), + #[codec(index = 190)] + Mortal190(::core::primitive::u8), + #[codec(index = 191)] + Mortal191(::core::primitive::u8), + #[codec(index = 192)] + Mortal192(::core::primitive::u8), + #[codec(index = 193)] + Mortal193(::core::primitive::u8), + #[codec(index = 194)] + Mortal194(::core::primitive::u8), + #[codec(index = 195)] + Mortal195(::core::primitive::u8), + #[codec(index = 196)] + Mortal196(::core::primitive::u8), + #[codec(index = 197)] + Mortal197(::core::primitive::u8), + #[codec(index = 198)] + Mortal198(::core::primitive::u8), + #[codec(index = 199)] + Mortal199(::core::primitive::u8), + #[codec(index = 200)] + Mortal200(::core::primitive::u8), + #[codec(index = 201)] + Mortal201(::core::primitive::u8), + #[codec(index = 202)] + Mortal202(::core::primitive::u8), + #[codec(index = 203)] + Mortal203(::core::primitive::u8), + #[codec(index = 204)] + Mortal204(::core::primitive::u8), + #[codec(index = 205)] + Mortal205(::core::primitive::u8), + #[codec(index = 206)] + Mortal206(::core::primitive::u8), + #[codec(index = 207)] + Mortal207(::core::primitive::u8), + #[codec(index = 208)] + Mortal208(::core::primitive::u8), + #[codec(index = 209)] + Mortal209(::core::primitive::u8), + #[codec(index = 210)] + Mortal210(::core::primitive::u8), + #[codec(index = 211)] + Mortal211(::core::primitive::u8), + #[codec(index = 212)] + Mortal212(::core::primitive::u8), + #[codec(index = 213)] + Mortal213(::core::primitive::u8), + #[codec(index = 214)] + Mortal214(::core::primitive::u8), + #[codec(index = 215)] + Mortal215(::core::primitive::u8), + #[codec(index = 216)] + Mortal216(::core::primitive::u8), + #[codec(index = 217)] + Mortal217(::core::primitive::u8), + #[codec(index = 218)] + Mortal218(::core::primitive::u8), + #[codec(index = 219)] + Mortal219(::core::primitive::u8), + #[codec(index = 220)] + Mortal220(::core::primitive::u8), + #[codec(index = 221)] + Mortal221(::core::primitive::u8), + #[codec(index = 222)] + Mortal222(::core::primitive::u8), + #[codec(index = 223)] + Mortal223(::core::primitive::u8), + #[codec(index = 224)] + Mortal224(::core::primitive::u8), + #[codec(index = 225)] + Mortal225(::core::primitive::u8), + #[codec(index = 226)] + Mortal226(::core::primitive::u8), + #[codec(index = 227)] + Mortal227(::core::primitive::u8), + #[codec(index = 228)] + Mortal228(::core::primitive::u8), + #[codec(index = 229)] + Mortal229(::core::primitive::u8), + #[codec(index = 230)] + Mortal230(::core::primitive::u8), + #[codec(index = 231)] + Mortal231(::core::primitive::u8), + #[codec(index = 232)] + Mortal232(::core::primitive::u8), + #[codec(index = 233)] + Mortal233(::core::primitive::u8), + #[codec(index = 234)] + Mortal234(::core::primitive::u8), + #[codec(index = 235)] + Mortal235(::core::primitive::u8), + #[codec(index = 236)] + Mortal236(::core::primitive::u8), + #[codec(index = 237)] + Mortal237(::core::primitive::u8), + #[codec(index = 238)] + Mortal238(::core::primitive::u8), + #[codec(index = 239)] + Mortal239(::core::primitive::u8), + #[codec(index = 240)] + Mortal240(::core::primitive::u8), + #[codec(index = 241)] + Mortal241(::core::primitive::u8), + #[codec(index = 242)] + Mortal242(::core::primitive::u8), + #[codec(index = 243)] + Mortal243(::core::primitive::u8), + #[codec(index = 244)] + Mortal244(::core::primitive::u8), + #[codec(index = 245)] + Mortal245(::core::primitive::u8), + #[codec(index = 246)] + Mortal246(::core::primitive::u8), + #[codec(index = 247)] + Mortal247(::core::primitive::u8), + #[codec(index = 248)] + Mortal248(::core::primitive::u8), + #[codec(index = 249)] + Mortal249(::core::primitive::u8), + #[codec(index = 250)] + Mortal250(::core::primitive::u8), + #[codec(index = 251)] + Mortal251(::core::primitive::u8), + #[codec(index = 252)] + Mortal252(::core::primitive::u8), + #[codec(index = 253)] + Mortal253(::core::primitive::u8), + #[codec(index = 254)] + Mortal254(::core::primitive::u8), + #[codec(index = 255)] + Mortal255(::core::primitive::u8), + } + } + pub mod header { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Header<_0, _1> { + pub parent_hash: ::subxt::utils::H256, + #[codec(compact)] + pub number: _0, + pub state_root: ::subxt::utils::H256, + pub extrinsics_root: ::subxt::utils::H256, + pub digest: runtime_types::sp_runtime::generic::digest::Digest, + #[codec(skip)] + pub __subxt_unused_type_params: ::core::marker::PhantomData<_1>, + } + } + pub mod unchecked_extrinsic { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct UncheckedExtrinsic<_0, _1, _2, _3>( + pub ::std::vec::Vec<::core::primitive::u8>, + #[codec(skip)] pub ::core::marker::PhantomData<(_1, _0, _2, _3)>, + ); + } + } + pub mod traits { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct BlakeTwo256; + } + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub enum MultiSignature { + #[codec(index = 0)] + Ed25519(runtime_types::sp_core::ed25519::Signature), + #[codec(index = 1)] + Sr25519(runtime_types::sp_core::sr25519::Signature), + #[codec(index = 2)] + Ecdsa(runtime_types::sp_core::ecdsa::Signature), + } + } + pub mod sp_session { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct MembershipProof { + pub session: ::core::primitive::u32, + pub trie_nodes: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + pub validator_count: ::core::primitive::u32, + } + } + pub mod sp_transaction_storage_proof { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct TransactionStorageProof { + pub chunk: ::std::vec::Vec<::core::primitive::u8>, + pub proof: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>, + } + } + pub mod sp_weights { + use super::runtime_types; + pub mod weight_v2 { + use super::runtime_types; + #[derive( + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct Weight { + #[codec(compact)] + pub ref_time: ::core::primitive::u64, + #[codec(compact)] + pub proof_size: ::core::primitive::u64, + } + } + #[derive( + :: subxt :: ext :: codec :: CompactAs, + :: subxt :: ext :: codec :: Decode, + :: subxt :: ext :: codec :: Encode, + Debug, + )] + pub struct OldWeight(pub ::core::primitive::u64); + } + } + #[doc = r" The default error type returned when there is a runtime issue,"] + #[doc = r" exposed here for ease of use."] + pub type DispatchError = runtime_types::sp_runtime::DispatchError; + pub fn constants() -> ConstantsApi { + ConstantsApi + } + pub fn storage() -> StorageApi { + StorageApi + } + pub fn tx() -> TransactionApi { + TransactionApi + } + pub struct ConstantsApi; + impl ConstantsApi { + pub fn balances(&self) -> balances::constants::ConstantsApi { + balances::constants::ConstantsApi + } + } + pub struct StorageApi; + impl StorageApi { + pub fn balances(&self) -> balances::storage::StorageApi { + balances::storage::StorageApi + } + } + pub struct TransactionApi; + impl TransactionApi { + pub fn balances(&self) -> balances::calls::TransactionApi { + balances::calls::TransactionApi + } + } + #[doc = r" check whether the Client you are using is aligned with the statically generated codegen."] + pub fn validate_codegen>( + client: &C, + ) -> Result<(), ::subxt::error::MetadataError> { + let runtime_metadata_hash = client.metadata().metadata_hash(&PALLETS); + if runtime_metadata_hash + != [ + 83u8, 136u8, 130u8, 96u8, 143u8, 113u8, 229u8, 107u8, 41u8, 31u8, 166u8, + 254u8, 194u8, 33u8, 137u8, 153u8, 215u8, 35u8, 129u8, 80u8, 147u8, 52u8, + 36u8, 136u8, 200u8, 65u8, 108u8, 230u8, 160u8, 3u8, 219u8, 139u8, + ] + { + Err(::subxt::error::MetadataError::IncompatibleMetadata) + } else { + Ok(()) + } + } +} diff --git a/testing/integration-tests/src/codegen/mod.rs b/testing/integration-tests/src/codegen/mod.rs index c8b8142fb0..bb1359fa72 100644 --- a/testing/integration-tests/src/codegen/mod.rs +++ b/testing/integration-tests/src/codegen/mod.rs @@ -13,4 +13,8 @@ #[allow(clippy::all)] mod polkadot; +#[rustfmt::skip] +#[allow(clippy::all)] +mod balances; + mod codegen_documentation;

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 diff --git a/artifacts/Babe.scale b/artifacts/Babe.scale index 57ef620553a0cab1396da17f87139df8452b06bc..f2f9c82508be078c7865f7b0356cb95c1e99e3d6 100644 GIT binary patch delta 22151 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 delta 21437 zcmdUXeOy%4_V-!)9AwZ@L0)EnK?Vgy1qB2J1r-HD^95hiQfY*vOag<$pi&yqty}i0 z9&Bf2X{A|LOC#^eUT)gW(wnBHrWIB`_gYz5TGlUbSl;_BuTGLAP&@b-Sus4tTm1hX{f|Bta4c$!-gG3N}ILWEbp$5E3GU3xe1g zZJnWpx1LD}}Cf7^SQlFi$z?N`P4kq?ak<6XL|%V3V@g zHAne-LIUhol2Yd>qk6jG4P|5BdCKmdiEvCg-E)=r30&549ZAfDR~1jsGG)HICtT1{ zpSax+qCiq3q$o{EcS<<~PHCANdxt6hUcDd>g=NacUTLI|C`rBVgkq)1U8aO3Cz5)C z)z4GzOiqFZEmv4df|#p8nycKA5>IaD8Au;D*~F8#_DO_^%7(sW3iM5c8A?*$n_)K6 zjo?w-sf|#rY)HKs79+n*xw&70R4>BQ8l0c{B|wwLUe@0Y_iCvh`@5voqTU680dcTa zxqrZNSf|y$C@oG}FTzHx^qI6cczR9xjnZBt`v>WLpq~N*?;@F!)^T4B9I$5K^~#b# zgQSTP?AMBgWb`3ZxcIJ&L^4~_h9E36Nt!Fc9+stLW#(K_+9Sbnt-#ov0n%Pwq#ViV zEA5wHuO^u_BvCpj>2OXAiNN7JJ0t^&l(?ZYp+s3c^cqa>ANn}{Tb27TOi*ljg)m(i zpEoL^2<%tO4Fb68>gO+#8|v&W59f6O%=px>Ta$`#dS?qIIQ2RS6EIyWl(M;8R3uDC zsz{inWDL)MIW3;ywPH7Y1_Pg6+6--hkyQldD4yZHT2>X761ZMDJ*Fq0vb~kwMQe1~ z$)Z@IPvkIjBDW-5l?S17@J0E;^*BkRm277$R49|2X;7sMiY-)LamGQdmU70%Kmbz{ z#bpqIT~es*jk0;=rD^&5+J;;$`{xQ;nVOTK*j>Ezb;T#DSI%-J>V?S5&~q`$>qM9 ziVgzd9(uk>j8g8JqZu+7f7r0e^?}-Ye2259o{gYQ zIWj34nw8HcxsyBQsqik8>jDpgvq(z_!YXCJkd*JfG(p z7m%w*2*M*cMK=f=v`nje^=f<)ipKbA>g1Zb`nuwph29z&8!i-qiCen}`=y}y5#CvgvwaNcJNTNHJ2FMV6ts>GKjgq83y z7q%;-OH;wFEGmshm2gL?JIW5ZGd)$_3Qxf2*XQ~R^fDFWl@q0j@S^gu&Ee@V#$ox z0UvqS{K@1gt+V3baLbRgzGadxuYHI~PK0JTD>IDcic@JB*dYoh6E0&V$rghPy^R#H z*r$4yVizc-wk-Dna9>xSJKUX>F_&%B2e3<`v@SV}YE2N1Dfi78qG5`qyVD>9PPUwx z6C?4Rva`EJURt)mFUu#DL{B`*@;&P~S|=T8Cn0SMMwR25U|XzFl`^{G3tp2wb&)LB zmSMLpkq@^_m3N7pPY?Abq0p+Nc{g=CiA$|jXhm3|!Y6j+v_ECd4VmyS<-BiDXK*d` z25RKGy7etpHyj|S>hr2UgH0_-H3tFy)pFkVCcrL5UEB+HwS2HxLZ0%8f5`C9QER#D zd{y-Uudn8FkfsR`RmT(nwj#T@N-k&oX^epaKkBs#J5GziS%UDnrg6P>agARIxQ3Sa z0&-o}MKd}0XET`{hJ&x?$ceVnLz1lY&~z)En`fo-idovF)t;F#C5XtxG13H$a$RQD z+#tzdZxE4PA4KFd1rbB;MM6OEXxK;YXzGwkW57Z6E*w{um%f) zgE2~Aok21|z#o(5pfra`J84qZJ){5x{4r@`A&Lu`I8+m}9wXyGz#kJ&MCn8(McWgr zW?e{TfPg4@C8Kp9lcG09>Caneme@wa zxqvFuS1n7zI(!TMHsSx|X%O&-Gof-D2-`qOBYnG63O0xe_yV4)R%ITEBRfE8ASt;! zSpJ4d#XG&BCGW@$nu_+ zmzMeos*`~?Ca}lEsj3!k3ozZi)Z% zR<2|mEg#>}40gRM!knw7$x8TLNy>(m^T4M3y7D7(99llUOOnX@K)1gGQOb|^)j*{( zWo>VK*WLFYLmjJJzdDYb0%iH?*J3ImWBRaRhMvW(+AjM&_LeDYM1-i!Z2q@dwtnqg z(hlI)^gAG@fxa_Sj8iVJi!{?|4@HqPpp1Sfg+06vC6TkB-1AT}IR`DzKV*}jvgPGR z-^7P<>l2@ngV5rAG6S%w4{aKRynk#;k85Mmh`OzY%M3dzV)H<u^}H95)WtHp_HpC$(+p%tX*IQGt|ab7v91^;VXK2&0%ge70^1gNBY(7KzO0PeIr(ec1rd*MglarY@Y?#5m49e}>`eC8}*_NuCB_T@A zv$-UUC^gT<;hMPX*7+g9zOY4mcKYiR;B1EQlB}E|0%T)ZZ_UE8TG{XQRoIn1suRn8 zpb`<9TTZ=%HQ5yVD=mDBPEJKrbct8nD)E?-inBqdaD$r9S9fd6&##ns((*f$rGGz$ zwM}^A4Q@p+TPI_GD?wwj>j5Y3&wUPTA^3tr?|cCX%1eh5AW2yq<7_#9C|MN4NI2bb zlte2B<74{dgWWknUg#-rkRY7fwwle0bI&v~D(N|Z2{JC-#KtzKNTRdS6!&2b;= zN~n7o$%xFxogasy2%Jo(pdu0?lnqCnO8U{5xvgMxPYZZzDm?xQ8}HU=0(e3Qpiy8p z5L~((oAW=;L3C>y>Qqiefp8%}0#wcL-a`LY*|famyG5q%w9 zzsbN!HR78rHpGk1J5AQh=SPyrW^FC-j*RlMd1j-Bvcy=lNmIYO53VS08Z7pObmhXu zc&xbV_b*F0h4x<>^4pn3bkWe~28+>{f7O|PN~9m5YvRP@uykx_r%WPbD$Bo!H|_JB z|CNmr^N5|^+#TZ9PK88cNJ68Qc&h5R66APWq*B5nXKEZht+~Eu$@Hf(;U+9fLB%_FQ~6657<@G4H^In=<@C`!Pp$J zW6{6#CCOucuy}AP1>#)3xRn-h0Z)b4Jrxz2o6M<9mUfw&WGkqutQwZeId?#ek&Q5%hm*zQP7EGa^#X?HsC6H#q3?fZ~*#yt#8Jfjk#?Qwk z{5%M5Zv`Huy@7^HxJ1~AJxV*H%LJUMGt=DD`k}4QPv=1_VFs~{THvk0^G%?kY@r{u zNv+2KWs^!k!`UC3n8qzQ{irULpfc7u90qQTlLTQly*?KD!CYGV9&wDFOYDZ@!lmyd z$;^}E3Do1k1@)ST=!d)^*>eS?(6StbIwxC@F)7(*5Nxhj>w@dFE~x&mx?pj~E(l@? z)pTJTBn>mh@{cuiu?Dc30j#I5$3X#{q!15@e4_pgHrmq#&*S5W3(lG{JYqW3?-D@4 zAyV&1gcSrDXh<&zwmmU(V=}}+I$hBVl3@jXEg6P%3dd8ur-**k3zlCoLuz=ruR;#; zRRAwxIWN$Ie$-n`NIuVqcWiY z-2qp6({Hy?{b2}9g1#%->{ll{>{ocyM+>uwR_DTGxSeJfz;IYeYYQM1)~o9ZpaPKm zWdsc9VMq5?#{4Q@`67Lt+Uf9-kU;JwboNLbSJbj2!Hti{MuMxeVc_0Nl+KVzRud&3 zdXu$8xgMNZtBL9V%a~m2SzIrd%CevNrkG`5dZ&c7I48+EBCI3IX6Vy3ShQYwZd+ga zz_kpv9`oe{ZpFqJ^W_yw&uw`oJi5CGoVns}RuC%2SVyffUJQ zgWRd|LT_Eb@A2zKgR9!JtZV`LWz^^r_!~imdTc!W3eGEJwQJeFnxL%~ddnn;;aXgM zb`tn-0nwhN5DSHBZYewm@mHw8$rY4#cS8TR3_7FQPMHcR(5zlP6#zXsbjMK9sme3p zG~u(CZkUa(q@Aifi?xTB*Htf*>G+qm533-~(viYdbo95!^Z==u5h0MmCXn+;r zN=5Bkg$7`iMcbFk^DQbI?bm=sM#YED!zaeh zq~2=JLfNXt73hJ^rhx1>S;97MM<(q+#mS~irf6A`J2Vxxlk6nIPQ59|=7FPe7xK}y zj;^>&NqCjbDUHaIggr>$K@KH@C1Ecst`XUi@FereF+q+b>_dGZe;0L zEzSB>jMI{=Q^j~K$vRYYX-U?bVuF@rT`Bg|lIbj&s3kKoNpNN4h`|S!106O3oD|s2 zc`SFg0#U#p^EcsADx~w~LyEIl#Klnp+2eGhY^+zVLWNz-q)ys0A9spzJe^SvQL%XX za?Pk&RO4G(gD_lUWx3SjMMrrnom&p2Fp)l6j&^CQdb%9CFr|4;hJUo#SX-I(5gB3+ zcxzkLZx%wXgt=0yU^eEWQ>KcsHcu@&3DAkHK3NTG01m6UK1esb**E*a-rcavqx|(% za$S+S&JW+BUgX6W`1}i*4_tk=9{$JBmYPzXqV8V?{m~DmUc3qB0@|!oSD-yKgRWYE zyJPUpwRX3t+HXd~R$)DF!<*c1GSz-#Vm&)*66|fy7Ef70(&v5OgoL@>E;1gD`8a+ zJ_Okrt!bl~VK7O%-@*fg9h{7oD}oQ<$>`)L(+r4K`tw5&7lHSfLB-HqrhOlV9JC-- zJ%V!H4*W*mk0}U=d4C&}B+@nTz;yCE=M_~Hz7U{blH`m{*bKs+J?eAuA zKL&MKa+~$z#ZzND2d@`b46Y#dkZg84TH$*igF=VVgW3AE3Eq0*rR^@7umLurmyy1< z0k*Mc^+tFD7SpW9VHjGb)sMq@+|}nj0o?(gHBX{tg;wePo8UdDrwcaYfr{_t+crZ4 zn%u8#M%$D3(O;i}`;B4Uz8zQB3X!gU25k+y`t}ys_#2`v&%jJ#WwmVKAHrikqliOLT#eJXwgZ{kW5r$-W86GP&cZT}wcIa(Xo35fQ z)2xnt0p2lIqRz@y;Z_5(&id#@*silWh5PY7^0#_Ib-oPW0#zP^{@NYV*SLtAXy&Uh z(eMN40VsSKzw#=4f<8$4>sx5@aZhzL9k>s|(Jmgj5BdaWrUQ24abdZdyBppN{p~U( znB~rW(6v+BEQzpEJ^T(NO8stcGpkm1oK-9NtXfH(N1=az?P$(>x835=hrl$uY1L6& z_1Y0Gitav&zWXBez)|Rq{yy4z9J>YmN$-J!&!P~`GNmCW;6XgbJ$eGBArSiQ2Y}}V z`u2yo{8$$|)L%XXbg$azgj4VpX3YBtO;04tKE~Nqq%Qdw(xBUF(T?m zKxfukF30Uk_H+5ki_k5`^!%h@xia0ydQ$!6BK*X95(~ws;XlIPST|_InM)9AO2nUG zph=Yc0{80K9Q53;_;UUp?cVj|&UkXvkcMd8qqUq1)igq$(kpU?1|I@+c~l4)uQ%d~ z^2clhm#_xWN!@nB9mGL5$4-9zds1CsCm3tQyTiocPzQt)dk1(9bx{OC{luG2SN9;_ z8R>^3$=7-L$av+D@ET8b8)tyC zuAzFquPS&_xhv#yJU~>{@f(zgQOhX2Kw{|ScoM2!c98kzP%MeV`&1p?$p4~hNcPs@ zWxVf3x#qC?VLVARYNioA$=e;OP?rxRV~uk3gF&PV+GU>&B3^)XbV?@4(Kjje=}huG@SrR8=E0;N zpv9P>JNES(N+(_*EDTg?mm={P3etWvar)(2*%LUdUd$$cCa|8~G?Zka%6o1oiN(!s z|4{M{SY%5c(UxD~aFPTY)$-wF58_l)3NXwHM{L>%62Qm45oBAxjct_jChWp?Tm2@k zlsC~wN0I@ifBb3s?np8WEr~sQNF;TSVylch6Go0AX?=6JE-ycT6M^Xb$s+@%q*0OIgRYV4`v&mc&w=Oc%j{c3 z6fC38sUa&cQb+y3M=)fLkE1=6IkW2OYip|-?CR;oL^UK@kGG$J=*cOU_t5lL$v~r< zqXTRk3z`*pf(V{z$@9GxWm>sbHEs#H3DD2xO%uqgLw=J!sTxQt|8;hJ&RZwX%21bH1VCik>?Azn_l(*hVDh4%hl8qt8W zUeky+CtlFv1^s^7coRubn;LNOw3DbP>1>Xfw${(Ewf-s4dm2$01a%!A9fG^gg%$|f zR6gxZ-7<{h1aqUGRljK@cbT=anee-X)4Zre@F2plUJ%tow~~`>292QzQXfCvhURcE zvJNwosSgzoqj*!JH^5LGF)K+%d)0CMJ!FEJQJ=PN-b)Hhp5uPJJ3FZMxgR5S^a_L4 z?0=;`{8J(I6_+pVQ=SY7)lhL{^=bZv8L z3vrY0Mf&R&lGbZ^NX%TOC*L;chy_-;V=!5i!E2!Q~FlPGqN~x&qV$3Y< zJItZ}`7hR3wpHJn>DO7G&X+`>6OSR}d$y4m+jLHcImfi2irTP!x2rMF6AVn^V1qTF z`b!HbK!|GoU%BdgN&PL=w`Ui*!>EGJc^PNpadpwlq}k-L2L7%(RB_{NyMOk|^5e5Q!bo&MlNN#)s!Z zEqn!IvYD62jn~X9{-y39z2OkHXcxWr5a|iW>DEJJFdXDnCB93#h92SWN1Az~RVm9L&zb zuqq9mAkc_IB$~c@gkX3MeGd!bbZpZc7G;0R!W(m%<4p^yMi5T(3^U&))W=eRX`j#plQF+1^gL4s_}KrF*3dTj!MlR+6*K}Wtz9Q3xM#2MAG znW#m!A0>rQNxwZxhD5XrcoQ!1SKtC28fJJJE^FIo3`qPwCPcFCV?d&(51}di*)ig1 zwCnE&yY;~XR5}Z*nL7+xF$e&on~dqvzH=eGO&bJo>(kZW1|m2;T6L|U*Nc}p5<0X& z68eWp!TxXb6tv&YyJAk<&%5fNUph`)S*!_o6O`00$@pEb+M>B@pGJ-gvb zGOEHm8annpJWy#N3%!Q@#_cEwQN`sIbsoH|kzka}lEa2sm!~+J6X=2WNYD5r$%tsk z!H9+=>?E;JyI4rkJIZ;2^!@|wi~8g3qx1wxk-irpK;dbeKS#0EZJXGS{&0fiqt9vZ zNmNK}9Kve#`>2$}bP4E)RuZeWe8A2|=`^vG6eb6|3wVg(bjVx22lda5b&`d6M^GBoxAcr=6NmA&rPcUvek5+v`9>ox!E~g2*0M9s0qVWE<_%zug z!E_q>DO0mgrF@Fv8o_T)EwA)eRg|%hoTk%)&rs9a)!Cnst68wnrq9U&D5eQtp>8Tx z2c9MUNx!@{Q@5bw)Ggpsw}3$#5o36q^)A!M56yS;XfNdn(Lm`M3Q+oK))N3h`QewtU?^p3Sk&5ij7s zuSI-@BOT!tUjvtV#4Enea`cbxix2urmDm%KS{BD_1967L<0t8c8jPsJIBi=Y#^~DV z!5YyS+1`1};*7qN#7y-3r-X>h$XrQzAZ!?33n)jz9;WL<#4+fqI2|HVz#F9OF&LOu z$DAZ-?s0f)Zqv^MbaSZK8~DAMdMZ@hB_Tp;7wbq|$3j7&1P*n0cM)%b?CR=pF-`xH zq*FP2iHn|!79H3!e0P)@79$Q8@dX93VsihWo1OmY%G#bVr;x7B578j1zP4F)&^nijM{HVp4)Jdnd4O zOUwATsAal&xtu;3FAn2AsNR&g#MOqQ|9?%8COwlW=Jzn{1vg%S*7`80Ne?Kc6BCuytz^DHH~R=&i>Fh2&lI0y zXPl$6MEr2Wu5P*(8>wwzv1;pe;$acZ_ibh3IOu^6jkK}oaMzu#>}uZT5${5NyO8}> z`lLt9>w)X4?I!?s`VHe(w&z#UVe`cg|3BzdG}eEt5exObnNIbI2l&=Zht`TuF!peW zSAVEQUBLOB-R#x|V?Yz5m2IQS-#0ZbKG&zU->MUi<)HuR3w5 z_%6m9Q1^1w@B8ULmy1P6y|Y4$p(9p^?EE}_1x|X670=Frr5Lwl>~7lqrk(z>LUiKw zpW|lnK7vP?&9{in&Lg-{OYY;+`_d`tv~)%~CtZ-f$H*bNag8`0-e-?ETB(Qw0M8Pb zRzC027x2`;*v~3rFS=n3D#h2D#6F$RBEDk3M-a}^Z<@rRjTqVvf@`ABk6#dBAP+np86-yYAQ@_q7|w&F%^)$H2gxwOJ+V=HaVAFe zAfq!fIE^tqNOv)5j?8Y-99mbC=GeNKGzZt+q&d29ljiUu1b3tULJqKpnSmpWG-ww7 zgn*(3Cd~mRHJS{Lu$M`5guP9g157q)4lu=}Ilw+9%>ni`=xh!!)ucJV#(pM) zBkXU|9N_?y<^a=7ngdKXX%29pNppaMOqv7CFlh~7qmXGZayY^)ljaBqn=}WQZPFZI zj!AQXLrj_j9BR@WV6I6sfEY8DXEHd#VJ6MHaJWGa;Q;eZngc8_X%29NNppZBO_~E7 zWzqiC- z(2aQtc(+vHC3rhgxSbIMjf};85!= z28X)DVsNNSg+`-W^&MuJnI(&3ZLk;|>WvnIL%qpjaHz{I28X)BVsNN8n~cURj}};7}j57#!+4i@~8jWHC6@hb;z&`iRbGtjf&cSl3%wIMzok z2FLoC$sBiZ$GXj8@NRw9VsNO>Squ(!yT#y8cUTM#^?8fI zpyK}DVsiBD=>?0yvF@}O9O_>!28XIz3=Z{0i@~ApvKSodOB$mQ&Hl_>j`d|L3&;A3 z#o*ogs>#szslQna4)ryQ!J+Q97#!*zi-Ay?{qefR;aLA}F*w#YECz?V*J5y}Z(0lv z^(}*urEggKECz?VpD`M>b591x`VT7$$NIL#;N5z_VsNMjEe41Bj>X_m4_OQj^{~ar z)#*4)wUj;85SQ7#!*ei@~9uL9Wo2@#?^{_o)(c0J~*hL51nQ!xz#kUvHVGBHCTI&Drrh;I6=bn!ZIKz9!T_spqd zF_zu806(YVb-eH(mg4z38-F28h~~0B>%{(T>j-aKM{J1p_qXWobz-J>U-%gGLPNgw z;UUCIQN_#f141~${$67d-lZjk1Yb>t;cZ5{NTV?PYdv^1nS>Ag!&Y`71rwxSh=4z2 zY$*}aL$oWHl%x>-t2q1Fuo`-egZi4Bq5^vD`9vhlc-6EbQ{rCh#fTCH3@6aStbUgN$m*>g4C^kq8dlw{A) zI9JK|x30W(r=@0|gCCyo+wwC~bE=jD|6*Ucd=9Hk(@6d|FE1cnI;N8SjiACh404#h Stkly`E!TtwzDLQyF8>!Tep+V$ diff --git a/artifacts/Balances.scale b/artifacts/Balances.scale index 07a25840548c462da0537a69e9a673d484ead811..4240467b3bbc56cd7ab737493775f5ee414e6ea0 100644 GIT binary patch delta 22119 zcmdUXdwf*I+5bE@QyHzx8PUsAe_j?q3x_2#JUwJg=T5@pEn#HJ^YZdb-coiV2Qd zHK-5*${Yg3Ia_V^tyBpmB$5!t;fQt;2O+%(i6(>%!0fU3k0_DObmByQ3Q57L6_Sq6 znIw~cnoE;1oikPc+=3F!MpD4hCZ4jfG+=2L{v#2L@CPzkBAnEp$z->| zg)(RdKO7Fl+5;aXW8L=;W4~5lhrVzmEBVpfY&|&nrqL`89Gyqs{HxNt65Cu&sE+WPePLVaMd_mp7ZWlKI}JM)yKJW7oY5Ne_*xWY4pc)Vj$Mn2DbcmQW>q28IDCZ6 z(f)i_ytZv%0=o=$Yb%l#YtBI_%nN(8J%bi$+Mr~(Q+s^S)$9+j&*0n~lg{2TQzK*3 z;A8DXTAg-dYytZM&KWrp;tG_bfLYv`b=o6w$;vrFh?9j>a;1z=?GXn zy^@@!%wpy{rlbs}3z)Vd@e1wblr&|r;ER?_PEA)-hK&$FUQSI@R#+*6(`cJ4ad>d5 z(#~L)QDS0RDy-9%q;1KuK9Hq=s;1vyq zFVhmzq&YiM`!+jG*{Q%$QLyu>9G${tTA?c+inIpTJXoYX4pgL1dy-@Uo_z!Gg% zUIjF1THb_#Mc|mKwi8GRwAC+H+XJNYWL`hOj9sIyOJ0Plv=>=|GqaI2iuGPpM4FH) zB3^Bgk`Jw&8RHwlT;Dl0x(s@wRHAc8ke~j6=E3UCiOdCSHlJe^n{Q%CaINul zip9eX_*BDgf`Qoj3Vu7VNLbCc0?W&-M(H-&=L_Nran^d4wWy7_Mj*4Ip~2VI5}eYA zt3|FL6mx6%KPk(}s8*(+m`SNoo9k770A(MzIY?y5YYl z6nj%-N}#o_!RJ?_=lMJWIa#kozCB{dMwF~2MFg^2{XXB)x`5{@)nt*4D2x}8JGBk@ z)v!g&Ei8sZ8~_G)jwqmDaoiMQJ69F{9^f~fQ;V(>39lEAT5xaVlty@(L_@l7=~5Mi zp#Nz=7J=x1*B5*qqHFPsK>kvXKM<^IQr(#2UT{_$4+M$=YJ;z(u}1>ASDRNdGM_{X z@d^)+Sa7wv{b~zVfs7rHFZg4}&S(p^wqfj;ftO2A)OTwGA*oY_|I^)!gBuN%zgwbx2h`z(?JOAcwDm1YCc zlFO2D#f~XUk0nq#&+YXzx`RHyIW2#qEiW5e_8Meo<79B9c zkY6EbF>(PhgI*IWdeI{CruOHuApAkA9h(OmJFgqdDZHblm*)fNoK;>7a9ms4IT(ot z$G-sh<(Y83#nT)Uli+0M@QI&^l%&eLMatf)LT7b;Xqkx(6mTcS*@MeZ`=Kg6(ScaZ zMJQ4ci(|HX6>0!l-el+4@XlZ)v!b!luLc5z`3m{K+!hP-7h|W953r+SjgCHva*B|T zwZ|rx;QI&G42CnE$|doNK{)%Sx2UV?mikroj8;B18PgU_-HJfDI|mXY8gcT3%H-EX zi3S)IXp5(RBFk$_X7s~GdS~oolEJ&ag5J=jO|IS9{|v6OF4BbndXq04+5=0nw83)< z;9uIzIi;|t^X56PQP``^oBt8)>l}aC5in9lbzXEiuEitT?-ve%Bb{F@R0RM2CBvq= zup?@H-Zr_**TQ$i0qFsg@g1P11hD}j2X>>3uJWo4B4e#!V1gfo6fRLm+vq|C3u1FQjHkOEX(_$d_5vgUES|(D3 z{v1n0PtXb=_z|g9m|7)LQ8~ucDI&E72!2Fr$1F^qC6ap^$)daH0wDMi$%`>{u}H<8 z1`E4IstN=@BGrSb9+BF|NNpCWD}dlfq_$ydn@H_zq_&IHYk=TKq^`x(wLq>Ute=s* zP9)z91V18q114|4N9Hh6H;L5EK=30{w_@s6ks4*B-X~JG0l|+*-HE9?MQVQ|b(ctu zB&a?uDN5^taaF5>V!vpd==Qo>8gN=>2HKkI0zvn3wM%PUk`;G>JY|JrUnBhP4+^#;)^r?e9d<^V!+Qn0cAfB{NP-vJ_zI>qKeg~yJP!RlSqgS`hsq6 zm)7h~g2UQP?qQ{eMTu8{;763`B1gKtiu8CBHW{-X)vmlFO^c{cmBPY#2J+43&R8lA zFc917ZdcW}Iv3RYDaxDI8dJsBCrh8f<4@<#D_;RPrun>GaH?}ja}k5Lv<3A;JD+ZS zR7#(O&Nco!#pz^V@D}`gZ}87>y7TI`2n8y&ZRcXOyV_fzTKjv)P^>KHsy_g358q$? zZhST5&Otu3b#=-L2O(Qy8bce?u1j?X@lgzSOeU zWx>~-)7SM;pt|$2n_t2&E$y}s;Y4Sz+Y11JmTnw{tfq~*iQQBwW~x%Sf{tmAZ5);T z9zY5n0P8(oFA9iyudiXb+ISM8>wP{iA@5-)_BsLN1Q=&UEp3xyU`TMC5@T|loR&$+ zqLv2K5O9Eq3nJU_RQRdLLC9Gg1=pai^Uttd+Ebgx$DYRi>wdO94O*`|#t%QyBLO+* zpL)-Mw*QX8SfIvP5EW$HF!4NzDppY^(~dC!?Y+D5Xav<9yd0j^F69?Ply(cBj%w&J zUMUjxKvqH@>|V9e*zL!T4Q=;*sP;EV>8_eYX@j>EN=*T4P`6~8&vDxJEv1mCy}Lzh zTmRfrh2T5O@9v9V{6r&*>0EfvbR7Q9U*78kNbG#^zTV>N)nDuqUu_TU0Ot;ft}ZMt zAy9-u+S9VEu2uDWe2qja*zUxFmu{yFc68S4%)=_RH4k>0TVC};L!qnF`%ptKgOQ+p zwEGX3{n^J3iA`1N0}pf_r>K=(^OO_!u)Cgmm?E}|_f;u~cisNntU2ItPE(h;8}RTF zE!8_i?ZYMHoYLa;wBV67UwdbNdYr&$9Jd`_wZ)tURGW360QcDI4`hz$f|QUnK`~j| z>h%O8!GS9*ECC!X?)EP2=z&q-(%`ulQ&I5D^!r+;m>Nd*Y;~!Mnr35LGtN=%#B)Ov zcl21@JB-y`piO^!(*H#(!YL&emsJ@hWi&Dy&kOQ6708_7ZJckMti&1$DVF8bp}D?I z(&(8qtF0^D-Zu42=f!8vFdR!)*Oe41I{9Y_rXrP@9q{5f)zzbFf6`paQ0iCxZ7p@G zsf(QK{M%Pg&^U7x!G#)pU8B0Rt)(GII-mHu9iT!R@$IyJrfkP$T&1o3cC0zee*f(i z__XJ{L~ZJKs_~R!rkwij8AJLVGU;o+e^Wknsz3Arn6lXi)1YSavrq|#bO1;Ki^3z$ zySPYrxdM4;3Gym%1%n#?YH!HR-l0rKVG;?>fEujxG%kWzw1bIrPQJRL&9l48d0u!g6$Dho~>ey)0BsTGkcyZy%u$NgeA^VVJxzMMow7jX~7df zu)S`X-`&#K>JCAPRI0&1HxirVlDnvRvQny11ehEN18sfN30W*8Rg$)b_NQ*j_Z+72 zm$<2YRxzblrZ_*lgKem0;uKP;sfd>pp?yllF=P{PRlA4>AC<@j6x-Zv^ur>fA6EQV z{m|C4AHrB<1=W_Y^s%7<{AsOiGXSm-0NZ&R&tH8Vc9&RRdt0F+1@f!VeC`$ym()J^(Ud zEzcVSCB35Y@a8V!GooS51v6wvH~1RWu;V7k687;F&*5%wu!vtd5U#&a6%&T<0M{g} zL&zGE8`UVGKB6o!%6K8zb!CS0=!Fcv@P!9g_NBjdDWi%boB` z>#!snxt`BTg7of<)E`TNG8Tf^Eyqu8rGEWjD37>M9Y495x|#{oVfb1au1TKhu>s&| z4#mMb{--RM0XOpz!@wo2Q$zVx!(d+zOO?K4ILZ_$i1>rq@QgfFrkWWa+LnW&XanCq z0xp70{LdpG8+PiwM?xbY>2<-#LAaqozM&qO(t+?@E=YyV{ACwpq15`+g9t=f$uzqe7pee6h zPbh>e1y@XY2~PVn`eh|>fTGk*D1#rs>44JN>M~Ct=y&_go!PMz&*ggFMYw`4n2cw4 zV?pX&3-~e1Qs`Qpy<#a48hSf4FiJ3KfVMG%JJ0?R>Nrud-(U$&~*ReR2<8_{LEA+7{8xF zbS36S9np&lkJqLhtJHd%ibl;VXp^yOv)kj{&lgUE#4=nX6Qpr}oMHM$8;3YYc$(eI zRJ%w@aFr(*RQ(o*?A4+V6r}G%2`k3AnAuL0eTJ;tPxn)@Utk{9aS%CZ^F$Lvfg*e{ zxHI8%p+XL00&4I`j8@1iqMSh#DFlsK5yo?|LXKcUFM}vi$WbJE8^joeyoE%hL6j=w z7!rL9qD&$0A<>t_idW`$DC7i^{UnJHP9f!x6oNR7RFtF;#ivO1mlVP{i_`!~A&@VT zik1{2`5LK#l0qowkQyW@!~%HUkC9ZF(ji<J583SyXFkHs)8ukj8F}Q|t!etDs zVTo`VqiR?kT*ixU|X`-~ksCPXDp zVYrqSLD3Xb)tl^5y(p2Vn0caRK_jg(iCbntEOhbvXQABf;`%I@3A1?QY!vie`bD#$ zpAe&$%z@vAcHJ(ax?om)$~-7l`Vwh9VXhp$XFeq8+b@SQA7KNnv+kQBHp*j=vzXjosva1sG zKdpp^M6RRLnNz=eHGB~&{@@x|2(VbEKLa#x7~PSm*K{CwL+GRJIMC3fHezSE_1)J3 z`bP}Fk)cgSpbyK#F;A|3|8;;}6Y9!wp&AP73~w^gFTVjcE8yl`H$lzvb%zt{QMdE(f$Oo8 zUA*E}NDe7AHMgLGBWwXNy(BiS-2xM1ra}4~cVPK+cQe}WqE|KHsr*MP8Nxemg^@6g zKXNNf`Zq5d!hgOVE{W|{b*y_SZf5_k?$sM0Q0QUdT3a*gp|&;S;=`^JUy3lLuHdP+ zK?Q=TyA9&t2yeR$w!sOWa63GPUoYJbhoOzH-w0z-@qKwCbfISO^d=Yp`2CwZARWK? zX${_ncK-aGsNWew&Ug;jVx5P|M?UQ3(Gbn z3bLC~ESVl*{U49POT8~tC_fQrloc$|y-qlWD z?U~0A<9&mk);ekZ(Xajkw6cWoD45K!RQe7?iQty#<1kIsy7hFO5ZKIZih)~Bkr5Epv zeq$FrBx-Vh1J2&&*+Gc)P<90Qyu5D+^mUt2{565O-X z%}Lau(B+}`>L7OB0rEw`*oj%pCr;Fq1NiJr_jlve&nvfnD?Y!I+%I@PxIT;(EDga$_&-N zO{04NTJ_x-bSflvo$qIIqQQJwu*tCICu3lM=oMR=K>MLzZB^aDlX~S)`g01~_^Vm8 z5arbOSu_!MDd#ZyI@ly+Q)3z3oF%7J-FAar zJ$Hj$ayQt;&*ajPRy4zIo}Nd?;>HXeG?x3&gJMq5^?7tE>bHWQXm*>g2B+Fd-B~~< zis!?#waf&) zvskPGnGJg@Jev!(yoTj_mt686L_qCa^!Fywo6Hh1{Pk;l&VL=n!((O+ zd2^eWm=4)T5X(IIi+a>Dd9464-M zyN_m2{{2EalfO2fR#=VIhhIjwo3+M92;-`(#t~kPKJap?Av}HOB6O6)5q;tC2%0%9uBfNDnOHgY?55%f*3d|=Mk^S9U!@pc z%A=Rk_(>smcD6eh^n2>tFb2c&Xm?va$9w2f#|?dU9~1Ghu|4Bs_y1VJK_j88XNkkz zUf9*+g&4qs3iK=d@?|(jrC5C4gVXN_PrHGp>c3q^(V^Ruf67BY4RxWlI8Tek`FW_1 z61p#)6x{5CbwNWnaqnuX`ch9=L63!A@Sj(5Wx&qe zW6p{2A9*gUZ=)wfrG{)0OIdGSMbpC8^RBDtw9s2|t_)a1@t8>Xrd>3)zmU3h=tL67 zvA|K?cMaWS)+OcHPgvV>>(5(DpX^?e$6inWA!l4nq!ax?OFheu=r}HDpSR|rB?z4S z>UDGgPVZaS$(1jKQMjbI;wCyO)ZN&Qhi*YpYSx5~;&4G%WHd{JkBdcRiH30o+n&}Z z_2cX5&I>I4boiQ2<``-dk`WwbM223pk>ZviLbIKY^96WJn0)z>;(PC;7*T38{l{~s z>9=$G&rrKCx79-l`s-We=ydBEX(%x_m~;A`d&IUc`?trW5fVm6L1lR}(kE}H<%m|lVTTku^ueBDr_aOmMo|{0QU)B;J9klx|FFjP0#fMEBNviFuk5B5 zW6XlW`#w&emE~i2|0i*c5&rSxs12HZmhuG79Vx;4yPDnY^=cgk%QvV|3V&)Z#rWU! z#x}p<`6T*=Cn%n{&4RKnJ>^Mb2Q&6$K5Z}Ui|OCdDLU5aq%=|C zZ|Za?r1CFx%v!C-JxwQ4$l;egLr2)$9na9GD1uwKpXQD{&p47l$=d8OJXP3A(yb-O zammH=SN2l}7Jhp_YQV?%m;32xILdPl(2QPh8J0Lc^8k(GD-PnHs}A6J9OM5wKyzIG z;XSdCDa95Z!r$XH&*2~)=Dz3f9Y^?{=cuz^CI%Kr`;5WJi#dTuccFryH`$N~81lkD zdyb;9g{M7FGceetTU!X_9WT%XUVeZ^#h;QkLswXNLQe5ppQl&AY5vLcs8q-urt;tH zFrRi4_-A`6XlJE@c9#1O(i}8%Do|u-KXn*J>_OzHJeoQb`I7HDNL?3b)7Si82kAr% zhrZ|qS~BpwfFN>?U-tr?8nR2GyIJgJ@ezu2RbYgXb>AaG;i)gu5qTIGVyJC^VV|KW zZK!ruG>hnK=t4(&H)+vzh{i3oaYDLZZBRWcRev`m;B*`1yTGgn-4hrBLL<=3uY?XwiRr)b z5Y5lOa2wMrF>+eO#NgYUJzI&>=HN@HEiU0HhiN8Sttt+qhB=cjJWL1oCt#IE2Lr$H zFwHT2`5DrU7e5q8Y*j;Jz>Pi$1tzHCaqL*zr;q0L4DNV|4o*VXowTNu6r*cD3!Bd> z47+y@uY8G)`3dM_{{#BuewpI@8EADks9*DQFVT_R8<5LOUZ&&Fv=Mk2r9?O5q`vz% zC@ENh0{myM(nS69SA;%a!0TS66`A3uR~f3+1of(S}_m;Whe{ zsnX~l9-%D&W&GfuXcoWf4O#%@{Lwe)FQ9@?eG~he@YXkJEIJ+6y-5!$(8Mo!OGKAG zq`rkQ3gIu#ZfNp&8|%bHiY9)|+cX*F{?@ng=!P|&`XgNmQ~2U{QF=_#Ti&4~Xij;z z30To{0#?WgSRtT|j}MuYqvZmXfxcA|_Skn(-w##KJKm)Uqe9s;gT7W{O=A?BQ3mk1 zBXEjpLOe1>*7M1`D5Yw6!g1=NHO7*S>8Vc6;x`?q(-RzMaTZIn-Sp+gN)rMh zMS9=&C=(~@{vXgZ{5sF{r8j&)r;7uzOxAz*7kWn+x$YGGAi_!ww}|cg8wTQ7Df-C2 z(`&=X*ScsULk~p37kEGj@~`VzCLYHJH?SO7pjS7rEjXuijGen&%&im8#ppAZ;*}8` z;>(t?C-Ez)iG3sn{2Tflr0DtI(icR5)yvs%kx2yI>3QGNeSqGLTN%3uee#i!6+s*( z{sv>tnDY&V7-7S|VXOextV?05(dxfbVHcql`h>#n<)@r1g>Q|(x*hyr1m0`$=*J`2 z8i>d4n}o4e0TEB?N}qzR;7C(v&O{N|veIM7n-vOV<1Gb~5^$G^uBmVNQ$$J$V2t0yK-yjAp1O=qsX`OCHV>do>6oDSUq%L({gv8LOX;W8YEq zDf}#gC38q*$ulqxGrcy5;YeBf!rt z4=L_?^nZ9-!t$UTYnG7SNo4&aT!t&afY>XET{*n1+iFYcA??uxh~l@M^CUI_T>$SS zv10t{pUlSK*W_fDfkB0G{Y*2A#?m-lXR3_r`MP8_){Ok%e@SN3(OXcE!v0T&68=@; zo^dROzgxg^28Gm&bo3#%`Y`Y)bd8ch^zi$V{Grk84%1P< zXBM&EMx0+9Zz*EGMmNHUV!YgSGw&>Bm*Us=#q3J_@|3W(QjT*v21`qk{^%Iyl_EWX z=a=FA$F02ISeC(mS;m&gXZMeR3A>J|KR=f30)B8DOXSy$V?zdqnxBu3g7%Q3G<1@` znZGcOW#@0ebv6&LjG+>MHYX9i)vyTXiny9(#J+A)AhV{;8}x`kSVA`Nq;kB6x`|IM zXCtFSIi2z<(`Nqja+X0i8^Slar|{j1!iL_bko))-;-50VK{C+CNmJ$7gJ3r9QS$Os zz=)>jxwY)`L17tUQK|&h-Fo31hQ0?p_{>H8MLc32&Wb(!@p)_{-J@vN-jLKcQ+TMv zivk?xv%x%lJ{zuA&li)B=zA|?N5%Jzmt&6@6Ev}xx*7wYc5&>#Wc~ex>~V&tpxf(E z?4zD$+{!+*gvE|T>x^qM#%-APZH0tMI2_5@>M9hmxNQ@%Tb4?7vr!1my4QVyn0S8F z&B_Le8Ti8T%slL?0ju?+l{-}@rkGX1>wc>tgvVXmT^+AW- z;T7zJ+-c$>M4b0Y{h*)q6-R#De2|6xPV^6hYil$)s`y1-{;4jEoHiIGG4n1;9iqH-`D1Ctn^?dB!8lcx9@5^EuQAK zW{kATpX6?7@dYQLrxiCuy!t-3WqAu8xGDm8g2fmS=VZevg3(s4xp?QWwbkbjs*U2x z{aZ@pIIi8zvLd_iz#HjlJjS2DnaY_fTFa z=_iy^%4y|O<*f3xa!!E=zGW@y9w)A4`TXs*xQV;gvXOYayn8MFIDmgG8_s`s2XdcW z%Z9*N$vwN44eR?QijOM1R)UAZjO*B#4%}mbq|_i4@s}-FkW1M5mdDJ- zELtLSShR!|WziB_e~Xsj23WL27j4lJ-awMxVZKlT9AssX2xCID2scAOu@)@>##yuk z7;n)MV1h+UfKH2+024`v+2TTpFv-dw5hh!-1ejvc5@2eG7BOfDaIi&7fN2&j0j68D z1enobF(kqv7A+ADwP*=2)1oE7EQ^)^hgq})I6OobNr2fFEdh4qSPY49ghfk)BQ072 zbXl|nm}}7zV4g)wfTJv00?fB)17HU!2r-H!!a|Fd2uEAA1XyIz5@4}KOMoR7Edh?P zXbG^?q6NSXLdqWfxu)qDv&eaTYBBmRqz0INqWqz>6(f0-Rvc2vDs53X35T zPPAy*g_A5=0<5%X39u?ekC6Z;TeJjtiA76*)fPP(V>%JQ6pJAdUTV>@3#VGN1USv2 zCBPbsmH?+)v;;UKM3+i{GcCFRV_FfwEQ=u#&bDaTg|!wf0nV{#32?4OOMvq%S^}JJ z(GuWg7TqBcE(kHoB*M!rT6W<=inD3b`?Ax4=* zSZ~o1U<1iCC1t)u*l05(MAc?Uj7x2X1i8#+NR&+^GbDfWB~Fi>MFPFjW=NpRZH7eZ zwHXp>v&AsCl@^;Jq55n_hs4@yb0pRkHbY|d+YAXcU^67tpv{m_+iZq}y3%GysH;dv zs9Vh)X0?^2P-1Pj84~JMHbX+a+Ga?oYix#udX3GHP=97IItnG$4vSMLv0iI4B-XVS z!`y4Gvl$ZV^)^F7y}@QksOxNog!*&)y`v@88|^F->rFO8LcQ5$NT|2i3<>pCi(&3M z>urXFx*^2qC@7LxZwqk>iX_(CZHC0U(Pl`fn{0-JdWX%BP&Jz&q26gTB-D=07RTIw z?y?yYE4LXE>K2DMq66)PHLqfgBW=N>_nv4!_L9xVopPfZw{e{htSnszO=1%m0 z&5%&H*$fGFyUmbL|Hoz+P&>#Dn6iXgEm7#eaL1=s1Mr=33ZpnF!!Wi+6)Qx z5y|Lqdke-$tdH7RB-Y(FLw4(9HbX*v+-69qPuL6zb&t)EP=94J1XSGrJ1vg6Jw0hN zB-Xt)LqdJZW=N>I&5%%^wiy!YKARz-K4UOCQ0*@$l~{jmXOUQ+wHdNo_gf5epE_VO zB-H0@hJ^aO&5%$J+6;s$^p6*8j>P(+&5&3R*$fHwu+5NAU$Pkz>dPTUp}ArG#%4&U zuLwqmaqh{NSbuA0kyu}~8M0envl$ZV5t|{QzHT!l)HiH~g!-n<5O-Rz1CCl8bI1Cf z&5&4sZ!;v+KiCWj^(~trp}uW1B-B6J3<>oeWXSVZVS&VY%+4aQ{>f&@ZhhBcm>bq{ zn<1gTXEP+!Kidom^?jRBB=xTkY>vcw!e&UUf3X=7>R)Y!gnH6uNT{bQhPh#VXfq_# zk1YM8aJ0nwv7JR?J#8~&w|-(XB-Fpz3<>p&&5%$(wHXrX-))Ae|NX<_m^)UN&5&5n z+6)QxGn*lyer_`))Gus?g!-k;kWjy}^pC#EJjMP#QMF(DVA7&AmnRlw)pf8HW&j1(?w9A@nZn!m^Q2&qcxUJ(GW6M zV`XUMyj{az_Bz6MX)KLTxSL%x_^ptqI>Po;_rV{5p>Lt*ID-FHV^zbBM^8elFwC(p zNJFX;i@$;5cLUm8@a84jg$DA~_p%{0E`oo3kPhKVce7#ji4ox@C0C74+%b_hC3G^& zIDh$b7Z9roQ`3{M-UxHAskp4JW=7@QX;pPqvuDqkT~{@I(u~Tg%DUPqmsg?BHWd+~ z!6zdEe+|jWr{9T2v1;CWCmJEU_-%KxSxC*g3mrLK{9kvn+v9rtXbAe5tQ=2nW@HeS&}}fP=isgSfZOn}xxJ>HFEW3cum_@XP22~& z&Ixl6m4 zaz{>tjKs(ao8J}PdZMV(gMRv8LzDT|qSzV1CTubZnKP&Pe9PNfu?sRMx*Mgb6<_F- zvl%Z(M&R$~h0Sb6D$!kuzXzoHXR94}`?Uq5<#4vTru*=c%S!w`1b+Zcf)nQWd^PTt z_E6pc+67|`qbuG!MVDuo{k1pAw);lGo`W8J6-kP^4Jcl(i~t%eq(MeO-6GR~0{o%8T!3S-6T8-p{7t*TeU-`iSb{2mn6t z0XAN*d4P>Z^FCkuKWsg%F6RSwuu+L0Lq>$7x@t9EfEK^};PzIk=uh(myZHPaxH9qT z_YQUw-kmMP9#*1&Ke2-)@L4-qen(VXOfcBBt!jhm zfI6j+QiC^VwaGcH;DCw3m*B4)1U!LHl^rsNJd@)uNt{)7WQVH9xD2e;WsvfBL(UCG d#>`1g;%Au*gY}%%Gu`dY*anD5jX2Wp{{b+`>$?B| delta 22128 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 diff --git a/artifacts/Bounties.scale b/artifacts/Bounties.scale index a8085fb34538b33619ecf056023a561605a9256d..e505565b78afb7019bccfcd1fea1e75411b1a2f7 100644 GIT binary patch delta 22754 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 delta 21670 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 diff --git a/artifacts/ChildBounties.scale b/artifacts/ChildBounties.scale index e37a39b4dcbfd35c42a5c7b0e31987eb4689fae2..de05c3284ce1c20c6f2ee6ffccd90d79b80b6947 100644 GIT binary patch delta 22856 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�cpOCm) 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 T^C+|YEmC}!u&`6|q3-_=sB&p3 diff --git a/artifacts/Contracts.scale b/artifacts/Contracts.scale index 550d0ded1de0dc92a5f31135708d5a3dbfe2429c..d420c382f5507a322e03428756ea8bb3bc6b1855 100644 GIT binary patch delta 24924 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 diff --git a/artifacts/ConvictionVoting.scale b/artifacts/ConvictionVoting.scale index bb031df4dc1d53904cccb84d9f605a2523feb0b0..2ba13cce6ab0a0bc3162ab2d9a3d819c7dff4a28 100644 GIT binary patch delta 23125 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 delta 22851 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 delta 22390 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 U?z2~VeNFZFtwJuk?hf_%Z}pdX$^ZZW diff --git a/artifacts/Democracy.scale b/artifacts/Democracy.scale index 2f18897fc98c757f9a9a4b7421a9e4030e0ed736..940aca844715bb37ee0ede2bfa8bf2b5e29c6da5 100644 GIT binary patch delta 23711 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 NNmDuvz}Fq^_Ft9o1Y7_B diff --git a/artifacts/ElectionProviderMultiPhase.scale b/artifacts/ElectionProviderMultiPhase.scale index b8118f686473468eb9c3c76286b1c83d62013612..ef7a83cf4db608d670df8433a13b6df224ebfc88 100644 GIT binary patch delta 23460 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 diff --git a/artifacts/Elections.scale b/artifacts/Elections.scale index 0476598e6c7fe21fee1021a8a9bb97997b494148..cb167ddc4b7fee9eb7017269cbf824c1c750ed81 100644 GIT binary patch delta 22752 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 diff --git a/artifacts/FastUnstake.scale b/artifacts/FastUnstake.scale index 5b1ccd9808d635380f5f3c66a1fdba1cc909d63f..ca12bb99584d82e7c44d8a26734f0d9c4fd562fd 100644 GIT binary patch delta 21676 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 delta 19966 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 diff --git a/artifacts/Grandpa.scale b/artifacts/Grandpa.scale index 2c62c7e567bf7d3405660e03ae631ad1deeb2534..76d6ae31856f7a8b2ab7d387f6f447e40f7e0f76 100644 GIT binary patch delta 21174 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 aCHgr6bul)gVOgE8vlU+!KZlCL1OEs9!U(_s delta 20589 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 T@YJOh-ljS{_16`19*+Be2YHmS diff --git a/artifacts/Historical.scale b/artifacts/Historical.scale index 7ab0bebfc938867caf4ae90dd6ad84210286633d..509bb4d366d6f428318d81b5f4820992900b518c 100644 GIT binary patch delta 18850 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 JjgW_8{u|{V#zO!A diff --git a/artifacts/ImOnline.scale b/artifacts/ImOnline.scale index 779cbec84d0bd784e0b2678c89b1f1a7943a7366..0db4d06e2224b3f518deacd9bb58c4cfca89af49 100644 GIT binary patch delta 23344 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 z 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 RvT}c8Eq)e$3KI@={(l{i3Wxvz diff --git a/artifacts/Lottery.scale b/artifacts/Lottery.scale index 1b9a38b486b7747f22c56feb4cc8d754a318c08f..51bcbe6b1ae188ffdf4d5b03e12c612ed448a861 100644 GIT binary patch delta 20021 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 diff --git a/artifacts/MessageQueue.scale b/artifacts/MessageQueue.scale index 779c49302b64038e75997571726526a7571f2f99..4a0f96367abe0a3651762c281c5eef6bf3533259 100644 GIT binary patch delta 22826 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 delta 22099 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 delta 24541 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 diff --git a/artifacts/Nis.scale b/artifacts/Nis.scale index 2515f516835baccb83e179b182ea632007ce7a3b..27ecdfed4a4ee7d3069e30b17a236d4e9a4aa8ec 100644 GIT binary patch delta 23522 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 delta 22636 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 NVSN#4(Gkbn{WlvEs!0F< diff --git a/artifacts/NominationPools.scale b/artifacts/NominationPools.scale index e5724d2a7d37bfd587732a46b5294b289ab1e2ee..645ca913e72191b1229b88b1d2b44f09cd467d2f 100644 GIT binary patch delta 23646 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 zt}263