mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-10-29 15:09:49 +00:00
[NFTs] Update attributes with offchain signature (#13390)
* Allow to mint with the pre-signed signatures * Another try * WIP: test encoder * Fix the deposits * Refactoring + tests + benchmarks * Add sp-core/runtime-benchmarks * Remove sp-core from dev deps * Enable full_crypto for benchmarks * Typo * Fix * Update frame/nfts/src/mock.rs Co-authored-by: Squirrel <gilescope@gmail.com> * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_nfts * Add docs * Add attributes into the pre-signed object & track the deposit owner for attributes * Update docs * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_nfts * Add the number of attributes provided to weights * Support pre-signed attributes * Update docs * Fix merge artifacts * Update docs * Add more tests * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_nfts * Update frame/nfts/src/types.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Update types.rs --------- Co-authored-by: Squirrel <gilescope@gmail.com> Co-authored-by: command-bot <> Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
This commit is contained in:
authored and
1 parent
35a89957ca
commit
af25310eb0
6 files changed
+782
-183
No files matched your search
@@ -773,5 +773,55 @@ benchmarks_instance_pallet! {
|
||||
assert_last_event::<T, I>(Event::ItemMetadataSet { collection, item, data: metadata }.into());
|
||||
}
|
||||
|
||||
set_attributes_pre_signed {
|
||||
let n in 0 .. T::MaxAttributesPerCall::get() as u32;
|
||||
let (collection, _, _) = create_collection::<T, I>();
|
||||
|
||||
let item_owner: T::AccountId = account("item_owner", 0, SEED);
|
||||
let item_owner_lookup = T::Lookup::unlookup(item_owner.clone());
|
||||
|
||||
let signer_public = sr25519_generate(0.into(), None);
|
||||
let signer: T::AccountId = MultiSigner::Sr25519(signer_public).into_account().into();
|
||||
|
||||
T::Currency::make_free_balance_be(&item_owner, DepositBalanceOf::<T, I>::max_value());
|
||||
|
||||
let item = T::Helper::item(0);
|
||||
assert_ok!(Nfts::<T, I>::force_mint(
|
||||
SystemOrigin::Root.into(),
|
||||
collection,
|
||||
item,
|
||||
item_owner_lookup.clone(),
|
||||
default_item_config(),
|
||||
));
|
||||
|
||||
let mut attributes = vec![];
|
||||
let attribute_value = vec![0u8; T::ValueLimit::get() as usize];
|
||||
for i in 0..n {
|
||||
let attribute_key = make_filled_vec(i as u16, T::KeyLimit::get() as usize);
|
||||
attributes.push((attribute_key, attribute_value.clone()));
|
||||
}
|
||||
let pre_signed_data = PreSignedAttributes {
|
||||
collection,
|
||||
item,
|
||||
attributes,
|
||||
namespace: AttributeNamespace::Account(signer.clone()),
|
||||
deadline: One::one(),
|
||||
};
|
||||
let message = Encode::encode(&pre_signed_data);
|
||||
let signature = MultiSignature::Sr25519(sr25519_sign(0.into(), &signer_public, &message).unwrap());
|
||||
|
||||
frame_system::Pallet::<T>::set_block_number(One::one());
|
||||
}: _(SystemOrigin::Signed(item_owner.clone()), pre_signed_data, signature.into(), signer.clone())
|
||||
verify {
|
||||
assert_last_event::<T, I>(
|
||||
Event::PreSignedAttributesSet {
|
||||
collection,
|
||||
item,
|
||||
namespace: AttributeNamespace::Account(signer.clone()),
|
||||
}
|
||||
.into(),
|
||||
);
|
||||
}
|
||||
|
||||
impl_benchmark_test_suite!(Nfts, crate::mock::new_test_ext(), crate::mock::Test);
|
||||
}
|
||||
@@ -165,6 +165,59 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) fn do_set_attributes_pre_signed(
|
||||
origin: T::AccountId,
|
||||
data: PreSignedAttributesOf<T, I>,
|
||||
signer: T::AccountId,
|
||||
) -> DispatchResult {
|
||||
let PreSignedAttributes { collection, item, attributes, namespace, deadline } = data;
|
||||
|
||||
ensure!(
|
||||
attributes.len() <= T::MaxAttributesPerCall::get() as usize,
|
||||
Error::<T, I>::MaxAttributesLimitReached
|
||||
);
|
||||
|
||||
let now = frame_system::Pallet::<T>::block_number();
|
||||
ensure!(deadline >= now, Error::<T, I>::DeadlineExpired);
|
||||
|
||||
let item_details =
|
||||
Item::<T, I>::get(&collection, &item).ok_or(Error::<T, I>::UnknownItem)?;
|
||||
ensure!(item_details.owner == origin, Error::<T, I>::NoPermission);
|
||||
|
||||
// Only the CollectionOwner and Account() namespaces could be updated in this way.
|
||||
// For the Account() namespace we check and set the approval if it wasn't set before.
|
||||
match &namespace {
|
||||
AttributeNamespace::CollectionOwner => {},
|
||||
AttributeNamespace::Account(account) => {
|
||||
ensure!(account == &signer, Error::<T, I>::NoPermission);
|
||||
let approvals = ItemAttributesApprovalsOf::<T, I>::get(&collection, &item);
|
||||
if !approvals.contains(account) {
|
||||
Self::do_approve_item_attributes(
|
||||
origin.clone(),
|
||||
collection,
|
||||
item,
|
||||
account.clone(),
|
||||
)?;
|
||||
}
|
||||
},
|
||||
_ => return Err(Error::<T, I>::WrongNamespace.into()),
|
||||
}
|
||||
|
||||
for (key, value) in attributes {
|
||||
Self::do_set_attribute(
|
||||
signer.clone(),
|
||||
collection,
|
||||
Some(item),
|
||||
namespace.clone(),
|
||||
Self::construct_attribute_key(key)?,
|
||||
Self::construct_attribute_value(value)?,
|
||||
origin.clone(),
|
||||
)?;
|
||||
}
|
||||
Self::deposit_event(Event::PreSignedAttributesSet { collection, item, namespace });
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) fn do_clear_attribute(
|
||||
maybe_check_owner: Option<T::AccountId>,
|
||||
collection: T::CollectionId,
|
||||
|
||||
@@ -526,6 +526,12 @@ pub mod pallet {
|
||||
price: Option<PriceWithDirection<ItemPrice<T, I>>>,
|
||||
deadline: <T as SystemConfig>::BlockNumber,
|
||||
},
|
||||
/// New attributes have been set for an `item` of the `collection`.
|
||||
PreSignedAttributesSet {
|
||||
collection: T::CollectionId,
|
||||
item: T::ItemId,
|
||||
namespace: AttributeNamespace<T::AccountId>,
|
||||
},
|
||||
}
|
||||
|
||||
#[pallet::error]
|
||||
@@ -614,6 +620,8 @@ pub mod pallet {
|
||||
IncorrectMetadata,
|
||||
/// Can't set more attributes per one call.
|
||||
MaxAttributesLimitReached,
|
||||
/// The provided namespace isn't supported in this call.
|
||||
WrongNamespace,
|
||||
}
|
||||
|
||||
#[pallet::call]
|
||||
@@ -1824,6 +1832,33 @@ pub mod pallet {
|
||||
ensure!(signature.verify(&*msg, &signer), Error::<T, I>::WrongSignature);
|
||||
Self::do_mint_pre_signed(origin, mint_data, signer)
|
||||
}
|
||||
|
||||
/// 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.
|
||||
#[pallet::call_index(38)]
|
||||
#[pallet::weight(T::WeightInfo::set_attributes_pre_signed(data.attributes.len() as u32))]
|
||||
pub fn set_attributes_pre_signed(
|
||||
origin: OriginFor<T>,
|
||||
data: PreSignedAttributesOf<T, I>,
|
||||
signature: T::OffchainSignature,
|
||||
signer: T::AccountId,
|
||||
) -> DispatchResult {
|
||||
let origin = ensure_signed(origin)?;
|
||||
let msg = Encode::encode(&data);
|
||||
ensure!(signature.verify(&*msg, &signer), Error::<T, I>::WrongSignature);
|
||||
Self::do_set_attributes_pre_signed(origin, data, signer)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3176,3 +3176,311 @@ fn pre_signed_mints_should_work() {
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_signed_attributes_should_work() {
|
||||
new_test_ext().execute_with(|| {
|
||||
let user_1_pair = sp_core::sr25519::Pair::from_string("//Alice", None).unwrap();
|
||||
let user_1_signer = MultiSigner::Sr25519(user_1_pair.public());
|
||||
let user_1 = user_1_signer.clone().into_account();
|
||||
let user_2 = account(2);
|
||||
let user_3_pair = sp_core::sr25519::Pair::from_string("//Bob", None).unwrap();
|
||||
let user_3_signer = MultiSigner::Sr25519(user_3_pair.public());
|
||||
let user_3 = user_3_signer.clone().into_account();
|
||||
let collection_id = 0;
|
||||
let item_id = 0;
|
||||
|
||||
Balances::make_free_balance_be(&user_1, 100);
|
||||
Balances::make_free_balance_be(&user_2, 100);
|
||||
Balances::make_free_balance_be(&user_3, 100);
|
||||
assert_ok!(Nfts::create(
|
||||
RuntimeOrigin::signed(user_1.clone()),
|
||||
user_1.clone(),
|
||||
collection_config_with_all_settings_enabled(),
|
||||
));
|
||||
assert_ok!(Nfts::mint(
|
||||
RuntimeOrigin::signed(user_1.clone()),
|
||||
collection_id,
|
||||
item_id,
|
||||
user_2.clone(),
|
||||
None,
|
||||
));
|
||||
|
||||
// validate the CollectionOwner namespace
|
||||
let pre_signed_data = PreSignedAttributes {
|
||||
collection: 0,
|
||||
item: 0,
|
||||
attributes: vec![(vec![0], vec![1]), (vec![2], vec![3])],
|
||||
namespace: AttributeNamespace::CollectionOwner,
|
||||
deadline: 10000000,
|
||||
};
|
||||
let message = Encode::encode(&pre_signed_data);
|
||||
let signature = MultiSignature::Sr25519(user_1_pair.sign(&message));
|
||||
|
||||
assert_ok!(Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_2.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_1.clone(),
|
||||
));
|
||||
|
||||
assert_eq!(
|
||||
attributes(0),
|
||||
vec![
|
||||
(Some(0), AttributeNamespace::CollectionOwner, bvec![0], bvec![1]),
|
||||
(Some(0), AttributeNamespace::CollectionOwner, bvec![2], bvec![3]),
|
||||
]
|
||||
);
|
||||
let attribute_key: BoundedVec<_, _> = bvec![0];
|
||||
let (_, deposit) = Attribute::<Test>::get((
|
||||
0,
|
||||
Some(0),
|
||||
AttributeNamespace::CollectionOwner,
|
||||
&attribute_key,
|
||||
))
|
||||
.unwrap();
|
||||
assert_eq!(deposit.account, Some(user_2.clone()));
|
||||
assert_eq!(deposit.amount, 3);
|
||||
|
||||
assert_eq!(Balances::free_balance(&user_1), 100 - 2 - 1); // 2 - collection deposit, 1 - item deposit
|
||||
assert_eq!(Balances::free_balance(&user_2), 100 - 6); // 6 - attributes
|
||||
|
||||
// validate the deposit gets returned on attribute update from collection's owner
|
||||
assert_ok!(Nfts::set_attribute(
|
||||
RuntimeOrigin::signed(user_1.clone()),
|
||||
collection_id,
|
||||
Some(item_id),
|
||||
AttributeNamespace::CollectionOwner,
|
||||
bvec![0],
|
||||
bvec![1],
|
||||
));
|
||||
let (_, deposit) = Attribute::<Test>::get((
|
||||
0,
|
||||
Some(0),
|
||||
AttributeNamespace::CollectionOwner,
|
||||
&attribute_key,
|
||||
))
|
||||
.unwrap();
|
||||
assert_eq!(deposit.account, None);
|
||||
assert_eq!(deposit.amount, 3);
|
||||
|
||||
// validate we don't partially modify the state
|
||||
assert_eq!(item_attributes_approvals(collection_id, item_id), vec![]);
|
||||
let pre_signed_data = PreSignedAttributes {
|
||||
collection: 0,
|
||||
item: 0,
|
||||
attributes: vec![(vec![0], vec![1]), (vec![2; 51], vec![3])],
|
||||
namespace: AttributeNamespace::Account(user_3.clone()),
|
||||
deadline: 10000000,
|
||||
};
|
||||
let message = Encode::encode(&pre_signed_data);
|
||||
let signature = MultiSignature::Sr25519(user_3_pair.sign(&message));
|
||||
|
||||
assert_noop!(
|
||||
Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_2.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_3.clone(),
|
||||
),
|
||||
Error::<Test>::IncorrectData
|
||||
);
|
||||
|
||||
// no new approval was set
|
||||
assert_eq!(item_attributes_approvals(collection_id, item_id), vec![]);
|
||||
|
||||
// no new attributes were added
|
||||
assert_eq!(
|
||||
attributes(0),
|
||||
vec![
|
||||
(Some(0), AttributeNamespace::CollectionOwner, bvec![0], bvec![1]),
|
||||
(Some(0), AttributeNamespace::CollectionOwner, bvec![2], bvec![3]),
|
||||
]
|
||||
);
|
||||
|
||||
// validate the Account namespace
|
||||
let pre_signed_data = PreSignedAttributes {
|
||||
collection: 0,
|
||||
item: 0,
|
||||
attributes: vec![(vec![0], vec![1]), (vec![2], vec![3])],
|
||||
namespace: AttributeNamespace::Account(user_3.clone()),
|
||||
deadline: 10000000,
|
||||
};
|
||||
let message = Encode::encode(&pre_signed_data);
|
||||
let signature = MultiSignature::Sr25519(user_3_pair.sign(&message));
|
||||
|
||||
assert_ok!(Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_2.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_3.clone(),
|
||||
));
|
||||
|
||||
assert_eq!(
|
||||
attributes(0),
|
||||
vec![
|
||||
(Some(0), AttributeNamespace::CollectionOwner, bvec![0], bvec![1]),
|
||||
(Some(0), AttributeNamespace::Account(user_3.clone()), bvec![0], bvec![1]),
|
||||
(Some(0), AttributeNamespace::CollectionOwner, bvec![2], bvec![3]),
|
||||
(Some(0), AttributeNamespace::Account(user_3.clone()), bvec![2], bvec![3]),
|
||||
]
|
||||
);
|
||||
assert_eq!(item_attributes_approvals(collection_id, item_id), vec![user_3.clone()]);
|
||||
|
||||
let attribute_key: BoundedVec<_, _> = bvec![0];
|
||||
let (_, deposit) = Attribute::<Test>::get((
|
||||
0,
|
||||
Some(0),
|
||||
AttributeNamespace::Account(user_3.clone()),
|
||||
&attribute_key,
|
||||
))
|
||||
.unwrap();
|
||||
assert_eq!(deposit.account, Some(user_2.clone()));
|
||||
assert_eq!(deposit.amount, 3);
|
||||
|
||||
assert_eq!(Balances::free_balance(&user_2), 100 - 9);
|
||||
assert_eq!(Balances::free_balance(&user_3), 100);
|
||||
|
||||
// validate the deposit gets returned on attribute update from user_3
|
||||
assert_ok!(Nfts::set_attribute(
|
||||
RuntimeOrigin::signed(user_3.clone()),
|
||||
collection_id,
|
||||
Some(item_id),
|
||||
AttributeNamespace::Account(user_3.clone()),
|
||||
bvec![0],
|
||||
bvec![1],
|
||||
));
|
||||
let (_, deposit) = Attribute::<Test>::get((
|
||||
0,
|
||||
Some(0),
|
||||
AttributeNamespace::Account(user_3.clone()),
|
||||
&attribute_key,
|
||||
))
|
||||
.unwrap();
|
||||
assert_eq!(deposit.account, Some(user_3.clone()));
|
||||
assert_eq!(deposit.amount, 3);
|
||||
|
||||
assert_eq!(Balances::free_balance(&user_2), 100 - 6);
|
||||
assert_eq!(Balances::free_balance(&user_3), 100 - 3);
|
||||
|
||||
// can't update with the wrong signature
|
||||
assert_noop!(
|
||||
Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_2.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_1.clone(),
|
||||
),
|
||||
Error::<Test>::WrongSignature
|
||||
);
|
||||
|
||||
// can't update if I don't own that item
|
||||
assert_noop!(
|
||||
Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_3.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_3.clone(),
|
||||
),
|
||||
Error::<Test>::NoPermission
|
||||
);
|
||||
|
||||
// can't update the CollectionOwner namespace if the signer is not an owner of that
|
||||
// collection
|
||||
let pre_signed_data = PreSignedAttributes {
|
||||
collection: 0,
|
||||
item: 0,
|
||||
attributes: vec![(vec![0], vec![1]), (vec![2], vec![3])],
|
||||
namespace: AttributeNamespace::CollectionOwner,
|
||||
deadline: 10000000,
|
||||
};
|
||||
let message = Encode::encode(&pre_signed_data);
|
||||
let signature = MultiSignature::Sr25519(user_3_pair.sign(&message));
|
||||
|
||||
assert_noop!(
|
||||
Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_2.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_3.clone(),
|
||||
),
|
||||
Error::<Test>::NoPermission
|
||||
);
|
||||
|
||||
// validate signature's expiration
|
||||
System::set_block_number(10000001);
|
||||
assert_noop!(
|
||||
Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_2.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_3.clone(),
|
||||
),
|
||||
Error::<Test>::DeadlineExpired
|
||||
);
|
||||
System::set_block_number(1);
|
||||
|
||||
// validate item & collection
|
||||
let pre_signed_data = PreSignedAttributes {
|
||||
collection: 1,
|
||||
item: 1,
|
||||
attributes: vec![(vec![0], vec![1]), (vec![2], vec![3])],
|
||||
namespace: AttributeNamespace::CollectionOwner,
|
||||
deadline: 10000000,
|
||||
};
|
||||
let message = Encode::encode(&pre_signed_data);
|
||||
let signature = MultiSignature::Sr25519(user_1_pair.sign(&message));
|
||||
|
||||
assert_noop!(
|
||||
Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_2.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_1.clone(),
|
||||
),
|
||||
Error::<Test>::UnknownItem
|
||||
);
|
||||
|
||||
// validate max attributes limit
|
||||
let pre_signed_data = PreSignedAttributes {
|
||||
collection: 1,
|
||||
item: 1,
|
||||
attributes: vec![(vec![0], vec![1]), (vec![2], vec![3]), (vec![2], vec![3])],
|
||||
namespace: AttributeNamespace::CollectionOwner,
|
||||
deadline: 10000000,
|
||||
};
|
||||
let message = Encode::encode(&pre_signed_data);
|
||||
let signature = MultiSignature::Sr25519(user_1_pair.sign(&message));
|
||||
|
||||
assert_noop!(
|
||||
Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_2.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_1.clone(),
|
||||
),
|
||||
Error::<Test>::MaxAttributesLimitReached
|
||||
);
|
||||
|
||||
// validate the attribute's value length
|
||||
let pre_signed_data = PreSignedAttributes {
|
||||
collection: 0,
|
||||
item: 0,
|
||||
attributes: vec![(vec![0], vec![1]), (vec![2], vec![3; 51])],
|
||||
namespace: AttributeNamespace::CollectionOwner,
|
||||
deadline: 10000000,
|
||||
};
|
||||
let message = Encode::encode(&pre_signed_data);
|
||||
let signature = MultiSignature::Sr25519(user_1_pair.sign(&message));
|
||||
|
||||
assert_noop!(
|
||||
Nfts::set_attributes_pre_signed(
|
||||
RuntimeOrigin::signed(user_2.clone()),
|
||||
pre_signed_data.clone(),
|
||||
signature.clone(),
|
||||
user_1.clone(),
|
||||
),
|
||||
Error::<Test>::IncorrectData
|
||||
);
|
||||
})
|
||||
}
|
||||
@@ -67,6 +67,12 @@ pub(super) type PreSignedMintOf<T, I = ()> = PreSignedMint<
|
||||
<T as SystemConfig>::AccountId,
|
||||
<T as SystemConfig>::BlockNumber,
|
||||
>;
|
||||
pub(super) type PreSignedAttributesOf<T, I = ()> = PreSignedAttributes<
|
||||
<T as Config<I>>::CollectionId,
|
||||
<T as Config<I>>::ItemId,
|
||||
<T as SystemConfig>::AccountId,
|
||||
<T as SystemConfig>::BlockNumber,
|
||||
>;
|
||||
|
||||
pub trait Incrementable {
|
||||
fn increment(&self) -> Self;
|
||||
@@ -484,7 +490,7 @@ impl_codec_bitflags!(CollectionRoles, u8, CollectionRole);
|
||||
pub struct PreSignedMint<CollectionId, ItemId, AccountId, Deadline> {
|
||||
/// A collection of the item to be minted.
|
||||
pub(super) collection: CollectionId,
|
||||
/// Item's id.
|
||||
/// Item's ID.
|
||||
pub(super) item: ItemId,
|
||||
/// Additional item's key-value attributes.
|
||||
pub(super) attributes: Vec<(Vec<u8>, Vec<u8>)>,
|
||||
@@ -495,3 +501,17 @@ pub struct PreSignedMint<CollectionId, ItemId, AccountId, Deadline> {
|
||||
/// A deadline for the signature.
|
||||
pub(super) deadline: Deadline,
|
||||
}
|
||||
|
||||
#[derive(Clone, Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub struct PreSignedAttributes<CollectionId, ItemId, AccountId, Deadline> {
|
||||
/// Collection's ID.
|
||||
pub(super) collection: CollectionId,
|
||||
/// Item's ID.
|
||||
pub(super) item: ItemId,
|
||||
/// Key-value attributes.
|
||||
pub(super) attributes: Vec<(Vec<u8>, Vec<u8>)>,
|
||||
/// Attributes' namespace.
|
||||
pub(super) namespace: AttributeNamespace<AccountId>,
|
||||
/// A deadline for the signature.
|
||||
pub(super) deadline: Deadline,
|
||||
}
|
||||
+315
-182
@@ -18,9 +18,9 @@
|
||||
//! Autogenerated weights for pallet_nfts
|
||||
//!
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||
//! DATE: 2023-01-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! DATE: 2023-02-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! WORST CASE MAP SIZE: `1000000`
|
||||
//! HOSTNAME: `runner-b3zmxxc-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||
//! HOSTNAME: `runner-osnnfcqu-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
||||
|
||||
// Executed Command:
|
||||
@@ -87,6 +87,7 @@ pub trait WeightInfo {
|
||||
fn cancel_swap() -> Weight;
|
||||
fn claim_swap() -> Weight;
|
||||
fn mint_pre_signed(n: u32, ) -> Weight;
|
||||
fn set_attributes_pre_signed(n: u32, ) -> Weight;
|
||||
}
|
||||
|
||||
/// Weights for pallet_nfts using the Substrate node and recommended hardware.
|
||||
@@ -106,8 +107,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `214`
|
||||
// Estimated: `3054`
|
||||
// Minimum execution time: 33_666 nanoseconds.
|
||||
Weight::from_parts(34_405_000, 3054)
|
||||
// Minimum execution time: 33_769 nanoseconds.
|
||||
Weight::from_ref_time(36_031_000)
|
||||
.saturating_add(Weight::from_proof_size(3054))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(5_u64))
|
||||
}
|
||||
@@ -125,8 +127,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `42`
|
||||
// Estimated: `3054`
|
||||
// Minimum execution time: 22_028 nanoseconds.
|
||||
Weight::from_parts(23_030_000, 3054)
|
||||
// Minimum execution time: 21_767 nanoseconds.
|
||||
Weight::from_ref_time(22_565_000)
|
||||
.saturating_add(Weight::from_proof_size(3054))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(5_u64))
|
||||
}
|
||||
@@ -156,21 +159,22 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
fn destroy(_n: u32, m: u32, a: u32, ) -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `172781 + m * (127 ±0) + a * (402 ±0)`
|
||||
// Estimated: `3347427 + a * (2921 ±0) + m * (2615 ±0)`
|
||||
// Minimum execution time: 27_944_985 nanoseconds.
|
||||
Weight::from_parts(19_865_318_850, 3347427)
|
||||
// Standard Error: 32_345
|
||||
.saturating_add(Weight::from_ref_time(8_729_316).saturating_mul(m.into()))
|
||||
// Standard Error: 32_345
|
||||
.saturating_add(Weight::from_ref_time(10_264_491).saturating_mul(a.into()))
|
||||
// Estimated: `3347427 + m * (2615 ±0) + a * (2921 ±0)`
|
||||
// Minimum execution time: 26_973_627 nanoseconds.
|
||||
Weight::from_ref_time(19_692_361_714)
|
||||
.saturating_add(Weight::from_proof_size(3347427))
|
||||
// Standard Error: 17_036
|
||||
.saturating_add(Weight::from_ref_time(7_797_219).saturating_mul(m.into()))
|
||||
// Standard Error: 17_036
|
||||
.saturating_add(Weight::from_ref_time(9_504_128).saturating_mul(a.into()))
|
||||
.saturating_add(T::DbWeight::get().reads(1004_u64))
|
||||
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into())))
|
||||
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into())))
|
||||
.saturating_add(T::DbWeight::get().writes(3005_u64))
|
||||
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into())))
|
||||
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into())))
|
||||
.saturating_add(Weight::from_proof_size(2921).saturating_mul(a.into()))
|
||||
.saturating_add(Weight::from_proof_size(2615).saturating_mul(m.into()))
|
||||
.saturating_add(Weight::from_proof_size(2921).saturating_mul(a.into()))
|
||||
}
|
||||
/// Storage: Nfts CollectionConfigOf (r:1 w:0)
|
||||
/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
|
||||
@@ -188,8 +192,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `448`
|
||||
// Estimated: `13506`
|
||||
// Minimum execution time: 43_925 nanoseconds.
|
||||
Weight::from_parts(45_885_000, 13506)
|
||||
// Minimum execution time: 44_837 nanoseconds.
|
||||
Weight::from_ref_time(46_794_000)
|
||||
.saturating_add(Weight::from_proof_size(13506))
|
||||
.saturating_add(T::DbWeight::get().reads(5_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(4_u64))
|
||||
}
|
||||
@@ -209,8 +214,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `448`
|
||||
// Estimated: `13506`
|
||||
// Minimum execution time: 42_832 nanoseconds.
|
||||
Weight::from_parts(44_621_000, 13506)
|
||||
// Minimum execution time: 43_976 nanoseconds.
|
||||
Weight::from_ref_time(44_831_000)
|
||||
.saturating_add(Weight::from_proof_size(13506))
|
||||
.saturating_add(T::DbWeight::get().reads(5_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(4_u64))
|
||||
}
|
||||
@@ -236,8 +242,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `647`
|
||||
// Estimated: `13573`
|
||||
// Minimum execution time: 47_787 nanoseconds.
|
||||
Weight::from_parts(49_204_000, 13573)
|
||||
// Minimum execution time: 48_233 nanoseconds.
|
||||
Weight::from_ref_time(50_113_000)
|
||||
.saturating_add(Weight::from_proof_size(13573))
|
||||
.saturating_add(T::DbWeight::get().reads(5_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(7_u64))
|
||||
}
|
||||
@@ -263,8 +270,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `882`
|
||||
// Estimated: `16109`
|
||||
// Minimum execution time: 55_524 nanoseconds.
|
||||
Weight::from_parts(56_962_000, 16109)
|
||||
// Minimum execution time: 55_452 nanoseconds.
|
||||
Weight::from_ref_time(57_642_000)
|
||||
.saturating_add(Weight::from_proof_size(16109))
|
||||
.saturating_add(T::DbWeight::get().reads(6_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(6_u64))
|
||||
}
|
||||
@@ -279,10 +287,11 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `756 + i * (140 ±0)`
|
||||
// Estimated: `5103 + i * (3336 ±0)`
|
||||
// Minimum execution time: 15_246 nanoseconds.
|
||||
Weight::from_parts(15_671_000, 5103)
|
||||
// Standard Error: 20_348
|
||||
.saturating_add(Weight::from_ref_time(14_692_422).saturating_mul(i.into()))
|
||||
// Minimum execution time: 15_598 nanoseconds.
|
||||
Weight::from_ref_time(15_926_000)
|
||||
.saturating_add(Weight::from_proof_size(5103))
|
||||
// Standard Error: 13_692
|
||||
.saturating_add(Weight::from_ref_time(14_040_741).saturating_mul(i.into()))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
|
||||
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
|
||||
@@ -296,8 +305,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `401`
|
||||
// Estimated: `5067`
|
||||
// Minimum execution time: 19_270 nanoseconds.
|
||||
Weight::from_parts(19_775_000, 5067)
|
||||
// Minimum execution time: 19_686 nanoseconds.
|
||||
Weight::from_ref_time(20_404_000)
|
||||
.saturating_add(Weight::from_proof_size(5067))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -309,8 +319,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `401`
|
||||
// Estimated: `5067`
|
||||
// Minimum execution time: 19_364 nanoseconds.
|
||||
Weight::from_parts(20_274_000, 5067)
|
||||
// Minimum execution time: 19_172 nanoseconds.
|
||||
Weight::from_ref_time(20_151_000)
|
||||
.saturating_add(Weight::from_proof_size(5067))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -322,8 +333,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `289`
|
||||
// Estimated: `5092`
|
||||
// Minimum execution time: 17_036 nanoseconds.
|
||||
Weight::from_parts(17_750_000, 5092)
|
||||
// Minimum execution time: 17_063 nanoseconds.
|
||||
Weight::from_ref_time(17_482_000)
|
||||
.saturating_add(Weight::from_proof_size(5092))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -337,8 +349,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `381`
|
||||
// Estimated: `5082`
|
||||
// Minimum execution time: 22_104 nanoseconds.
|
||||
Weight::from_parts(23_022_000, 5082)
|
||||
// Minimum execution time: 21_974 nanoseconds.
|
||||
Weight::from_ref_time(22_770_000)
|
||||
.saturating_add(Weight::from_proof_size(5082))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(4_u64))
|
||||
}
|
||||
@@ -350,8 +363,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `362`
|
||||
// Estimated: `2555`
|
||||
// Minimum execution time: 24_516 nanoseconds.
|
||||
Weight::from_parts(25_300_000, 2555)
|
||||
// Minimum execution time: 24_341 nanoseconds.
|
||||
Weight::from_ref_time(25_059_000)
|
||||
.saturating_add(Weight::from_proof_size(2555))
|
||||
.saturating_add(T::DbWeight::get().reads(1_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(5_u64))
|
||||
}
|
||||
@@ -363,8 +377,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `304`
|
||||
// Estimated: `2555`
|
||||
// Minimum execution time: 16_974 nanoseconds.
|
||||
Weight::from_parts(17_654_000, 2555)
|
||||
// Minimum execution time: 16_897 nanoseconds.
|
||||
Weight::from_ref_time(17_560_000)
|
||||
.saturating_add(Weight::from_proof_size(2555))
|
||||
.saturating_add(T::DbWeight::get().reads(1_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3_u64))
|
||||
}
|
||||
@@ -376,8 +391,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `242`
|
||||
// Estimated: `2555`
|
||||
// Minimum execution time: 13_190 nanoseconds.
|
||||
Weight::from_parts(13_826_000, 2555)
|
||||
// Minimum execution time: 13_239 nanoseconds.
|
||||
Weight::from_ref_time(13_963_000)
|
||||
.saturating_add(Weight::from_proof_size(2555))
|
||||
.saturating_add(T::DbWeight::get().reads(1_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -389,8 +405,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `445`
|
||||
// Estimated: `5078`
|
||||
// Minimum execution time: 17_336 nanoseconds.
|
||||
Weight::from_parts(18_242_000, 5078)
|
||||
// Minimum execution time: 17_187 nanoseconds.
|
||||
Weight::from_ref_time(17_942_000)
|
||||
.saturating_add(Weight::from_proof_size(5078))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -406,8 +423,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `474`
|
||||
// Estimated: `10547`
|
||||
// Minimum execution time: 40_791 nanoseconds.
|
||||
Weight::from_parts(42_489_000, 10547)
|
||||
// Minimum execution time: 40_925 nanoseconds.
|
||||
Weight::from_ref_time(42_733_000)
|
||||
.saturating_add(Weight::from_proof_size(10547))
|
||||
.saturating_add(T::DbWeight::get().reads(4_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -419,8 +437,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `337`
|
||||
// Estimated: `5476`
|
||||
// Minimum execution time: 24_620 nanoseconds.
|
||||
Weight::from_parts(25_370_000, 5476)
|
||||
// Minimum execution time: 24_486 nanoseconds.
|
||||
Weight::from_ref_time(25_409_000)
|
||||
.saturating_add(Weight::from_proof_size(5476))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -434,8 +453,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `916`
|
||||
// Estimated: `7999`
|
||||
// Minimum execution time: 36_411 nanoseconds.
|
||||
Weight::from_parts(37_439_000, 7999)
|
||||
// Minimum execution time: 36_643 nanoseconds.
|
||||
Weight::from_ref_time(37_805_000)
|
||||
.saturating_add(Weight::from_proof_size(7999))
|
||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -447,8 +467,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `379`
|
||||
// Estimated: `6492`
|
||||
// Minimum execution time: 16_696 nanoseconds.
|
||||
Weight::from_parts(17_411_000, 6492)
|
||||
// Minimum execution time: 16_798 nanoseconds.
|
||||
Weight::from_ref_time(17_326_000)
|
||||
.saturating_add(Weight::from_proof_size(6492))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -465,10 +486,11 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `899 + n * (396 ±0)`
|
||||
// Estimated: `12016 + n * (2921 ±0)`
|
||||
// Minimum execution time: 25_928 nanoseconds.
|
||||
Weight::from_parts(26_440_000, 12016)
|
||||
// Standard Error: 9_158
|
||||
.saturating_add(Weight::from_ref_time(9_271_441).saturating_mul(n.into()))
|
||||
// Minimum execution time: 25_524 nanoseconds.
|
||||
Weight::from_ref_time(26_107_000)
|
||||
.saturating_add(Weight::from_proof_size(12016))
|
||||
// Standard Error: 5_460
|
||||
.saturating_add(Weight::from_ref_time(9_030_830).saturating_mul(n.into()))
|
||||
.saturating_add(T::DbWeight::get().reads(4_u64))
|
||||
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||
@@ -487,8 +509,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `474`
|
||||
// Estimated: `10241`
|
||||
// Minimum execution time: 34_150 nanoseconds.
|
||||
Weight::from_parts(35_398_000, 10241)
|
||||
// Minimum execution time: 34_400 nanoseconds.
|
||||
Weight::from_ref_time(35_469_000)
|
||||
.saturating_add(Weight::from_proof_size(10241))
|
||||
.saturating_add(T::DbWeight::get().reads(4_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -502,8 +525,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `609`
|
||||
// Estimated: `7693`
|
||||
// Minimum execution time: 31_871 nanoseconds.
|
||||
Weight::from_parts(33_057_000, 7693)
|
||||
// Minimum execution time: 31_560 nanoseconds.
|
||||
Weight::from_ref_time(33_081_000)
|
||||
.saturating_add(Weight::from_proof_size(7693))
|
||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -517,8 +541,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `333`
|
||||
// Estimated: `7665`
|
||||
// Minimum execution time: 28_843 nanoseconds.
|
||||
Weight::from_parts(30_057_000, 7665)
|
||||
// Minimum execution time: 28_821 nanoseconds.
|
||||
Weight::from_ref_time(30_010_000)
|
||||
.saturating_add(Weight::from_proof_size(7665))
|
||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -532,8 +557,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `476`
|
||||
// Estimated: `7665`
|
||||
// Minimum execution time: 27_777 nanoseconds.
|
||||
Weight::from_parts(28_471_000, 7665)
|
||||
// Minimum execution time: 27_608 nanoseconds.
|
||||
Weight::from_ref_time(28_766_000)
|
||||
.saturating_add(Weight::from_proof_size(7665))
|
||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -547,8 +573,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `466`
|
||||
// Estimated: `8428`
|
||||
// Minimum execution time: 23_726 nanoseconds.
|
||||
Weight::from_parts(24_455_000, 8428)
|
||||
// Minimum execution time: 23_987 nanoseconds.
|
||||
Weight::from_ref_time(24_819_000)
|
||||
.saturating_add(Weight::from_proof_size(8428))
|
||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -560,8 +587,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `474`
|
||||
// Estimated: `5880`
|
||||
// Minimum execution time: 21_051 nanoseconds.
|
||||
Weight::from_parts(21_722_000, 5880)
|
||||
// Minimum execution time: 21_254 nanoseconds.
|
||||
Weight::from_ref_time(21_826_000)
|
||||
.saturating_add(Weight::from_proof_size(5880))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -573,8 +601,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `474`
|
||||
// Estimated: `5880`
|
||||
// Minimum execution time: 20_095 nanoseconds.
|
||||
Weight::from_parts(20_770_000, 5880)
|
||||
// Minimum execution time: 20_272 nanoseconds.
|
||||
Weight::from_ref_time(20_922_000)
|
||||
.saturating_add(Weight::from_proof_size(5880))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -584,8 +613,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `42`
|
||||
// Estimated: `2527`
|
||||
// Minimum execution time: 14_078 nanoseconds.
|
||||
Weight::from_parts(14_582_000, 2527)
|
||||
// Minimum execution time: 14_287 nanoseconds.
|
||||
Weight::from_ref_time(14_960_000)
|
||||
.saturating_add(Weight::from_proof_size(2527))
|
||||
.saturating_add(T::DbWeight::get().reads(1_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -597,8 +627,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `333`
|
||||
// Estimated: `5103`
|
||||
// Minimum execution time: 17_677 nanoseconds.
|
||||
Weight::from_parts(18_381_000, 5103)
|
||||
// Minimum execution time: 17_948 nanoseconds.
|
||||
Weight::from_ref_time(18_780_000)
|
||||
.saturating_add(Weight::from_proof_size(5103))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -610,8 +641,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `333`
|
||||
// Estimated: `5103`
|
||||
// Minimum execution time: 16_295 nanoseconds.
|
||||
Weight::from_parts(17_036_000, 5103)
|
||||
// Minimum execution time: 16_616 nanoseconds.
|
||||
Weight::from_ref_time(17_155_000)
|
||||
.saturating_add(Weight::from_proof_size(5103))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -627,8 +659,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `516`
|
||||
// Estimated: `8407`
|
||||
// Minimum execution time: 22_847 nanoseconds.
|
||||
Weight::from_parts(23_536_000, 8407)
|
||||
// Minimum execution time: 22_777 nanoseconds.
|
||||
Weight::from_ref_time(23_955_000)
|
||||
.saturating_add(Weight::from_proof_size(8407))
|
||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -652,8 +685,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `934`
|
||||
// Estimated: `16129`
|
||||
// Minimum execution time: 60_517 nanoseconds.
|
||||
Weight::from_parts(62_528_000, 16129)
|
||||
// Minimum execution time: 61_131 nanoseconds.
|
||||
Weight::from_ref_time(62_791_000)
|
||||
.saturating_add(Weight::from_proof_size(16129))
|
||||
.saturating_add(T::DbWeight::get().reads(6_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(6_u64))
|
||||
}
|
||||
@@ -662,10 +696,11 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `0`
|
||||
// Estimated: `0`
|
||||
// Minimum execution time: 1_866 nanoseconds.
|
||||
Weight::from_ref_time(3_949_301)
|
||||
// Standard Error: 11_044
|
||||
.saturating_add(Weight::from_ref_time(3_424_466).saturating_mul(n.into()))
|
||||
// Minimum execution time: 1_952 nanoseconds.
|
||||
Weight::from_ref_time(3_975_700)
|
||||
.saturating_add(Weight::from_proof_size(0))
|
||||
// Standard Error: 11_254
|
||||
.saturating_add(Weight::from_ref_time(3_501_698).saturating_mul(n.into()))
|
||||
}
|
||||
/// Storage: Nfts Item (r:2 w:0)
|
||||
/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
|
||||
@@ -675,8 +710,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `524`
|
||||
// Estimated: `6672`
|
||||
// Minimum execution time: 21_174 nanoseconds.
|
||||
Weight::from_parts(21_619_000, 6672)
|
||||
// Minimum execution time: 20_327 nanoseconds.
|
||||
Weight::from_ref_time(21_714_000)
|
||||
.saturating_add(Weight::from_proof_size(6672))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -688,8 +724,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `511`
|
||||
// Estimated: `5882`
|
||||
// Minimum execution time: 20_606 nanoseconds.
|
||||
Weight::from_parts(21_150_000, 5882)
|
||||
// Minimum execution time: 20_668 nanoseconds.
|
||||
Weight::from_ref_time(21_416_000)
|
||||
.saturating_add(Weight::from_proof_size(5882))
|
||||
.saturating_add(T::DbWeight::get().reads(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -713,8 +750,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `1097`
|
||||
// Estimated: `21970`
|
||||
// Minimum execution time: 88_414 nanoseconds.
|
||||
Weight::from_parts(91_830_000, 21970)
|
||||
// Minimum execution time: 88_006 nanoseconds.
|
||||
Weight::from_ref_time(90_390_000)
|
||||
.saturating_add(Weight::from_proof_size(21970))
|
||||
.saturating_add(T::DbWeight::get().reads(8_u64))
|
||||
.saturating_add(T::DbWeight::get().writes(11_u64))
|
||||
}
|
||||
@@ -739,16 +777,45 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `596`
|
||||
// Estimated: `16180 + n * (2921 ±0)`
|
||||
// Minimum execution time: 124_354 nanoseconds.
|
||||
Weight::from_parts(133_779_491, 16180)
|
||||
// Standard Error: 38_452
|
||||
.saturating_add(Weight::from_ref_time(25_110_697).saturating_mul(n.into()))
|
||||
// Minimum execution time: 124_967 nanoseconds.
|
||||
Weight::from_ref_time(131_602_642)
|
||||
.saturating_add(Weight::from_proof_size(16180))
|
||||
// Standard Error: 36_480
|
||||
.saturating_add(Weight::from_ref_time(25_811_394).saturating_mul(n.into()))
|
||||
.saturating_add(T::DbWeight::get().reads(6_u64))
|
||||
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(T::DbWeight::get().writes(6_u64))
|
||||
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(Weight::from_proof_size(2921).saturating_mul(n.into()))
|
||||
}
|
||||
/// Storage: Nfts Item (r:1 w:0)
|
||||
/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
|
||||
/// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1)
|
||||
/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
|
||||
/// Storage: Nfts Collection (r:1 w:1)
|
||||
/// Proof: Nfts Collection (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
|
||||
/// Storage: Nfts CollectionConfigOf (r:1 w:0)
|
||||
/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
|
||||
/// Storage: Nfts Attribute (r:10 w:10)
|
||||
/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
|
||||
/// Storage: System Account (r:1 w:1)
|
||||
/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
|
||||
/// The range of component `n` is `[0, 10]`.
|
||||
fn set_attributes_pre_signed(n: u32, ) -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `716`
|
||||
// Estimated: `14198 + n * (2921 ±0)`
|
||||
// Minimum execution time: 84_153 nanoseconds.
|
||||
Weight::from_ref_time(96_401_623)
|
||||
.saturating_add(Weight::from_proof_size(14198))
|
||||
// Standard Error: 70_244
|
||||
.saturating_add(Weight::from_ref_time(26_866_222).saturating_mul(n.into()))
|
||||
.saturating_add(T::DbWeight::get().reads(4_u64))
|
||||
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(Weight::from_proof_size(2921).saturating_mul(n.into()))
|
||||
}
|
||||
}
|
||||
|
||||
// For backwards compatibility and tests
|
||||
@@ -767,8 +834,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `214`
|
||||
// Estimated: `3054`
|
||||
// Minimum execution time: 33_666 nanoseconds.
|
||||
Weight::from_parts(34_405_000, 3054)
|
||||
// Minimum execution time: 33_769 nanoseconds.
|
||||
Weight::from_ref_time(36_031_000)
|
||||
.saturating_add(Weight::from_proof_size(3054))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(5_u64))
|
||||
}
|
||||
@@ -786,8 +854,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `42`
|
||||
// Estimated: `3054`
|
||||
// Minimum execution time: 22_028 nanoseconds.
|
||||
Weight::from_parts(23_030_000, 3054)
|
||||
// Minimum execution time: 21_767 nanoseconds.
|
||||
Weight::from_ref_time(22_565_000)
|
||||
.saturating_add(Weight::from_proof_size(3054))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(5_u64))
|
||||
}
|
||||
@@ -817,21 +886,22 @@ impl WeightInfo for () {
|
||||
fn destroy(_n: u32, m: u32, a: u32, ) -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `172781 + m * (127 ±0) + a * (402 ±0)`
|
||||
// Estimated: `3347427 + a * (2921 ±0) + m * (2615 ±0)`
|
||||
// Minimum execution time: 27_944_985 nanoseconds.
|
||||
Weight::from_parts(19_865_318_850, 3347427)
|
||||
// Standard Error: 32_345
|
||||
.saturating_add(Weight::from_ref_time(8_729_316).saturating_mul(m.into()))
|
||||
// Standard Error: 32_345
|
||||
.saturating_add(Weight::from_ref_time(10_264_491).saturating_mul(a.into()))
|
||||
// Estimated: `3347427 + m * (2615 ±0) + a * (2921 ±0)`
|
||||
// Minimum execution time: 26_973_627 nanoseconds.
|
||||
Weight::from_ref_time(19_692_361_714)
|
||||
.saturating_add(Weight::from_proof_size(3347427))
|
||||
// Standard Error: 17_036
|
||||
.saturating_add(Weight::from_ref_time(7_797_219).saturating_mul(m.into()))
|
||||
// Standard Error: 17_036
|
||||
.saturating_add(Weight::from_ref_time(9_504_128).saturating_mul(a.into()))
|
||||
.saturating_add(RocksDbWeight::get().reads(1004_u64))
|
||||
.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(m.into())))
|
||||
.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(a.into())))
|
||||
.saturating_add(RocksDbWeight::get().writes(3005_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(m.into())))
|
||||
.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(a.into())))
|
||||
.saturating_add(Weight::from_proof_size(2921).saturating_mul(a.into()))
|
||||
.saturating_add(Weight::from_proof_size(2615).saturating_mul(m.into()))
|
||||
.saturating_add(Weight::from_proof_size(2921).saturating_mul(a.into()))
|
||||
}
|
||||
/// Storage: Nfts CollectionConfigOf (r:1 w:0)
|
||||
/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
|
||||
@@ -849,8 +919,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `448`
|
||||
// Estimated: `13506`
|
||||
// Minimum execution time: 43_925 nanoseconds.
|
||||
Weight::from_parts(45_885_000, 13506)
|
||||
// Minimum execution time: 44_837 nanoseconds.
|
||||
Weight::from_ref_time(46_794_000)
|
||||
.saturating_add(Weight::from_proof_size(13506))
|
||||
.saturating_add(RocksDbWeight::get().reads(5_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(4_u64))
|
||||
}
|
||||
@@ -870,8 +941,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `448`
|
||||
// Estimated: `13506`
|
||||
// Minimum execution time: 42_832 nanoseconds.
|
||||
Weight::from_parts(44_621_000, 13506)
|
||||
// Minimum execution time: 43_976 nanoseconds.
|
||||
Weight::from_ref_time(44_831_000)
|
||||
.saturating_add(Weight::from_proof_size(13506))
|
||||
.saturating_add(RocksDbWeight::get().reads(5_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(4_u64))
|
||||
}
|
||||
@@ -897,8 +969,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `647`
|
||||
// Estimated: `13573`
|
||||
// Minimum execution time: 47_787 nanoseconds.
|
||||
Weight::from_parts(49_204_000, 13573)
|
||||
// Minimum execution time: 48_233 nanoseconds.
|
||||
Weight::from_ref_time(50_113_000)
|
||||
.saturating_add(Weight::from_proof_size(13573))
|
||||
.saturating_add(RocksDbWeight::get().reads(5_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(7_u64))
|
||||
}
|
||||
@@ -924,8 +997,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `882`
|
||||
// Estimated: `16109`
|
||||
// Minimum execution time: 55_524 nanoseconds.
|
||||
Weight::from_parts(56_962_000, 16109)
|
||||
// Minimum execution time: 55_452 nanoseconds.
|
||||
Weight::from_ref_time(57_642_000)
|
||||
.saturating_add(Weight::from_proof_size(16109))
|
||||
.saturating_add(RocksDbWeight::get().reads(6_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(6_u64))
|
||||
}
|
||||
@@ -940,10 +1014,11 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `756 + i * (140 ±0)`
|
||||
// Estimated: `5103 + i * (3336 ±0)`
|
||||
// Minimum execution time: 15_246 nanoseconds.
|
||||
Weight::from_parts(15_671_000, 5103)
|
||||
// Standard Error: 20_348
|
||||
.saturating_add(Weight::from_ref_time(14_692_422).saturating_mul(i.into()))
|
||||
// Minimum execution time: 15_598 nanoseconds.
|
||||
Weight::from_ref_time(15_926_000)
|
||||
.saturating_add(Weight::from_proof_size(5103))
|
||||
// Standard Error: 13_692
|
||||
.saturating_add(Weight::from_ref_time(14_040_741).saturating_mul(i.into()))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(i.into())))
|
||||
.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(i.into())))
|
||||
@@ -957,8 +1032,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `401`
|
||||
// Estimated: `5067`
|
||||
// Minimum execution time: 19_270 nanoseconds.
|
||||
Weight::from_parts(19_775_000, 5067)
|
||||
// Minimum execution time: 19_686 nanoseconds.
|
||||
Weight::from_ref_time(20_404_000)
|
||||
.saturating_add(Weight::from_proof_size(5067))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -970,8 +1046,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `401`
|
||||
// Estimated: `5067`
|
||||
// Minimum execution time: 19_364 nanoseconds.
|
||||
Weight::from_parts(20_274_000, 5067)
|
||||
// Minimum execution time: 19_172 nanoseconds.
|
||||
Weight::from_ref_time(20_151_000)
|
||||
.saturating_add(Weight::from_proof_size(5067))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -983,8 +1060,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `289`
|
||||
// Estimated: `5092`
|
||||
// Minimum execution time: 17_036 nanoseconds.
|
||||
Weight::from_parts(17_750_000, 5092)
|
||||
// Minimum execution time: 17_063 nanoseconds.
|
||||
Weight::from_ref_time(17_482_000)
|
||||
.saturating_add(Weight::from_proof_size(5092))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -998,8 +1076,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `381`
|
||||
// Estimated: `5082`
|
||||
// Minimum execution time: 22_104 nanoseconds.
|
||||
Weight::from_parts(23_022_000, 5082)
|
||||
// Minimum execution time: 21_974 nanoseconds.
|
||||
Weight::from_ref_time(22_770_000)
|
||||
.saturating_add(Weight::from_proof_size(5082))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(4_u64))
|
||||
}
|
||||
@@ -1011,8 +1090,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `362`
|
||||
// Estimated: `2555`
|
||||
// Minimum execution time: 24_516 nanoseconds.
|
||||
Weight::from_parts(25_300_000, 2555)
|
||||
// Minimum execution time: 24_341 nanoseconds.
|
||||
Weight::from_ref_time(25_059_000)
|
||||
.saturating_add(Weight::from_proof_size(2555))
|
||||
.saturating_add(RocksDbWeight::get().reads(1_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(5_u64))
|
||||
}
|
||||
@@ -1024,8 +1104,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `304`
|
||||
// Estimated: `2555`
|
||||
// Minimum execution time: 16_974 nanoseconds.
|
||||
Weight::from_parts(17_654_000, 2555)
|
||||
// Minimum execution time: 16_897 nanoseconds.
|
||||
Weight::from_ref_time(17_560_000)
|
||||
.saturating_add(Weight::from_proof_size(2555))
|
||||
.saturating_add(RocksDbWeight::get().reads(1_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(3_u64))
|
||||
}
|
||||
@@ -1037,8 +1118,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `242`
|
||||
// Estimated: `2555`
|
||||
// Minimum execution time: 13_190 nanoseconds.
|
||||
Weight::from_parts(13_826_000, 2555)
|
||||
// Minimum execution time: 13_239 nanoseconds.
|
||||
Weight::from_ref_time(13_963_000)
|
||||
.saturating_add(Weight::from_proof_size(2555))
|
||||
.saturating_add(RocksDbWeight::get().reads(1_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1050,8 +1132,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `445`
|
||||
// Estimated: `5078`
|
||||
// Minimum execution time: 17_336 nanoseconds.
|
||||
Weight::from_parts(18_242_000, 5078)
|
||||
// Minimum execution time: 17_187 nanoseconds.
|
||||
Weight::from_ref_time(17_942_000)
|
||||
.saturating_add(Weight::from_proof_size(5078))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1067,8 +1150,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `474`
|
||||
// Estimated: `10547`
|
||||
// Minimum execution time: 40_791 nanoseconds.
|
||||
Weight::from_parts(42_489_000, 10547)
|
||||
// Minimum execution time: 40_925 nanoseconds.
|
||||
Weight::from_ref_time(42_733_000)
|
||||
.saturating_add(Weight::from_proof_size(10547))
|
||||
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -1080,8 +1164,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `337`
|
||||
// Estimated: `5476`
|
||||
// Minimum execution time: 24_620 nanoseconds.
|
||||
Weight::from_parts(25_370_000, 5476)
|
||||
// Minimum execution time: 24_486 nanoseconds.
|
||||
Weight::from_ref_time(25_409_000)
|
||||
.saturating_add(Weight::from_proof_size(5476))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -1095,8 +1180,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `916`
|
||||
// Estimated: `7999`
|
||||
// Minimum execution time: 36_411 nanoseconds.
|
||||
Weight::from_parts(37_439_000, 7999)
|
||||
// Minimum execution time: 36_643 nanoseconds.
|
||||
Weight::from_ref_time(37_805_000)
|
||||
.saturating_add(Weight::from_proof_size(7999))
|
||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -1108,8 +1194,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `379`
|
||||
// Estimated: `6492`
|
||||
// Minimum execution time: 16_696 nanoseconds.
|
||||
Weight::from_parts(17_411_000, 6492)
|
||||
// Minimum execution time: 16_798 nanoseconds.
|
||||
Weight::from_ref_time(17_326_000)
|
||||
.saturating_add(Weight::from_proof_size(6492))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1126,10 +1213,11 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `899 + n * (396 ±0)`
|
||||
// Estimated: `12016 + n * (2921 ±0)`
|
||||
// Minimum execution time: 25_928 nanoseconds.
|
||||
Weight::from_parts(26_440_000, 12016)
|
||||
// Standard Error: 9_158
|
||||
.saturating_add(Weight::from_ref_time(9_271_441).saturating_mul(n.into()))
|
||||
// Minimum execution time: 25_524 nanoseconds.
|
||||
Weight::from_ref_time(26_107_000)
|
||||
.saturating_add(Weight::from_proof_size(12016))
|
||||
// Standard Error: 5_460
|
||||
.saturating_add(Weight::from_ref_time(9_030_830).saturating_mul(n.into()))
|
||||
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
||||
.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||
@@ -1148,8 +1236,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `474`
|
||||
// Estimated: `10241`
|
||||
// Minimum execution time: 34_150 nanoseconds.
|
||||
Weight::from_parts(35_398_000, 10241)
|
||||
// Minimum execution time: 34_400 nanoseconds.
|
||||
Weight::from_ref_time(35_469_000)
|
||||
.saturating_add(Weight::from_proof_size(10241))
|
||||
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -1163,8 +1252,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `609`
|
||||
// Estimated: `7693`
|
||||
// Minimum execution time: 31_871 nanoseconds.
|
||||
Weight::from_parts(33_057_000, 7693)
|
||||
// Minimum execution time: 31_560 nanoseconds.
|
||||
Weight::from_ref_time(33_081_000)
|
||||
.saturating_add(Weight::from_proof_size(7693))
|
||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -1178,8 +1268,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `333`
|
||||
// Estimated: `7665`
|
||||
// Minimum execution time: 28_843 nanoseconds.
|
||||
Weight::from_parts(30_057_000, 7665)
|
||||
// Minimum execution time: 28_821 nanoseconds.
|
||||
Weight::from_ref_time(30_010_000)
|
||||
.saturating_add(Weight::from_proof_size(7665))
|
||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||
}
|
||||
@@ -1193,8 +1284,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `476`
|
||||
// Estimated: `7665`
|
||||
// Minimum execution time: 27_777 nanoseconds.
|
||||
Weight::from_parts(28_471_000, 7665)
|
||||
// Minimum execution time: 27_608 nanoseconds.
|
||||
Weight::from_ref_time(28_766_000)
|
||||
.saturating_add(Weight::from_proof_size(7665))
|
||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1208,8 +1300,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `466`
|
||||
// Estimated: `8428`
|
||||
// Minimum execution time: 23_726 nanoseconds.
|
||||
Weight::from_parts(24_455_000, 8428)
|
||||
// Minimum execution time: 23_987 nanoseconds.
|
||||
Weight::from_ref_time(24_819_000)
|
||||
.saturating_add(Weight::from_proof_size(8428))
|
||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1221,8 +1314,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `474`
|
||||
// Estimated: `5880`
|
||||
// Minimum execution time: 21_051 nanoseconds.
|
||||
Weight::from_parts(21_722_000, 5880)
|
||||
// Minimum execution time: 21_254 nanoseconds.
|
||||
Weight::from_ref_time(21_826_000)
|
||||
.saturating_add(Weight::from_proof_size(5880))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1234,8 +1328,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `474`
|
||||
// Estimated: `5880`
|
||||
// Minimum execution time: 20_095 nanoseconds.
|
||||
Weight::from_parts(20_770_000, 5880)
|
||||
// Minimum execution time: 20_272 nanoseconds.
|
||||
Weight::from_ref_time(20_922_000)
|
||||
.saturating_add(Weight::from_proof_size(5880))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1245,8 +1340,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `42`
|
||||
// Estimated: `2527`
|
||||
// Minimum execution time: 14_078 nanoseconds.
|
||||
Weight::from_parts(14_582_000, 2527)
|
||||
// Minimum execution time: 14_287 nanoseconds.
|
||||
Weight::from_ref_time(14_960_000)
|
||||
.saturating_add(Weight::from_proof_size(2527))
|
||||
.saturating_add(RocksDbWeight::get().reads(1_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1258,8 +1354,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `333`
|
||||
// Estimated: `5103`
|
||||
// Minimum execution time: 17_677 nanoseconds.
|
||||
Weight::from_parts(18_381_000, 5103)
|
||||
// Minimum execution time: 17_948 nanoseconds.
|
||||
Weight::from_ref_time(18_780_000)
|
||||
.saturating_add(Weight::from_proof_size(5103))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1271,8 +1368,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `333`
|
||||
// Estimated: `5103`
|
||||
// Minimum execution time: 16_295 nanoseconds.
|
||||
Weight::from_parts(17_036_000, 5103)
|
||||
// Minimum execution time: 16_616 nanoseconds.
|
||||
Weight::from_ref_time(17_155_000)
|
||||
.saturating_add(Weight::from_proof_size(5103))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1288,8 +1386,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `516`
|
||||
// Estimated: `8407`
|
||||
// Minimum execution time: 22_847 nanoseconds.
|
||||
Weight::from_parts(23_536_000, 8407)
|
||||
// Minimum execution time: 22_777 nanoseconds.
|
||||
Weight::from_ref_time(23_955_000)
|
||||
.saturating_add(Weight::from_proof_size(8407))
|
||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1313,8 +1412,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `934`
|
||||
// Estimated: `16129`
|
||||
// Minimum execution time: 60_517 nanoseconds.
|
||||
Weight::from_parts(62_528_000, 16129)
|
||||
// Minimum execution time: 61_131 nanoseconds.
|
||||
Weight::from_ref_time(62_791_000)
|
||||
.saturating_add(Weight::from_proof_size(16129))
|
||||
.saturating_add(RocksDbWeight::get().reads(6_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(6_u64))
|
||||
}
|
||||
@@ -1323,10 +1423,11 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `0`
|
||||
// Estimated: `0`
|
||||
// Minimum execution time: 1_866 nanoseconds.
|
||||
Weight::from_ref_time(3_949_301)
|
||||
// Standard Error: 11_044
|
||||
.saturating_add(Weight::from_ref_time(3_424_466).saturating_mul(n.into()))
|
||||
// Minimum execution time: 1_952 nanoseconds.
|
||||
Weight::from_ref_time(3_975_700)
|
||||
.saturating_add(Weight::from_proof_size(0))
|
||||
// Standard Error: 11_254
|
||||
.saturating_add(Weight::from_ref_time(3_501_698).saturating_mul(n.into()))
|
||||
}
|
||||
/// Storage: Nfts Item (r:2 w:0)
|
||||
/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
|
||||
@@ -1336,8 +1437,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `524`
|
||||
// Estimated: `6672`
|
||||
// Minimum execution time: 21_174 nanoseconds.
|
||||
Weight::from_parts(21_619_000, 6672)
|
||||
// Minimum execution time: 20_327 nanoseconds.
|
||||
Weight::from_ref_time(21_714_000)
|
||||
.saturating_add(Weight::from_proof_size(6672))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1349,8 +1451,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `511`
|
||||
// Estimated: `5882`
|
||||
// Minimum execution time: 20_606 nanoseconds.
|
||||
Weight::from_parts(21_150_000, 5882)
|
||||
// Minimum execution time: 20_668 nanoseconds.
|
||||
Weight::from_ref_time(21_416_000)
|
||||
.saturating_add(Weight::from_proof_size(5882))
|
||||
.saturating_add(RocksDbWeight::get().reads(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||
}
|
||||
@@ -1374,8 +1477,9 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `1097`
|
||||
// Estimated: `21970`
|
||||
// Minimum execution time: 88_414 nanoseconds.
|
||||
Weight::from_parts(91_830_000, 21970)
|
||||
// Minimum execution time: 88_006 nanoseconds.
|
||||
Weight::from_ref_time(90_390_000)
|
||||
.saturating_add(Weight::from_proof_size(21970))
|
||||
.saturating_add(RocksDbWeight::get().reads(8_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes(11_u64))
|
||||
}
|
||||
@@ -1400,14 +1504,43 @@ impl WeightInfo for () {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `596`
|
||||
// Estimated: `16180 + n * (2921 ±0)`
|
||||
// Minimum execution time: 124_354 nanoseconds.
|
||||
Weight::from_parts(133_779_491, 16180)
|
||||
// Standard Error: 38_452
|
||||
.saturating_add(Weight::from_ref_time(25_110_697).saturating_mul(n.into()))
|
||||
// Minimum execution time: 124_967 nanoseconds.
|
||||
Weight::from_ref_time(131_602_642)
|
||||
.saturating_add(Weight::from_proof_size(16180))
|
||||
// Standard Error: 36_480
|
||||
.saturating_add(Weight::from_ref_time(25_811_394).saturating_mul(n.into()))
|
||||
.saturating_add(RocksDbWeight::get().reads(6_u64))
|
||||
.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(RocksDbWeight::get().writes(6_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(Weight::from_proof_size(2921).saturating_mul(n.into()))
|
||||
}
|
||||
/// Storage: Nfts Item (r:1 w:0)
|
||||
/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
|
||||
/// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1)
|
||||
/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
|
||||
/// Storage: Nfts Collection (r:1 w:1)
|
||||
/// Proof: Nfts Collection (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
|
||||
/// Storage: Nfts CollectionConfigOf (r:1 w:0)
|
||||
/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
|
||||
/// Storage: Nfts Attribute (r:10 w:10)
|
||||
/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
|
||||
/// Storage: System Account (r:1 w:1)
|
||||
/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
|
||||
/// The range of component `n` is `[0, 10]`.
|
||||
fn set_attributes_pre_signed(n: u32, ) -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `716`
|
||||
// Estimated: `14198 + n * (2921 ±0)`
|
||||
// Minimum execution time: 84_153 nanoseconds.
|
||||
Weight::from_ref_time(96_401_623)
|
||||
.saturating_add(Weight::from_proof_size(14198))
|
||||
// Standard Error: 70_244
|
||||
.saturating_add(Weight::from_ref_time(26_866_222).saturating_mul(n.into()))
|
||||
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
||||
.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||
.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into())))
|
||||
.saturating_add(Weight::from_proof_size(2921).saturating_mul(n.into()))
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user