Skip to content
Snippets Groups Projects

Upgrade Polkadot-v1.6.0

Merged Benjamin Gallois requested to merge upgrade_polkadot_v1.6.0_2 into master
Compare and Show latest version
5 files
+ 722
408
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -18,122 +18,160 @@
@@ -18,122 +18,160 @@
use super::*;
use super::*;
use frame_benchmarking::benchmarks;
use frame_benchmarking::v2::*;
use frame_system::RawOrigin;
use frame_system::RawOrigin;
use sp_runtime::traits::Zero;
use sp_runtime::traits::Zero;
#[cfg(test)]
use maplit::btreemap;
use crate::Pallet;
use crate::Pallet;
fn assert_has_event<T: Config>(generic_event: <T as Config>::RuntimeEvent) {
#[benchmarks(
frame_system::Pallet::<T>::assert_has_event(generic_event.into());
where
}
<T as Config>::IdtyIndex: From<u32>,
 
)]
 
mod benchmarks {
 
use super::*;
fn add_certs<T: Config>(i: u32, receiver: T::IdtyIndex) -> Result<(), &'static str> {
fn assert_has_event<T: Config>(generic_event: <T as Config>::RuntimeEvent) {
Pallet::<T>::remove_all_certs_received_by(RawOrigin::Root.into(), receiver)?;
frame_system::Pallet::<T>::assert_has_event(generic_event.into());
for j in 1..i {
Pallet::<T>::do_add_cert_checked(j.into(), receiver, false)?;
}
}
assert!(
CertsByReceiver::<T>::get(receiver).len() as u32 == i - 1,
"Certs not added",
);
Ok(())
}
benchmarks! {
fn add_certs<T: Config>(i: u32, receiver: T::IdtyIndex) -> Result<(), &'static str> {
where_clause {
Pallet::<T>::remove_all_certs_received_by(RawOrigin::Root.into(), receiver)?;
where
for j in 1..i {
T::IdtyIndex: From<u32>,
Pallet::<T>::do_add_cert_checked(j.into(), receiver, false)?;
 
}
 
assert!(
 
CertsByReceiver::<T>::get(receiver).len() as u32 == i - 1,
 
"Certs not added",
 
);
 
Ok(())
}
}
add_cert {
 
#[benchmark]
 
fn add_cert() -> Result<(), BenchmarkError> {
let issuer: T::IdtyIndex = 1.into();
let issuer: T::IdtyIndex = 1.into();
let caller: T::AccountId = T::IdtyAttr::owner_key(issuer).unwrap();
let caller: T::AccountId = T::IdtyAttr::owner_key(issuer).unwrap();
let caller_origin: <T as frame_system::Config>::RuntimeOrigin = RawOrigin::Signed(caller.clone()).into();
let receiver: T::IdtyIndex = 2.into();
let receiver: T::IdtyIndex = 2.into();
Pallet::<T>::del_cert(RawOrigin::Root.into(), issuer, receiver)?;
Pallet::<T>::del_cert(RawOrigin::Root.into(), issuer, receiver)?;
let issuer_cert: u32 = StorageIdtyCertMeta::<T>::get(issuer).issued_count;
let receiver_cert: u32 = StorageIdtyCertMeta::<T>::get(receiver).received_count;
frame_system::pallet::Pallet::<T>::set_block_number(T::CertPeriod::get());
frame_system::pallet::Pallet::<T>::set_block_number(T::CertPeriod::get());
}: _<T::RuntimeOrigin>(caller_origin, receiver)
verify {
#[extrinsic_call]
assert_has_event::<T>(Event::<T>::CertAdded{ issuer, receiver }.into());
_(RawOrigin::Signed(caller), receiver);
 
 
assert_has_event::<T>(Event::<T>::CertAdded { issuer, receiver }.into());
 
Ok(())
}
}
renew_cert {
#[benchmark]
 
fn renew_cert() -> Result<(), BenchmarkError> {
let issuer: T::IdtyIndex = 1.into();
let issuer: T::IdtyIndex = 1.into();
let caller: T::AccountId = T::IdtyAttr::owner_key(issuer).unwrap();
let caller: T::AccountId = T::IdtyAttr::owner_key(issuer).unwrap();
let caller_origin: <T as frame_system::Config>::RuntimeOrigin = RawOrigin::Signed(caller.clone()).into();
let receiver: T::IdtyIndex = 2.into();
let receiver: T::IdtyIndex = 2.into();
Pallet::<T>::del_cert(RawOrigin::Root.into(), issuer, receiver)?;
Pallet::<T>::del_cert(RawOrigin::Root.into(), issuer, receiver)?;
let issuer_cert: u32 = StorageIdtyCertMeta::<T>::get(issuer).issued_count;
let receiver_cert: u32 = StorageIdtyCertMeta::<T>::get(receiver).received_count;
frame_system::pallet::Pallet::<T>::set_block_number(T::CertPeriod::get());
frame_system::pallet::Pallet::<T>::set_block_number(T::CertPeriod::get());
Pallet::<T>::add_cert(caller_origin.clone(), receiver)?;
Pallet::<T>::add_cert(RawOrigin::Signed(caller.clone()).into(), receiver)?;
frame_system::pallet::Pallet::<T>::set_block_number(T::CertPeriod::get() + T::CertPeriod::get());
frame_system::pallet::Pallet::<T>::set_block_number(
}: _<T::RuntimeOrigin>(caller_origin, receiver)
T::CertPeriod::get() + T::CertPeriod::get(),
verify {
);
assert_has_event::<T>(Event::<T>::CertAdded{ issuer, receiver }.into());
 
#[extrinsic_call]
 
_(RawOrigin::Signed(caller), receiver);
 
 
assert_has_event::<T>(Event::<T>::CertAdded { issuer, receiver }.into());
 
Ok(())
}
}
del_cert {
#[benchmark]
 
fn del_cert() -> Result<(), BenchmarkError> {
let issuer: T::IdtyIndex = 1.into();
let issuer: T::IdtyIndex = 1.into();
let receiver: T::IdtyIndex = 2.into();
let receiver: T::IdtyIndex = 2.into();
// try to add cert if missing, else ignore
// try to add cert if missing, else ignore
// this depends on initial data
// this depends on initial data
let _ = Pallet::<T>::do_add_cert_checked(issuer, receiver, false);
let _ = Pallet::<T>::do_add_cert_checked(issuer, receiver, false);
let receiver_cert: u32 = StorageIdtyCertMeta::<T>::get(receiver).received_count;
let issuer_cert: u32 = StorageIdtyCertMeta::<T>::get(issuer).issued_count;
#[extrinsic_call]
}: _<T::RuntimeOrigin>(RawOrigin::Root.into(), issuer, receiver)
_(RawOrigin::Root, issuer, receiver);
verify {
assert_has_event::<T>(Event::<T>::CertRemoved{ issuer, receiver, expiration: false }.into());
assert_has_event::<T>(
 
Event::<T>::CertRemoved {
 
issuer,
 
receiver,
 
expiration: false,
 
}
 
.into(),
 
);
 
Ok(())
}
}
remove_all_certs_received_by {
#[benchmark]
 
fn remove_all_certs_received_by(i: Linear<2, 1_000>) -> Result<(), BenchmarkError> {
let receiver: T::IdtyIndex = 0.into();
let receiver: T::IdtyIndex = 0.into();
let i in 2..1000 => add_certs::<T>(i, receiver)?;
add_certs::<T>(i, receiver)?;
}: _<T::RuntimeOrigin>(RawOrigin::Root.into(), receiver)
verify {
#[extrinsic_call]
assert!(CertsByReceiver::<T>::get(receiver).is_empty() );
_(RawOrigin::Root, receiver);
 
 
assert!(CertsByReceiver::<T>::get(receiver).is_empty());
 
Ok(())
}
}
on_initialize {
#[benchmark]
 
fn on_initialize() {
assert!(CertsRemovableOn::<T>::try_get(BlockNumberFor::<T>::zero()).is_err());
assert!(CertsRemovableOn::<T>::try_get(BlockNumberFor::<T>::zero()).is_err());
}: {Pallet::<T>::on_initialize(BlockNumberFor::<T>::zero());}
do_remove_cert_noop {
#[block]
}: {Pallet::<T>::do_remove_cert(100.into(), 101.into(), Some(BlockNumberFor::<T>::zero()));}
{
 
Pallet::<T>::on_initialize(BlockNumberFor::<T>::zero());
 
}
 
}
 
 
#[benchmark]
 
fn do_remove_cert_noop() {
 
#[block]
 
{
 
Pallet::<T>::do_remove_cert(100.into(), 101.into(), Some(BlockNumberFor::<T>::zero()));
 
}
 
}
do_remove_cert {
#[benchmark]
 
fn do_remove_cert() -> Result<(), BenchmarkError> {
let issuer: T::IdtyIndex = 1.into();
let issuer: T::IdtyIndex = 1.into();
let receiver: T::IdtyIndex = 0.into();
let receiver: T::IdtyIndex = 0.into();
Pallet::<T>::do_remove_cert(issuer, receiver, None);
Pallet::<T>::do_remove_cert(issuer, receiver, None);
Pallet::<T>::do_add_cert_checked(issuer, receiver, false)?;
Pallet::<T>::do_add_cert_checked(issuer, receiver, false)?;
let issuer_cert: u32 = StorageIdtyCertMeta::<T>::get(issuer).issued_count;
let receiver_cert: u32 = StorageIdtyCertMeta::<T>::get(receiver).received_count;
let block_number = T::ValidityPeriod::get();
let block_number = T::ValidityPeriod::get();
frame_system::pallet::Pallet::<T>::set_block_number(block_number);
frame_system::pallet::Pallet::<T>::set_block_number(block_number);
}: {Pallet::<T>::do_remove_cert(issuer, receiver, Some(block_number));}
verify {
#[block]
assert_has_event::<T>(Event::<T>::CertRemoved{ issuer, receiver, expiration: true }.into());
{
 
Pallet::<T>::do_remove_cert(issuer, receiver, Some(block_number));
 
}
 
 
assert_has_event::<T>(
 
Event::<T>::CertRemoved {
 
issuer,
 
receiver,
 
expiration: true,
 
}
 
.into(),
 
);
 
Ok(())
}
}
impl_benchmark_test_suite!(
impl_benchmark_test_suite!(
Pallet,
Pallet,
crate::mock::new_test_ext(crate::mock::DefaultCertificationConfig {
crate::mock::new_test_ext(crate::mock::DefaultCertificationConfig {
apply_cert_period_at_genesis: true,
apply_cert_period_at_genesis: true,
certs_by_receiver: btreemap![
certs_by_receiver: maplit::btreemap![
0 => btreemap![
0 => maplit::btreemap![
1 => Some(7),
1 => Some(7),
2 => Some(9),
2 => Some(9),
],
],
1 => btreemap![
1 => maplit::btreemap![
0 => Some(10),
0 => Some(10),
2 => Some(3),
2 => Some(3),
],
],
] ,
],
}),
}),
crate::mock::Test
crate::mock::Test
);
);
Loading