From 0334ee460c7f0e794d7c9087e31943cef5267eaa Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 11 May 2022 17:01:42 +0300 Subject: [PATCH 1/3] Update polkadot.rs Signed-off-by: Alexandru Vasile --- integration-tests/src/codegen/polkadot.rs | 872 +++++++++++++--------- 1 file changed, 526 insertions(+), 346 deletions(-) diff --git a/integration-tests/src/codegen/polkadot.rs b/integration-tests/src/codegen/polkadot.rs index b0fc05cdcd..3ca134c6e9 100644 --- a/integration-tests/src/codegen/polkadot.rs +++ b/integration-tests/src/codegen/polkadot.rs @@ -1158,8 +1158,11 @@ pub mod api { } #[doc = " Events deposited for the current block."] #[doc = ""] - #[doc = " NOTE: This storage item is explicitly unbounded since it is never intended to be read"] - #[doc = " from within the runtime."] + #[doc = " NOTE: The item is unbound and should therefore never be read on chain."] + #[doc = " It could otherwise inflate the PoV size of a block."] + #[doc = ""] + #[doc = " Events have a large in-memory size. Box the events to not go out-of-memory"] + #[doc = " just in case someone still reads them from within the runtime."] pub async fn events( &self, block_hash: ::core::option::Option, @@ -1179,10 +1182,10 @@ pub mod api { }; if runtime_storage_hash == [ - 51u8, 117u8, 189u8, 125u8, 155u8, 137u8, 63u8, 1u8, 80u8, - 211u8, 18u8, 228u8, 58u8, 237u8, 241u8, 176u8, 127u8, 189u8, - 246u8, 174u8, 50u8, 174u8, 102u8, 21u8, 108u8, 229u8, 132u8, - 20u8, 6u8, 205u8, 13u8, 88u8, + 240u8, 45u8, 247u8, 87u8, 187u8, 148u8, 241u8, 111u8, 210u8, + 52u8, 145u8, 237u8, 136u8, 30u8, 227u8, 45u8, 251u8, 110u8, + 19u8, 214u8, 5u8, 61u8, 98u8, 188u8, 186u8, 133u8, 106u8, + 145u8, 13u8, 64u8, 140u8, 226u8, ] { let entry = Events; @@ -1432,10 +1435,10 @@ pub mod api { let metadata = locked_metadata.read(); if metadata.constant_hash("System", "BlockWeights")? == [ - 12u8, 113u8, 191u8, 55u8, 3u8, 129u8, 43u8, 135u8, 41u8, - 245u8, 198u8, 178u8, 233u8, 206u8, 94u8, 128u8, 153u8, 187u8, - 63u8, 159u8, 156u8, 53u8, 165u8, 201u8, 38u8, 121u8, 80u8, - 64u8, 93u8, 151u8, 48u8, 116u8, + 77u8, 188u8, 116u8, 105u8, 124u8, 67u8, 201u8, 169u8, 174u8, + 156u8, 7u8, 2u8, 231u8, 65u8, 13u8, 245u8, 220u8, 34u8, + 198u8, 223u8, 0u8, 30u8, 74u8, 148u8, 238u8, 5u8, 150u8, + 55u8, 223u8, 116u8, 97u8, 40u8, ] { let pallet = metadata.pallet("System")?; @@ -1534,10 +1537,10 @@ pub mod api { let metadata = locked_metadata.read(); if metadata.constant_hash("System", "Version")? == [ - 237u8, 208u8, 32u8, 121u8, 44u8, 122u8, 19u8, 109u8, 43u8, - 24u8, 52u8, 255u8, 23u8, 97u8, 22u8, 44u8, 108u8, 76u8, 62u8, - 1u8, 199u8, 112u8, 36u8, 209u8, 209u8, 0u8, 160u8, 169u8, - 175u8, 33u8, 189u8, 194u8, + 71u8, 227u8, 99u8, 177u8, 47u8, 27u8, 21u8, 48u8, 38u8, + 211u8, 225u8, 124u8, 13u8, 40u8, 201u8, 250u8, 201u8, 88u8, + 166u8, 105u8, 185u8, 252u8, 100u8, 95u8, 198u8, 183u8, 24u8, + 153u8, 80u8, 223u8, 108u8, 21u8, ] { let pallet = metadata.pallet("System")?; @@ -1732,10 +1735,10 @@ pub mod api { }; if runtime_call_hash == [ - 171u8, 203u8, 174u8, 141u8, 138u8, 30u8, 100u8, 95u8, 14u8, - 2u8, 34u8, 14u8, 199u8, 60u8, 129u8, 160u8, 8u8, 166u8, 4u8, - 20u8, 41u8, 86u8, 21u8, 73u8, 222u8, 151u8, 179u8, 209u8, - 74u8, 31u8, 71u8, 73u8, + 191u8, 57u8, 173u8, 36u8, 31u8, 180u8, 34u8, 23u8, 167u8, + 186u8, 119u8, 191u8, 175u8, 175u8, 54u8, 109u8, 136u8, 10u8, + 240u8, 124u8, 32u8, 83u8, 23u8, 22u8, 59u8, 189u8, 54u8, + 68u8, 13u8, 48u8, 43u8, 129u8, ] { let call = Schedule { @@ -1816,10 +1819,10 @@ pub mod api { }; if runtime_call_hash == [ - 47u8, 156u8, 239u8, 248u8, 198u8, 13u8, 10u8, 156u8, 176u8, - 254u8, 247u8, 152u8, 108u8, 255u8, 224u8, 185u8, 109u8, 56u8, - 233u8, 5u8, 73u8, 230u8, 151u8, 97u8, 125u8, 183u8, 4u8, - 202u8, 163u8, 3u8, 70u8, 221u8, + 245u8, 110u8, 85u8, 145u8, 67u8, 243u8, 213u8, 129u8, 139u8, + 179u8, 79u8, 34u8, 12u8, 97u8, 235u8, 40u8, 83u8, 27u8, + 186u8, 215u8, 252u8, 13u8, 163u8, 195u8, 198u8, 38u8, 223u8, + 192u8, 25u8, 201u8, 133u8, 229u8, ] { let call = ScheduleNamed { @@ -1903,10 +1906,10 @@ pub mod api { }; if runtime_call_hash == [ - 150u8, 70u8, 131u8, 52u8, 50u8, 73u8, 176u8, 193u8, 17u8, - 31u8, 218u8, 113u8, 220u8, 23u8, 160u8, 196u8, 100u8, 27u8, - 193u8, 79u8, 254u8, 68u8, 22u8, 216u8, 157u8, 136u8, 233u8, - 98u8, 46u8, 220u8, 121u8, 29u8, + 0u8, 223u8, 159u8, 58u8, 230u8, 216u8, 109u8, 93u8, 34u8, + 200u8, 153u8, 22u8, 182u8, 64u8, 231u8, 142u8, 115u8, 207u8, + 150u8, 179u8, 11u8, 72u8, 251u8, 51u8, 178u8, 2u8, 84u8, + 150u8, 101u8, 167u8, 204u8, 120u8, ] { let call = ScheduleAfter { @@ -1956,10 +1959,10 @@ pub mod api { }; if runtime_call_hash == [ - 127u8, 121u8, 141u8, 162u8, 95u8, 211u8, 214u8, 15u8, 22u8, - 28u8, 23u8, 71u8, 92u8, 58u8, 249u8, 163u8, 216u8, 85u8, - 155u8, 88u8, 161u8, 113u8, 153u8, 200u8, 248u8, 168u8, 121u8, - 124u8, 131u8, 122u8, 232u8, 160u8, + 93u8, 123u8, 108u8, 161u8, 185u8, 23u8, 35u8, 175u8, 231u8, + 138u8, 4u8, 49u8, 244u8, 68u8, 152u8, 114u8, 15u8, 123u8, + 107u8, 125u8, 97u8, 14u8, 25u8, 27u8, 42u8, 102u8, 239u8, + 209u8, 159u8, 217u8, 141u8, 216u8, ] { let call = ScheduleNamedAfter { @@ -2076,10 +2079,10 @@ pub mod api { }; if runtime_storage_hash == [ - 235u8, 95u8, 118u8, 134u8, 98u8, 235u8, 250u8, 110u8, 250u8, - 7u8, 75u8, 190u8, 53u8, 194u8, 153u8, 51u8, 125u8, 69u8, - 46u8, 232u8, 63u8, 132u8, 47u8, 167u8, 210u8, 46u8, 43u8, - 142u8, 255u8, 252u8, 99u8, 253u8, + 105u8, 18u8, 151u8, 43u8, 108u8, 227u8, 68u8, 204u8, 82u8, + 150u8, 128u8, 140u8, 213u8, 106u8, 201u8, 4u8, 186u8, 20u8, + 191u8, 125u8, 72u8, 69u8, 134u8, 48u8, 194u8, 109u8, 61u8, + 7u8, 244u8, 52u8, 161u8, 46u8, ] { let entry = Agenda(_0); @@ -2106,10 +2109,10 @@ pub mod api { }; if runtime_storage_hash == [ - 235u8, 95u8, 118u8, 134u8, 98u8, 235u8, 250u8, 110u8, 250u8, - 7u8, 75u8, 190u8, 53u8, 194u8, 153u8, 51u8, 125u8, 69u8, - 46u8, 232u8, 63u8, 132u8, 47u8, 167u8, 210u8, 46u8, 43u8, - 142u8, 255u8, 252u8, 99u8, 253u8, + 105u8, 18u8, 151u8, 43u8, 108u8, 227u8, 68u8, 204u8, 82u8, + 150u8, 128u8, 140u8, 213u8, 106u8, 201u8, 4u8, 186u8, 20u8, + 191u8, 125u8, 72u8, 69u8, 134u8, 48u8, 194u8, 109u8, 61u8, + 7u8, 244u8, 52u8, 161u8, 46u8, ] { self.client.storage().iter(block_hash).await @@ -2933,7 +2936,9 @@ pub mod api { impl ::subxt::StorageEntry for Initialized { const PALLET: &'static str = "Babe"; const STORAGE: &'static str = "Initialized"; - type Value = ::core::option::Option<[::core::primitive::u8; 32usize]>; + type Value = ::core::option::Option< + runtime_types::sp_consensus_babe::digests::PreDigest, + >; fn key(&self) -> ::subxt::StorageEntryKey { ::subxt::StorageEntryKey::Plain } @@ -3325,7 +3330,9 @@ pub mod api { block_hash: ::core::option::Option, ) -> ::core::result::Result< ::core::option::Option< - ::core::option::Option<[::core::primitive::u8; 32usize]>, + ::core::option::Option< + runtime_types::sp_consensus_babe::digests::PreDigest, + >, >, ::subxt::BasicError, > { @@ -3336,10 +3343,10 @@ pub mod api { }; if runtime_storage_hash == [ - 48u8, 206u8, 111u8, 118u8, 149u8, 175u8, 148u8, 53u8, 233u8, - 82u8, 220u8, 57u8, 22u8, 164u8, 116u8, 228u8, 134u8, 237u8, - 129u8, 195u8, 60u8, 169u8, 1u8, 164u8, 74u8, 177u8, 145u8, - 112u8, 66u8, 198u8, 53u8, 157u8, + 174u8, 23u8, 254u8, 52u8, 114u8, 235u8, 65u8, 46u8, 39u8, + 97u8, 238u8, 243u8, 237u8, 138u8, 142u8, 85u8, 114u8, 69u8, + 58u8, 172u8, 7u8, 238u8, 110u8, 153u8, 22u8, 122u8, 117u8, + 149u8, 113u8, 221u8, 127u8, 225u8, ] { let entry = Initialized; @@ -3351,7 +3358,7 @@ pub mod api { #[doc = " This field should always be populated during block processing unless"] #[doc = " secondary plain slots are enabled (which don't contain a VRF output)."] #[doc = ""] - #[doc = " It is set in `on_initialize`, before it will contain the value from the last block."] + #[doc = " It is set in `on_finalize`, before it will contain the value from the last block."] pub async fn author_vrf_randomness( &self, block_hash: ::core::option::Option, @@ -5372,31 +5379,6 @@ pub mod api { pub fn new(client: &'a ::subxt::Client) -> Self { Self { client } } - #[doc = " The fee to be paid for making a transaction; the per-byte portion."] - pub fn transaction_byte_fee( - &self, - ) -> ::core::result::Result<::core::primitive::u128, ::subxt::BasicError> - { - let locked_metadata = self.client.metadata(); - let metadata = locked_metadata.read(); - if metadata - .constant_hash("TransactionPayment", "TransactionByteFee")? - == [ - 11u8, 116u8, 163u8, 230u8, 115u8, 191u8, 171u8, 134u8, 67u8, - 204u8, 192u8, 56u8, 0u8, 127u8, 48u8, 184u8, 38u8, 207u8, - 167u8, 252u8, 43u8, 152u8, 15u8, 29u8, 171u8, 202u8, 103u8, - 163u8, 14u8, 13u8, 177u8, 134u8, - ] - { - let pallet = metadata.pallet("TransactionPayment")?; - let constant = pallet.constant("TransactionByteFee")?; - let value = - ::subxt::codec::Decode::decode(&mut &constant.value[..])?; - Ok(value) - } else { - Err(::subxt::MetadataError::IncompatibleMetadata.into()) - } - } #[doc = " A fee mulitplier for `Operational` extrinsics to compute \"virtual tip\" to boost their"] #[doc = " `priority`"] #[doc = ""] @@ -5457,10 +5439,10 @@ pub mod api { let metadata = locked_metadata.read(); if metadata.constant_hash("TransactionPayment", "WeightToFee")? == [ - 194u8, 136u8, 54u8, 114u8, 5u8, 242u8, 3u8, 197u8, 151u8, - 113u8, 78u8, 143u8, 235u8, 147u8, 73u8, 236u8, 218u8, 115u8, - 53u8, 211u8, 62u8, 158u8, 185u8, 222u8, 129u8, 142u8, 100u8, - 191u8, 33u8, 240u8, 219u8, 34u8, + 147u8, 78u8, 51u8, 196u8, 214u8, 20u8, 36u8, 114u8, 64u8, + 95u8, 181u8, 140u8, 80u8, 115u8, 253u8, 71u8, 214u8, 21u8, + 118u8, 115u8, 108u8, 124u8, 192u8, 122u8, 26u8, 130u8, 143u8, + 240u8, 250u8, 230u8, 205u8, 200u8, ] { let pallet = metadata.pallet("TransactionPayment")?; @@ -5472,6 +5454,36 @@ pub mod api { Err(::subxt::MetadataError::IncompatibleMetadata.into()) } } + #[doc = " The polynomial that is applied in order to derive fee from length."] + pub fn length_to_fee( + &self, + ) -> ::core::result::Result< + ::std::vec::Vec< + runtime_types::frame_support::weights::WeightToFeeCoefficient< + ::core::primitive::u128, + >, + >, + ::subxt::BasicError, + > { + let locked_metadata = self.client.metadata(); + let metadata = locked_metadata.read(); + if metadata.constant_hash("TransactionPayment", "LengthToFee")? + == [ + 120u8, 219u8, 85u8, 57u8, 31u8, 128u8, 113u8, 179u8, 51u8, + 81u8, 69u8, 222u8, 206u8, 137u8, 222u8, 104u8, 59u8, 233u8, + 72u8, 51u8, 54u8, 187u8, 182u8, 249u8, 27u8, 17u8, 34u8, + 44u8, 215u8, 77u8, 39u8, 166u8, + ] + { + let pallet = metadata.pallet("TransactionPayment")?; + let constant = pallet.constant("LengthToFee")?; + let value = + ::subxt::codec::Decode::decode(&mut &constant.value[..])?; + Ok(value) + } else { + Err(::subxt::MetadataError::IncompatibleMetadata.into()) + } + } } } } @@ -6358,7 +6370,7 @@ pub mod api { } #[doc = "(Re-)set the payment target for a controller."] #[doc = ""] - #[doc = "Effects will be felt at the beginning of the next era."] + #[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 = ""] @@ -6409,7 +6421,7 @@ pub mod api { } #[doc = "(Re-)set the controller of a stash."] #[doc = ""] - #[doc = "Effects will be felt at the beginning of the next era."] + #[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 = ""] @@ -7373,6 +7385,16 @@ pub mod api { const PALLET: &'static str = "Staking"; const EVENT: &'static str = "PayoutStarted"; } + #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] + #[doc = "A validator has set their preferences."] + pub struct ValidatorPrefsSet( + pub ::subxt::sp_core::crypto::AccountId32, + pub runtime_types::pallet_staking::ValidatorPrefs, + ); + impl ::subxt::Event for ValidatorPrefsSet { + const PALLET: &'static str = "Staking"; + const EVENT: &'static str = "ValidatorPrefsSet"; + } } pub mod storage { use super::runtime_types; @@ -7455,10 +7477,7 @@ pub mod api { impl ::subxt::StorageEntry for Ledger<'_> { const PALLET: &'static str = "Staking"; const STORAGE: &'static str = "Ledger"; - type Value = runtime_types::pallet_staking::StakingLedger< - ::subxt::sp_core::crypto::AccountId32, - ::core::primitive::u128, - >; + type Value = runtime_types::pallet_staking::StakingLedger; fn key(&self) -> ::subxt::StorageEntryKey { ::subxt::StorageEntryKey::Map(vec![::subxt::StorageMapKey::new( &self.0, @@ -8128,12 +8147,7 @@ pub mod api { _0: &::subxt::sp_core::crypto::AccountId32, block_hash: ::core::option::Option, ) -> ::core::result::Result< - ::core::option::Option< - runtime_types::pallet_staking::StakingLedger< - ::subxt::sp_core::crypto::AccountId32, - ::core::primitive::u128, - >, - >, + ::core::option::Option, ::subxt::BasicError, > { let runtime_storage_hash = { @@ -8143,10 +8157,10 @@ pub mod api { }; if runtime_storage_hash == [ - 91u8, 46u8, 130u8, 228u8, 126u8, 95u8, 46u8, 57u8, 222u8, - 98u8, 250u8, 145u8, 83u8, 135u8, 240u8, 153u8, 57u8, 21u8, - 232u8, 254u8, 217u8, 22u8, 62u8, 76u8, 128u8, 159u8, 137u8, - 149u8, 112u8, 251u8, 142u8, 35u8, + 54u8, 158u8, 148u8, 211u8, 91u8, 48u8, 159u8, 56u8, 149u8, + 116u8, 43u8, 31u8, 45u8, 102u8, 252u8, 12u8, 1u8, 176u8, + 189u8, 68u8, 97u8, 88u8, 13u8, 204u8, 148u8, 12u8, 34u8, 0u8, + 180u8, 162u8, 202u8, 8u8, ] { let entry = Ledger(_0); @@ -8170,10 +8184,10 @@ pub mod api { }; if runtime_storage_hash == [ - 91u8, 46u8, 130u8, 228u8, 126u8, 95u8, 46u8, 57u8, 222u8, - 98u8, 250u8, 145u8, 83u8, 135u8, 240u8, 153u8, 57u8, 21u8, - 232u8, 254u8, 217u8, 22u8, 62u8, 76u8, 128u8, 159u8, 137u8, - 149u8, 112u8, 251u8, 142u8, 35u8, + 54u8, 158u8, 148u8, 211u8, 91u8, 48u8, 159u8, 56u8, 149u8, + 116u8, 43u8, 31u8, 45u8, 102u8, 252u8, 12u8, 1u8, 176u8, + 189u8, 68u8, 97u8, 88u8, 13u8, 204u8, 148u8, 12u8, 34u8, 0u8, + 180u8, 162u8, 202u8, 8u8, ] { self.client.storage().iter(block_hash).await @@ -14328,10 +14342,10 @@ pub mod api { }; if runtime_call_hash == [ - 170u8, 77u8, 65u8, 3u8, 95u8, 88u8, 81u8, 103u8, 220u8, 72u8, - 237u8, 80u8, 181u8, 46u8, 196u8, 106u8, 142u8, 55u8, 244u8, - 204u8, 219u8, 152u8, 219u8, 17u8, 80u8, 55u8, 178u8, 56u8, - 161u8, 169u8, 50u8, 37u8, + 171u8, 45u8, 34u8, 122u8, 218u8, 231u8, 219u8, 99u8, 254u8, + 22u8, 172u8, 193u8, 202u8, 243u8, 33u8, 150u8, 251u8, 138u8, + 193u8, 130u8, 211u8, 68u8, 68u8, 22u8, 166u8, 19u8, 217u8, + 21u8, 131u8, 227u8, 144u8, 28u8, ] { let call = Execute { @@ -14393,10 +14407,10 @@ pub mod api { }; if runtime_call_hash == [ - 180u8, 170u8, 72u8, 21u8, 96u8, 25u8, 177u8, 147u8, 98u8, - 143u8, 186u8, 112u8, 99u8, 197u8, 146u8, 170u8, 35u8, 195u8, - 154u8, 87u8, 119u8, 190u8, 148u8, 82u8, 134u8, 3u8, 163u8, - 182u8, 132u8, 130u8, 2u8, 48u8, + 167u8, 222u8, 69u8, 157u8, 53u8, 100u8, 78u8, 219u8, 182u8, + 33u8, 10u8, 169u8, 21u8, 151u8, 230u8, 160u8, 206u8, 56u8, + 247u8, 138u8, 253u8, 150u8, 25u8, 225u8, 242u8, 161u8, 75u8, + 205u8, 175u8, 209u8, 169u8, 176u8, ] { let call = Propose { @@ -14790,10 +14804,10 @@ pub mod api { }; if runtime_storage_hash == [ - 75u8, 36u8, 235u8, 242u8, 206u8, 251u8, 227u8, 94u8, 96u8, - 26u8, 160u8, 127u8, 226u8, 27u8, 55u8, 177u8, 75u8, 102u8, - 124u8, 107u8, 33u8, 214u8, 101u8, 215u8, 174u8, 149u8, 162u8, - 189u8, 198u8, 68u8, 189u8, 218u8, + 166u8, 196u8, 81u8, 86u8, 135u8, 5u8, 173u8, 163u8, 163u8, + 41u8, 218u8, 32u8, 33u8, 124u8, 49u8, 172u8, 135u8, 84u8, + 228u8, 53u8, 28u8, 27u8, 208u8, 110u8, 244u8, 194u8, 128u8, + 53u8, 73u8, 111u8, 103u8, 49u8, ] { let entry = ProposalOf(_0); @@ -14817,10 +14831,10 @@ pub mod api { }; if runtime_storage_hash == [ - 75u8, 36u8, 235u8, 242u8, 206u8, 251u8, 227u8, 94u8, 96u8, - 26u8, 160u8, 127u8, 226u8, 27u8, 55u8, 177u8, 75u8, 102u8, - 124u8, 107u8, 33u8, 214u8, 101u8, 215u8, 174u8, 149u8, 162u8, - 189u8, 198u8, 68u8, 189u8, 218u8, + 166u8, 196u8, 81u8, 86u8, 135u8, 5u8, 173u8, 163u8, 163u8, + 41u8, 218u8, 32u8, 33u8, 124u8, 49u8, 172u8, 135u8, 84u8, + 228u8, 53u8, 28u8, 27u8, 208u8, 110u8, 244u8, 194u8, 128u8, + 53u8, 73u8, 111u8, 103u8, 49u8, ] { self.client.storage().iter(block_hash).await @@ -15170,10 +15184,10 @@ pub mod api { }; if runtime_call_hash == [ - 170u8, 77u8, 65u8, 3u8, 95u8, 88u8, 81u8, 103u8, 220u8, 72u8, - 237u8, 80u8, 181u8, 46u8, 196u8, 106u8, 142u8, 55u8, 244u8, - 204u8, 219u8, 152u8, 219u8, 17u8, 80u8, 55u8, 178u8, 56u8, - 161u8, 169u8, 50u8, 37u8, + 171u8, 45u8, 34u8, 122u8, 218u8, 231u8, 219u8, 99u8, 254u8, + 22u8, 172u8, 193u8, 202u8, 243u8, 33u8, 150u8, 251u8, 138u8, + 193u8, 130u8, 211u8, 68u8, 68u8, 22u8, 166u8, 19u8, 217u8, + 21u8, 131u8, 227u8, 144u8, 28u8, ] { let call = Execute { @@ -15235,10 +15249,10 @@ pub mod api { }; if runtime_call_hash == [ - 180u8, 170u8, 72u8, 21u8, 96u8, 25u8, 177u8, 147u8, 98u8, - 143u8, 186u8, 112u8, 99u8, 197u8, 146u8, 170u8, 35u8, 195u8, - 154u8, 87u8, 119u8, 190u8, 148u8, 82u8, 134u8, 3u8, 163u8, - 182u8, 132u8, 130u8, 2u8, 48u8, + 167u8, 222u8, 69u8, 157u8, 53u8, 100u8, 78u8, 219u8, 182u8, + 33u8, 10u8, 169u8, 21u8, 151u8, 230u8, 160u8, 206u8, 56u8, + 247u8, 138u8, 253u8, 150u8, 25u8, 225u8, 242u8, 161u8, 75u8, + 205u8, 175u8, 209u8, 169u8, 176u8, ] { let call = Propose { @@ -15632,10 +15646,10 @@ pub mod api { }; if runtime_storage_hash == [ - 75u8, 36u8, 235u8, 242u8, 206u8, 251u8, 227u8, 94u8, 96u8, - 26u8, 160u8, 127u8, 226u8, 27u8, 55u8, 177u8, 75u8, 102u8, - 124u8, 107u8, 33u8, 214u8, 101u8, 215u8, 174u8, 149u8, 162u8, - 189u8, 198u8, 68u8, 189u8, 218u8, + 166u8, 196u8, 81u8, 86u8, 135u8, 5u8, 173u8, 163u8, 163u8, + 41u8, 218u8, 32u8, 33u8, 124u8, 49u8, 172u8, 135u8, 84u8, + 228u8, 53u8, 28u8, 27u8, 208u8, 110u8, 244u8, 194u8, 128u8, + 53u8, 73u8, 111u8, 103u8, 49u8, ] { let entry = ProposalOf(_0); @@ -15659,10 +15673,10 @@ pub mod api { }; if runtime_storage_hash == [ - 75u8, 36u8, 235u8, 242u8, 206u8, 251u8, 227u8, 94u8, 96u8, - 26u8, 160u8, 127u8, 226u8, 27u8, 55u8, 177u8, 75u8, 102u8, - 124u8, 107u8, 33u8, 214u8, 101u8, 215u8, 174u8, 149u8, 162u8, - 189u8, 198u8, 68u8, 189u8, 218u8, + 166u8, 196u8, 81u8, 86u8, 135u8, 5u8, 173u8, 163u8, 163u8, + 41u8, 218u8, 32u8, 33u8, 124u8, 49u8, 172u8, 135u8, 84u8, + 228u8, 53u8, 28u8, 27u8, 208u8, 110u8, 244u8, 194u8, 128u8, + 53u8, 73u8, 111u8, 103u8, 49u8, ] { self.client.storage().iter(block_hash).await @@ -17252,6 +17266,15 @@ pub mod api { const PALLET: &'static str = "Treasury"; const FUNCTION: &'static str = "approve_proposal"; } + #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] + pub struct RemoveApproval { + #[codec(compact)] + pub proposal_id: ::core::primitive::u32, + } + impl ::subxt::Call for RemoveApproval { + const PALLET: &'static str = "Treasury"; + const FUNCTION: &'static str = "remove_approval"; + } pub struct TransactionApi<'a, T: ::subxt::Config, X> { client: &'a ::subxt::Client, marker: ::core::marker::PhantomData, @@ -17398,6 +17421,54 @@ pub mod api { Err(::subxt::MetadataError::IncompatibleMetadata.into()) } } + #[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 = "# "] + #[doc = "- Complexity: O(A) where `A` is the number of approvals"] + #[doc = "- Db reads and writes: `Approvals`"] + #[doc = "# "] + #[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."] + pub fn remove_approval( + &self, + proposal_id: ::core::primitive::u32, + ) -> Result< + ::subxt::SubmittableExtrinsic< + 'a, + T, + X, + RemoveApproval, + DispatchError, + root_mod::Event, + >, + ::subxt::BasicError, + > { + let runtime_call_hash = { + let locked_metadata = self.client.metadata(); + let metadata = locked_metadata.read(); + metadata.call_hash::()? + }; + if runtime_call_hash + == [ + 235u8, 199u8, 214u8, 142u8, 168u8, 99u8, 226u8, 70u8, 161u8, + 36u8, 122u8, 95u8, 242u8, 2u8, 191u8, 163u8, 192u8, 26u8, + 185u8, 75u8, 47u8, 155u8, 80u8, 175u8, 88u8, 85u8, 83u8, 8u8, + 138u8, 130u8, 12u8, 228u8, + ] + { + let call = RemoveApproval { proposal_id }; + Ok(::subxt::SubmittableExtrinsic::new(self.client, call)) + } else { + Err(::subxt::MetadataError::IncompatibleMetadata.into()) + } + } } } pub type Event = runtime_types::pallet_treasury::pallet::Event; @@ -19228,6 +19299,14 @@ pub mod api { const PALLET: &'static str = "Utility"; const FUNCTION: &'static str = "dispatch_as"; } + #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] + pub struct ForceBatch { + pub calls: ::std::vec::Vec, + } + impl ::subxt::Call for ForceBatch { + const PALLET: &'static str = "Utility"; + const FUNCTION: &'static str = "force_batch"; + } pub struct TransactionApi<'a, T: ::subxt::Config, X> { client: &'a ::subxt::Client, marker: ::core::marker::PhantomData, @@ -19283,10 +19362,10 @@ pub mod api { }; if runtime_call_hash == [ - 102u8, 106u8, 179u8, 188u8, 99u8, 111u8, 210u8, 69u8, 179u8, - 206u8, 207u8, 163u8, 116u8, 184u8, 55u8, 228u8, 157u8, 241u8, - 23u8, 78u8, 112u8, 158u8, 56u8, 192u8, 79u8, 222u8, 0u8, - 104u8, 21u8, 13u8, 54u8, 184u8, + 102u8, 182u8, 19u8, 61u8, 101u8, 149u8, 136u8, 249u8, 229u8, + 72u8, 227u8, 201u8, 225u8, 82u8, 94u8, 255u8, 233u8, 138u8, + 199u8, 139u8, 18u8, 244u8, 111u8, 116u8, 34u8, 85u8, 75u8, + 148u8, 188u8, 25u8, 47u8, 156u8, ] { let call = Batch { calls }; @@ -19330,10 +19409,10 @@ pub mod api { }; if runtime_call_hash == [ - 195u8, 145u8, 176u8, 37u8, 226u8, 104u8, 213u8, 93u8, 246u8, - 7u8, 117u8, 101u8, 123u8, 125u8, 244u8, 74u8, 67u8, 118u8, - 106u8, 181u8, 172u8, 83u8, 17u8, 60u8, 133u8, 136u8, 219u8, - 67u8, 43u8, 93u8, 38u8, 89u8, + 180u8, 175u8, 190u8, 210u8, 241u8, 66u8, 254u8, 62u8, 255u8, + 164u8, 179u8, 239u8, 196u8, 208u8, 14u8, 15u8, 134u8, 124u8, + 168u8, 249u8, 156u8, 6u8, 8u8, 100u8, 179u8, 233u8, 28u8, + 43u8, 154u8, 143u8, 174u8, 32u8, ] { let call = AsDerivative { @@ -19380,10 +19459,10 @@ pub mod api { }; if runtime_call_hash == [ - 199u8, 220u8, 25u8, 148u8, 69u8, 105u8, 234u8, 113u8, 221u8, - 220u8, 186u8, 34u8, 184u8, 101u8, 41u8, 87u8, 134u8, 92u8, - 134u8, 241u8, 44u8, 116u8, 95u8, 81u8, 174u8, 253u8, 214u8, - 191u8, 88u8, 24u8, 211u8, 135u8, + 101u8, 225u8, 46u8, 143u8, 133u8, 157u8, 113u8, 67u8, 254u8, + 105u8, 73u8, 88u8, 197u8, 194u8, 197u8, 125u8, 125u8, 24u8, + 177u8, 161u8, 27u8, 179u8, 183u8, 96u8, 102u8, 77u8, 248u8, + 190u8, 254u8, 188u8, 87u8, 39u8, ] { let call = BatchAll { calls }; @@ -19424,10 +19503,10 @@ pub mod api { }; if runtime_call_hash == [ - 188u8, 19u8, 178u8, 56u8, 121u8, 41u8, 46u8, 232u8, 118u8, - 56u8, 66u8, 6u8, 174u8, 184u8, 92u8, 66u8, 178u8, 213u8, - 220u8, 88u8, 109u8, 223u8, 186u8, 2u8, 68u8, 152u8, 137u8, - 131u8, 191u8, 194u8, 221u8, 254u8, + 9u8, 107u8, 249u8, 74u8, 149u8, 140u8, 51u8, 68u8, 42u8, + 188u8, 182u8, 99u8, 172u8, 144u8, 227u8, 66u8, 84u8, 206u8, + 56u8, 28u8, 74u8, 52u8, 110u8, 88u8, 47u8, 213u8, 89u8, + 218u8, 159u8, 70u8, 117u8, 87u8, ] { let call = DispatchAs { @@ -19439,6 +19518,53 @@ pub mod api { Err(::subxt::MetadataError::IncompatibleMetadata.into()) } } + #[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."] + #[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 call are dispatch without checking origin filter. (This includes"] + #[doc = "bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "# "] + #[doc = "- Complexity: O(C) where C is the number of calls to be batched."] + #[doc = "# "] + pub fn force_batch( + &self, + calls: ::std::vec::Vec, + ) -> Result< + ::subxt::SubmittableExtrinsic< + 'a, + T, + X, + ForceBatch, + DispatchError, + root_mod::Event, + >, + ::subxt::BasicError, + > { + let runtime_call_hash = { + let locked_metadata = self.client.metadata(); + let metadata = locked_metadata.read(); + metadata.call_hash::()? + }; + if runtime_call_hash + == [ + 137u8, 246u8, 71u8, 168u8, 206u8, 218u8, 138u8, 237u8, 91u8, + 235u8, 21u8, 26u8, 216u8, 98u8, 195u8, 42u8, 217u8, 58u8, + 71u8, 40u8, 16u8, 83u8, 136u8, 228u8, 169u8, 208u8, 234u8, + 55u8, 71u8, 182u8, 163u8, 169u8, + ] + { + let call = ForceBatch { calls }; + Ok(::subxt::SubmittableExtrinsic::new(self.client, call)) + } else { + Err(::subxt::MetadataError::IncompatibleMetadata.into()) + } + } } } pub type Event = runtime_types::pallet_utility::pallet::Event; @@ -19463,6 +19589,13 @@ pub mod api { const EVENT: &'static str = "BatchCompleted"; } #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] + #[doc = "Batch of dispatches completed but has errors."] + pub struct BatchCompletedWithErrors; + impl ::subxt::Event for BatchCompletedWithErrors { + const PALLET: &'static str = "Utility"; + const EVENT: &'static str = "BatchCompletedWithErrors"; + } + #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] #[doc = "A single item within a Batch of dispatches has completed with no error."] pub struct ItemCompleted; impl ::subxt::Event for ItemCompleted { @@ -19470,6 +19603,15 @@ pub mod api { const EVENT: &'static str = "ItemCompleted"; } #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] + #[doc = "A single item within a Batch of dispatches has completed with error."] + pub struct ItemFailed { + pub error: runtime_types::sp_runtime::DispatchError, + } + impl ::subxt::Event for ItemFailed { + const PALLET: &'static str = "Utility"; + const EVENT: &'static str = "ItemFailed"; + } + #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] #[doc = "A call was dispatched."] pub struct DispatchedAs { pub result: @@ -21191,10 +21333,10 @@ pub mod api { }; if runtime_call_hash == [ - 182u8, 110u8, 37u8, 47u8, 200u8, 93u8, 71u8, 195u8, 61u8, - 58u8, 197u8, 39u8, 17u8, 203u8, 192u8, 222u8, 55u8, 103u8, - 91u8, 226u8, 255u8, 253u8, 20u8, 71u8, 59u8, 53u8, 11u8, - 193u8, 239u8, 216u8, 100u8, 47u8, + 217u8, 71u8, 31u8, 35u8, 254u8, 72u8, 185u8, 233u8, 245u8, + 87u8, 156u8, 71u8, 75u8, 206u8, 64u8, 128u8, 244u8, 37u8, + 111u8, 9u8, 17u8, 189u8, 187u8, 48u8, 192u8, 169u8, 54u8, + 162u8, 237u8, 90u8, 109u8, 220u8, ] { let call = Proxy { @@ -21677,10 +21819,10 @@ pub mod api { }; if runtime_call_hash == [ - 4u8, 205u8, 80u8, 128u8, 70u8, 110u8, 11u8, 69u8, 145u8, - 61u8, 218u8, 229u8, 208u8, 105u8, 190u8, 234u8, 189u8, 169u8, - 188u8, 10u8, 142u8, 144u8, 23u8, 200u8, 215u8, 180u8, 128u8, - 37u8, 95u8, 163u8, 205u8, 87u8, + 136u8, 192u8, 144u8, 78u8, 240u8, 243u8, 69u8, 182u8, 56u8, + 201u8, 133u8, 193u8, 81u8, 108u8, 41u8, 237u8, 6u8, 231u8, + 232u8, 29u8, 134u8, 207u8, 175u8, 225u8, 24u8, 154u8, 105u8, + 161u8, 167u8, 163u8, 37u8, 100u8, ] { let call = ProxyAnnounced { @@ -22235,10 +22377,10 @@ pub mod api { }; if runtime_call_hash == [ - 95u8, 132u8, 202u8, 110u8, 113u8, 89u8, 78u8, 7u8, 190u8, - 143u8, 107u8, 158u8, 56u8, 3u8, 41u8, 167u8, 115u8, 34u8, - 214u8, 63u8, 135u8, 154u8, 60u8, 181u8, 71u8, 157u8, 189u8, - 37u8, 215u8, 212u8, 66u8, 186u8, + 114u8, 239u8, 71u8, 201u8, 120u8, 147u8, 150u8, 0u8, 252u8, + 254u8, 208u8, 228u8, 74u8, 136u8, 189u8, 191u8, 104u8, 193u8, + 207u8, 50u8, 153u8, 70u8, 132u8, 58u8, 36u8, 31u8, 151u8, + 123u8, 139u8, 102u8, 245u8, 152u8, ] { let call = AsMultiThreshold1 { @@ -22327,10 +22469,10 @@ pub mod api { }; if runtime_call_hash == [ - 248u8, 250u8, 144u8, 85u8, 79u8, 224u8, 92u8, 55u8, 76u8, - 55u8, 171u8, 48u8, 122u8, 6u8, 62u8, 155u8, 69u8, 41u8, - 121u8, 233u8, 40u8, 29u8, 224u8, 61u8, 245u8, 80u8, 50u8, - 30u8, 185u8, 92u8, 250u8, 160u8, + 158u8, 219u8, 179u8, 104u8, 155u8, 199u8, 218u8, 219u8, + 186u8, 39u8, 10u8, 67u8, 214u8, 34u8, 239u8, 193u8, 18u8, + 155u8, 108u8, 245u8, 245u8, 133u8, 125u8, 73u8, 150u8, 203u8, + 99u8, 191u8, 222u8, 28u8, 22u8, 17u8, ] { let call = AsMulti { @@ -22687,10 +22829,10 @@ pub mod api { }; if runtime_storage_hash == [ - 51u8, 122u8, 79u8, 127u8, 1u8, 182u8, 39u8, 88u8, 57u8, - 227u8, 141u8, 253u8, 217u8, 23u8, 89u8, 94u8, 37u8, 244u8, - 136u8, 246u8, 87u8, 146u8, 97u8, 23u8, 135u8, 13u8, 32u8, - 14u8, 191u8, 15u8, 2u8, 51u8, + 76u8, 214u8, 15u8, 136u8, 99u8, 62u8, 40u8, 193u8, 7u8, + 250u8, 114u8, 39u8, 166u8, 30u8, 110u8, 65u8, 41u8, 97u8, + 220u8, 9u8, 47u8, 175u8, 44u8, 174u8, 169u8, 50u8, 29u8, + 180u8, 232u8, 87u8, 179u8, 49u8, ] { let entry = Calls(_0); @@ -22713,10 +22855,10 @@ pub mod api { }; if runtime_storage_hash == [ - 51u8, 122u8, 79u8, 127u8, 1u8, 182u8, 39u8, 88u8, 57u8, - 227u8, 141u8, 253u8, 217u8, 23u8, 89u8, 94u8, 37u8, 244u8, - 136u8, 246u8, 87u8, 146u8, 97u8, 23u8, 135u8, 13u8, 32u8, - 14u8, 191u8, 15u8, 2u8, 51u8, + 76u8, 214u8, 15u8, 136u8, 99u8, 62u8, 40u8, 193u8, 7u8, + 250u8, 114u8, 39u8, 166u8, 30u8, 110u8, 65u8, 41u8, 97u8, + 220u8, 9u8, 47u8, 175u8, 44u8, 174u8, 169u8, 50u8, 29u8, + 180u8, 232u8, 87u8, 179u8, 49u8, ] { self.client.storage().iter(block_hash).await @@ -24040,7 +24182,7 @@ pub mod api { #[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 = "Upper bound to maximum number of active child bounties that can be"] #[doc = "added are managed via runtime trait config"] #[doc = "[`Config::MaxActiveChildBountyCount`]."] #[doc = ""] @@ -24210,12 +24352,12 @@ pub mod api { #[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 = "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 = "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 = "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 = ""] @@ -24279,7 +24421,7 @@ pub mod api { #[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 master curator or"] + #[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"] @@ -24605,7 +24747,7 @@ pub mod api { Err(::subxt::MetadataError::IncompatibleMetadata.into()) } } - #[doc = " Number of child-bounties per parent bounty."] + #[doc = " Number of child bounties per parent bounty."] #[doc = " Map of parent bounty index to number of child bounties."] pub async fn parent_child_bounties( &self, @@ -24635,7 +24777,7 @@ pub mod api { Err(::subxt::MetadataError::IncompatibleMetadata.into()) } } - #[doc = " Number of child-bounties per parent bounty."] + #[doc = " Number of child bounties per parent bounty."] #[doc = " Map of parent bounty index to number of child bounties."] pub async fn parent_child_bounties_iter( &self, @@ -24662,7 +24804,7 @@ pub mod api { Err(::subxt::MetadataError::IncompatibleMetadata.into()) } } - #[doc = " Child-bounties that have been added."] + #[doc = " Child bounties that have been added."] pub async fn child_bounties( &self, _0: &::core::primitive::u32, @@ -24697,7 +24839,7 @@ pub mod api { Err(::subxt::MetadataError::IncompatibleMetadata.into()) } } - #[doc = " Child-bounties that have been added."] + #[doc = " Child bounties that have been added."] pub async fn child_bounties_iter( &self, block_hash: ::core::option::Option, @@ -24847,7 +24989,7 @@ pub mod api { pub fn new(client: &'a ::subxt::Client) -> Self { Self { client } } - #[doc = " Maximum number of child-bounties that can be added to a parent bounty."] + #[doc = " Maximum number of child bounties that can be added to a parent bounty."] pub fn max_active_child_bounty_count( &self, ) -> ::core::result::Result<::core::primitive::u32, ::subxt::BasicError> @@ -26375,10 +26517,10 @@ pub mod api { }; if runtime_storage_hash == [ - 94u8, 51u8, 117u8, 215u8, 100u8, 250u8, 9u8, 70u8, 131u8, - 21u8, 2u8, 142u8, 177u8, 117u8, 21u8, 190u8, 10u8, 15u8, - 183u8, 214u8, 6u8, 169u8, 141u8, 169u8, 23u8, 136u8, 231u8, - 130u8, 48u8, 126u8, 198u8, 173u8, + 75u8, 2u8, 76u8, 74u8, 73u8, 167u8, 243u8, 1u8, 31u8, 26u8, + 48u8, 196u8, 177u8, 21u8, 233u8, 66u8, 251u8, 11u8, 11u8, + 252u8, 63u8, 206u8, 115u8, 116u8, 73u8, 232u8, 241u8, 179u8, + 249u8, 34u8, 61u8, 171u8, ] { let entry = SignedSubmissionsMap(_0); @@ -26408,10 +26550,10 @@ pub mod api { }; if runtime_storage_hash == [ - 94u8, 51u8, 117u8, 215u8, 100u8, 250u8, 9u8, 70u8, 131u8, - 21u8, 2u8, 142u8, 177u8, 117u8, 21u8, 190u8, 10u8, 15u8, - 183u8, 214u8, 6u8, 169u8, 141u8, 169u8, 23u8, 136u8, 231u8, - 130u8, 48u8, 126u8, 198u8, 173u8, + 75u8, 2u8, 76u8, 74u8, 73u8, 167u8, 243u8, 1u8, 31u8, 26u8, + 48u8, 196u8, 177u8, 21u8, 233u8, 66u8, 251u8, 11u8, 11u8, + 252u8, 63u8, 206u8, 115u8, 116u8, 73u8, 232u8, 241u8, 179u8, + 249u8, 34u8, 61u8, 171u8, ] { self.client.storage().iter(block_hash).await @@ -26513,8 +26655,8 @@ pub mod api { } } #[doc = " The minimum amount of improvement to the solution score that defines a solution as"] - #[doc = " \"better\" (in any phase)."] - pub fn solution_improvement_threshold( + #[doc = " \"better\" in the Signed phase."] + pub fn better_signed_threshold( &self, ) -> ::core::result::Result< runtime_types::sp_arithmetic::per_things::Perbill, @@ -26524,15 +26666,43 @@ pub mod api { let metadata = locked_metadata.read(); if metadata.constant_hash( "ElectionProviderMultiPhase", - "SolutionImprovementThreshold", + "BetterSignedThreshold", )? == [ - 134u8, 67u8, 182u8, 225u8, 210u8, 61u8, 10u8, 251u8, 7u8, 107u8, - 38u8, 91u8, 186u8, 153u8, 206u8, 250u8, 147u8, 230u8, 24u8, 4u8, - 194u8, 111u8, 79u8, 64u8, 234u8, 72u8, 58u8, 107u8, 252u8, 37u8, - 70u8, 184u8, + 77u8, 124u8, 224u8, 100u8, 113u8, 25u8, 159u8, 166u8, 136u8, + 195u8, 84u8, 168u8, 142u8, 209u8, 89u8, 249u8, 7u8, 218u8, 51u8, + 240u8, 211u8, 135u8, 183u8, 192u8, 194u8, 195u8, 107u8, 37u8, + 23u8, 191u8, 254u8, 185u8, ] { let pallet = metadata.pallet("ElectionProviderMultiPhase")?; - let constant = pallet.constant("SolutionImprovementThreshold")?; + let constant = pallet.constant("BetterSignedThreshold")?; + let value = + ::subxt::codec::Decode::decode(&mut &constant.value[..])?; + Ok(value) + } else { + Err(::subxt::MetadataError::IncompatibleMetadata.into()) + } + } + #[doc = " The minimum amount of improvement to the solution score that defines a solution as"] + #[doc = " \"better\" in the Unsigned phase."] + pub fn better_unsigned_threshold( + &self, + ) -> ::core::result::Result< + runtime_types::sp_arithmetic::per_things::Perbill, + ::subxt::BasicError, + > { + let locked_metadata = self.client.metadata(); + let metadata = locked_metadata.read(); + if metadata.constant_hash( + "ElectionProviderMultiPhase", + "BetterUnsignedThreshold", + )? == [ + 38u8, 62u8, 189u8, 136u8, 151u8, 166u8, 34u8, 147u8, 119u8, 70u8, + 126u8, 29u8, 200u8, 206u8, 195u8, 24u8, 14u8, 80u8, 151u8, 132u8, + 83u8, 135u8, 206u8, 68u8, 169u8, 75u8, 1u8, 40u8, 186u8, 203u8, + 226u8, 118u8, + ] { + let pallet = metadata.pallet("ElectionProviderMultiPhase")?; + let constant = pallet.constant("BetterUnsignedThreshold")?; let value = ::subxt::codec::Decode::decode(&mut &constant.value[..])?; Ok(value) @@ -26606,10 +26776,10 @@ pub mod api { if metadata .constant_hash("ElectionProviderMultiPhase", "MinerMaxWeight")? == [ - 225u8, 83u8, 120u8, 180u8, 14u8, 13u8, 33u8, 51u8, 90u8, - 218u8, 212u8, 203u8, 3u8, 184u8, 197u8, 120u8, 36u8, 87u8, - 192u8, 216u8, 241u8, 41u8, 232u8, 91u8, 27u8, 90u8, 156u8, - 216u8, 184u8, 133u8, 229u8, 92u8, + 34u8, 141u8, 148u8, 109u8, 219u8, 244u8, 253u8, 179u8, 243u8, + 51u8, 21u8, 185u8, 160u8, 239u8, 17u8, 32u8, 203u8, 213u8, + 77u8, 66u8, 102u8, 9u8, 95u8, 165u8, 197u8, 46u8, 186u8, + 122u8, 140u8, 250u8, 60u8, 37u8, ] { let pallet = metadata.pallet("ElectionProviderMultiPhase")?; @@ -26664,10 +26834,10 @@ pub mod api { if metadata .constant_hash("ElectionProviderMultiPhase", "SignedMaxWeight")? == [ - 245u8, 227u8, 58u8, 211u8, 17u8, 86u8, 80u8, 95u8, 176u8, - 24u8, 119u8, 219u8, 116u8, 177u8, 55u8, 204u8, 65u8, 122u8, - 19u8, 7u8, 3u8, 216u8, 70u8, 159u8, 97u8, 145u8, 23u8, 49u8, - 128u8, 2u8, 180u8, 99u8, + 54u8, 61u8, 214u8, 10u8, 196u8, 175u8, 140u8, 223u8, 25u8, + 241u8, 182u8, 169u8, 215u8, 230u8, 227u8, 148u8, 174u8, + 248u8, 158u8, 157u8, 148u8, 248u8, 241u8, 97u8, 191u8, 229u8, + 49u8, 147u8, 180u8, 125u8, 109u8, 26u8, ] { let pallet = metadata.pallet("ElectionProviderMultiPhase")?; @@ -26679,6 +26849,31 @@ pub mod api { Err(::subxt::MetadataError::IncompatibleMetadata.into()) } } + #[doc = " The maximum amount of unchecked solutions to refund the call fee for."] + pub fn signed_max_refunds( + &self, + ) -> ::core::result::Result<::core::primitive::u32, ::subxt::BasicError> + { + let locked_metadata = self.client.metadata(); + let metadata = locked_metadata.read(); + if metadata + .constant_hash("ElectionProviderMultiPhase", "SignedMaxRefunds")? + == [ + 86u8, 134u8, 190u8, 26u8, 28u8, 169u8, 156u8, 24u8, 50u8, + 139u8, 26u8, 80u8, 81u8, 111u8, 60u8, 175u8, 250u8, 7u8, + 92u8, 177u8, 191u8, 226u8, 198u8, 12u8, 179u8, 243u8, 38u8, + 21u8, 212u8, 121u8, 52u8, 148u8, + ] + { + let pallet = metadata.pallet("ElectionProviderMultiPhase")?; + let constant = pallet.constant("SignedMaxRefunds")?; + let value = + ::subxt::codec::Decode::decode(&mut &constant.value[..])?; + Ok(value) + } else { + Err(::subxt::MetadataError::IncompatibleMetadata.into()) + } + } #[doc = " Base reward for a signed solution"] pub fn signed_reward_base( &self, @@ -29421,18 +29616,6 @@ pub mod api { ::subxt::StorageEntryKey::Plain } } - pub struct PendingConfig<'a>(pub &'a ::core::primitive::u32); - impl ::subxt::StorageEntry for PendingConfig<'_> { - const PALLET: &'static str = "Configuration"; - const STORAGE: &'static str = "PendingConfig"; - type Value = runtime_types :: polkadot_runtime_parachains :: configuration :: migration :: v1 :: HostConfiguration < :: core :: primitive :: u32 > ; - fn key(&self) -> ::subxt::StorageEntryKey { - ::subxt::StorageEntryKey::Map(vec![::subxt::StorageMapKey::new( - &self.0, - ::subxt::StorageHasher::Twox64Concat, - )]) - } - } pub struct PendingConfigs; impl ::subxt::StorageEntry for PendingConfigs { const PALLET: &'static str = "Configuration"; @@ -29481,56 +29664,6 @@ pub mod api { Err(::subxt::MetadataError::IncompatibleMetadata.into()) } } - #[doc = " Pending configuration (if any) for the next session."] - #[doc = ""] - #[doc = " DEPRECATED: This is no longer used, and will be removed in the future."] pub async fn pending_config (& self , _0 : & :: core :: primitive :: u32 , block_hash : :: core :: option :: Option < T :: Hash > ,) -> :: core :: result :: Result < :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: configuration :: migration :: v1 :: HostConfiguration < :: core :: primitive :: u32 > > , :: subxt :: BasicError >{ - let runtime_storage_hash = { - let locked_metadata = self.client.metadata(); - let metadata = locked_metadata.read(); - metadata.storage_hash::()? - }; - if runtime_storage_hash - == [ - 152u8, 192u8, 135u8, 74u8, 174u8, 47u8, 192u8, 95u8, 147u8, - 137u8, 41u8, 219u8, 149u8, 198u8, 186u8, 16u8, 158u8, 160u8, - 51u8, 31u8, 187u8, 244u8, 112u8, 238u8, 194u8, 85u8, 198u8, - 73u8, 148u8, 62u8, 74u8, 6u8, - ] - { - let entry = PendingConfig(_0); - self.client.storage().fetch(&entry, block_hash).await - } else { - Err(::subxt::MetadataError::IncompatibleMetadata.into()) - } - } - #[doc = " Pending configuration (if any) for the next session."] - #[doc = ""] - #[doc = " DEPRECATED: This is no longer used, and will be removed in the future."] - pub async fn pending_config_iter( - &self, - block_hash: ::core::option::Option, - ) -> ::core::result::Result< - ::subxt::KeyIter<'a, T, PendingConfig<'a>>, - ::subxt::BasicError, - > { - let runtime_storage_hash = { - let locked_metadata = self.client.metadata(); - let metadata = locked_metadata.read(); - metadata.storage_hash::()? - }; - if runtime_storage_hash - == [ - 152u8, 192u8, 135u8, 74u8, 174u8, 47u8, 192u8, 95u8, 147u8, - 137u8, 41u8, 219u8, 149u8, 198u8, 186u8, 16u8, 158u8, 160u8, - 51u8, 31u8, 187u8, 244u8, 112u8, 238u8, 194u8, 85u8, 198u8, - 73u8, 148u8, 62u8, 74u8, 6u8, - ] - { - self.client.storage().iter(block_hash).await - } else { - Err(::subxt::MetadataError::IncompatibleMetadata.into()) - } - } #[doc = " Pending configuration changes."] #[doc = ""] #[doc = " This is a list of configuration changes, each with a session index at which it should"] @@ -39646,6 +39779,9 @@ pub mod api { #[codec(index = 2)] #[doc = "A given equivocation report is valid but already previously reported."] DuplicateOffenceReport, + #[codec(index = 3)] + #[doc = "Submitted configuration is invalid."] + InvalidConfiguration, } } } @@ -39665,6 +39801,19 @@ pub mod api { #[derive( :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, )] + pub enum ListError { + #[codec(index = 0)] + Duplicate, + #[codec(index = 1)] + NotHeavier, + #[codec(index = 2)] + NotInSameBag, + #[codec(index = 3)] + NodeNotFound, + } + #[derive( + :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, + )] pub struct Node { pub id: ::subxt::sp_core::crypto::AccountId32, pub prev: @@ -39710,14 +39859,8 @@ pub mod api { )] pub enum Error { #[codec(index = 0)] - #[doc = "Attempted to place node in front of a node in another bag."] - NotInSameBag, - #[codec(index = 1)] - #[doc = "Id not found in list."] - IdNotFound, - #[codec(index = 2)] - #[doc = "An Id does not have a greater score than another Id."] - NotHeavier, + #[doc = "A error in the list interface implementation."] + List(runtime_types::pallet_bags_list::list::ListError), } #[derive( :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, @@ -40127,7 +40270,7 @@ pub mod api { #[doc = "The bounties cannot be claimed/closed because it's still in the countdown period."] Premature, #[codec(index = 9)] - #[doc = "The bounty cannot be closed because it has active child-bounties."] + #[doc = "The bounty cannot be closed because it has active child bounties."] HasActiveChildBounty, #[codec(index = 10)] #[doc = "Too many approvals are already queued."] @@ -40217,7 +40360,7 @@ pub mod api { #[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 = "Upper bound to maximum number of active child bounties that can be"] #[doc = "added are managed via runtime trait config"] #[doc = "[`Config::MaxActiveChildBountyCount`]."] #[doc = ""] @@ -40295,12 +40438,12 @@ pub mod api { #[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 = "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 = "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 = "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 = ""] @@ -40334,7 +40477,7 @@ pub mod api { #[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 master curator or"] + #[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"] @@ -40421,7 +40564,7 @@ pub mod api { #[doc = "The bounty balance is not enough to add new child-bounty."] InsufficientBountyBalance, #[codec(index = 2)] - #[doc = "Number of child-bounties exceeds limit `MaxActiveChildBountyCount`."] + #[doc = "Number of child bounties exceeds limit `MaxActiveChildBountyCount`."] TooManyChildBounties, } #[derive( @@ -41472,7 +41615,7 @@ pub mod api { runtime_types::pallet_election_provider_multi_phase::RawSolution< _2, >, - pub reward: _1, + pub call_fee: _1, } } #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] @@ -43937,7 +44080,7 @@ pub mod api { #[codec(index = 7)] #[doc = "(Re-)set the payment target for a controller."] #[doc = ""] - #[doc = "Effects will be felt at the beginning of the next era."] + #[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 = ""] @@ -43959,7 +44102,7 @@ pub mod api { #[codec(index = 8)] #[doc = "(Re-)set the controller of a stash."] #[doc = ""] - #[doc = "Effects will be felt at the beginning of the next era."] + #[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 = ""] @@ -44441,6 +44584,12 @@ pub mod api { ::core::primitive::u32, ::subxt::sp_core::crypto::AccountId32, ), + #[codec(index = 12)] + #[doc = "A validator has set their preferences."] + ValidatorPrefsSet( + ::subxt::sp_core::crypto::AccountId32, + runtime_types::pallet_staking::ValidatorPrefs, + ), } } } @@ -44544,15 +44693,17 @@ pub mod api { None, } #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] - pub struct StakingLedger<_0, _1> { - pub stash: _0, + pub struct StakingLedger { + pub stash: ::subxt::sp_core::crypto::AccountId32, #[codec(compact)] - pub total: _1, + pub total: ::core::primitive::u128, #[codec(compact)] - pub active: _1, + pub active: ::core::primitive::u128, pub unlocking: runtime_types::frame_support::storage::bounded_vec::BoundedVec< - runtime_types::pallet_staking::UnlockChunk<_1>, + runtime_types::pallet_staking::UnlockChunk< + ::core::primitive::u128, + >, >, pub claimed_rewards: ::std::vec::Vec<::core::primitive::u32>, } @@ -44887,6 +45038,26 @@ pub mod api { #[codec(compact)] proposal_id: ::core::primitive::u32, }, + #[codec(index = 3)] + #[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 = "# "] + #[doc = "- Complexity: O(A) where `A` is the number of approvals"] + #[doc = "- Db reads and writes: `Approvals`"] + #[doc = "# "] + #[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, + }, } #[derive( :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, @@ -44901,6 +45072,9 @@ pub mod api { #[codec(index = 2)] #[doc = "Too many approvals in the queue."] TooManyApprovals, + #[codec(index = 3)] + #[doc = "Proposal has not been approved."] + ProposalNotApproved, } #[derive( :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, @@ -45036,6 +45210,24 @@ pub mod api { >, call: ::std::boxed::Box, }, + #[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."] + #[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 call are dispatch without checking origin filter. (This includes"] + #[doc = "bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "# "] + #[doc = "- Complexity: O(C) where C is the number of calls to be batched."] + #[doc = "# "] + force_batch { + calls: ::std::vec::Vec, + }, } #[derive( :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, @@ -45060,9 +45252,17 @@ pub mod api { #[doc = "Batch of dispatches completed fully with no error."] BatchCompleted, #[codec(index = 2)] + #[doc = "Batch of dispatches completed but has errors."] + BatchCompletedWithErrors, + #[codec(index = 3)] #[doc = "A single item within a Batch of dispatches has completed with no error."] ItemCompleted, - #[codec(index = 3)] + #[codec(index = 4)] + #[doc = "A single item within a Batch of dispatches has completed with error."] + ItemFailed { + error: runtime_types::sp_runtime::DispatchError, + }, + #[codec(index = 5)] #[doc = "A call was dispatched."] DispatchedAs { result: ::core::result::Result< @@ -46910,59 +47110,6 @@ pub mod api { use super::runtime_types; pub mod configuration { use super::runtime_types; - pub mod migration { - use super::runtime_types; - pub mod v1 { - use super::runtime_types; - #[derive( - :: subxt :: codec :: Decode, - :: subxt :: codec :: Encode, - Debug, - )] - pub struct HostConfiguration<_0> { - pub max_code_size: _0, - pub max_head_data_size: _0, - pub max_upward_queue_count: _0, - pub max_upward_queue_size: _0, - pub max_upward_message_size: _0, - pub max_upward_message_num_per_candidate: _0, - pub hrmp_max_message_num_per_candidate: _0, - pub validation_upgrade_frequency: _0, - pub validation_upgrade_delay: _0, - pub max_pov_size: _0, - pub max_downward_message_size: _0, - pub ump_service_total_weight: ::core::primitive::u64, - pub hrmp_max_parachain_outbound_channels: _0, - pub hrmp_max_parathread_outbound_channels: _0, - pub hrmp_sender_deposit: ::core::primitive::u128, - pub hrmp_recipient_deposit: ::core::primitive::u128, - pub hrmp_channel_max_capacity: _0, - pub hrmp_channel_max_total_size: _0, - pub hrmp_max_parachain_inbound_channels: _0, - pub hrmp_max_parathread_inbound_channels: _0, - pub hrmp_channel_max_message_size: _0, - pub code_retention_period: _0, - pub parathread_cores: _0, - pub parathread_retries: _0, - pub group_rotation_frequency: _0, - pub chain_availability_period: _0, - pub thread_availability_period: _0, - pub scheduling_lookahead: _0, - pub max_validators_per_core: ::core::option::Option<_0>, - pub max_validators: ::core::option::Option<_0>, - pub dispute_period: _0, - pub dispute_post_conclusion_acceptance_period: _0, - pub dispute_max_spam_slots: _0, - pub dispute_conclusion_by_time_out_period: _0, - pub no_show_slots: _0, - pub n_delay_tranches: _0, - pub zeroth_delay_tranche_width: _0, - pub needed_approvals: _0, - pub relay_vrf_modulo_samples: _0, - pub ump_max_individual_weight: ::core::primitive::u64, - } - } - } pub mod pallet { use super::runtime_types; #[derive( @@ -47994,6 +48141,36 @@ pub mod api { allowed_slots: runtime_types::sp_consensus_babe::AllowedSlots, }, } + #[derive( + :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, + )] + pub enum PreDigest { + # [codec (index = 1)] Primary (runtime_types :: sp_consensus_babe :: digests :: PrimaryPreDigest ,) , # [codec (index = 2)] SecondaryPlain (runtime_types :: sp_consensus_babe :: digests :: SecondaryPlainPreDigest ,) , # [codec (index = 3)] SecondaryVRF (runtime_types :: sp_consensus_babe :: digests :: SecondaryVRFPreDigest ,) , } + #[derive( + :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, + )] + pub struct PrimaryPreDigest { + pub authority_index: ::core::primitive::u32, + pub slot: runtime_types::sp_consensus_slots::Slot, + pub vrf_output: [::core::primitive::u8; 32usize], + pub vrf_proof: [::core::primitive::u8; 64usize], + } + #[derive( + :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, + )] + pub struct SecondaryPlainPreDigest { + pub authority_index: ::core::primitive::u32, + pub slot: runtime_types::sp_consensus_slots::Slot, + } + #[derive( + :: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug, + )] + pub struct SecondaryVRFPreDigest { + pub authority_index: ::core::primitive::u32, + pub slot: runtime_types::sp_consensus_slots::Slot, + pub vrf_output: [::core::primitive::u8; 32usize], + pub vrf_proof: [::core::primitive::u8; 64usize], + } } #[derive(:: subxt :: codec :: Decode, :: subxt :: codec :: Encode, Debug)] pub enum AllowedSlots { @@ -49967,14 +50144,17 @@ pub mod api { X: ::subxt::extrinsic::ExtrinsicParams, { pub fn validate_metadata(&'a self) -> Result<(), ::subxt::MetadataError> { - let locked_metadata = self.client.metadata(); - let metadata = locked_metadata.read(); - if metadata.metadata_hash(&PALLETS) + let runtime_metadata_hash = { + let locked_metadata = self.client.metadata(); + let metadata = locked_metadata.read(); + metadata.metadata_hash(&PALLETS) + }; + if runtime_metadata_hash != [ - 222u8, 70u8, 96u8, 67u8, 220u8, 49u8, 147u8, 114u8, 199u8, 254u8, - 88u8, 102u8, 188u8, 14u8, 180u8, 163u8, 55u8, 109u8, 43u8, 71u8, - 135u8, 161u8, 80u8, 151u8, 66u8, 252u8, 126u8, 104u8, 59u8, 80u8, - 140u8, 193u8, + 210u8, 45u8, 31u8, 79u8, 151u8, 149u8, 38u8, 156u8, 209u8, 36u8, + 248u8, 47u8, 243u8, 234u8, 251u8, 113u8, 31u8, 72u8, 9u8, 97u8, + 118u8, 172u8, 164u8, 60u8, 56u8, 158u8, 219u8, 77u8, 169u8, 230u8, + 148u8, 51u8, ] { Err(::subxt::MetadataError::IncompatibleMetadata) From 81d39df39a9d94335924bc6fd79f560cf09d3e42 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 11 May 2022 17:42:31 +0300 Subject: [PATCH 2/3] Update artifacts Signed-off-by: Alexandru Vasile --- artifacts/polkadot_metadata.scale | Bin 331013 -> 332025 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/artifacts/polkadot_metadata.scale b/artifacts/polkadot_metadata.scale index ba710c06e2a2d2d039f4acaa836b64d44dcddd1f..f0676eace69d113cf5000ecf25ba91db748d7013 100644 GIT binary patch delta 19854 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 NMEJo4$D(@2{{w8-LfQZT delta 18259 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 Tkbx)UCr(R Date: Wed, 11 May 2022 18:04:15 +0300 Subject: [PATCH 3/3] Change CLI default to bytes Signed-off-by: Alexandru Vasile --- cli/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index 625a94f7bf..ac99f499ce 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -70,7 +70,7 @@ enum Command { )] url: url::Url, /// the format of the metadata to display: `json`, `hex` or `bytes` - #[structopt(long, short, default_value = "json")] + #[structopt(long, short, default_value = "bytes")] format: String, }, /// Generate runtime API client code from metadata.