difftreelog
Merge pull request #398 from UniqueNetwork/release-v923000
in: master
Release v923000
16 files changed
pallets/common/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/common/src/benchmarking.rs
+++ b/pallets/common/src/benchmarking.rs
@@ -98,6 +98,7 @@
token_owner: false,
collection_admin: false,
restricted: None,
+ #[cfg(feature = "runtime-benchmarks")]
permissive: true,
}),
mint_mode: Some(true),
pallets/common/src/lib.rsdiffbeforeafterboth--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -1212,14 +1212,7 @@
limit_default_clone!(old_limit, new_limit,
access => {},
mint_mode => {},
- nesting => {
- #[cfg(not(feature = "runtime-benchmarks"))]
- ensure!(
- // Permissive is only allowed for tests and internal usage of chain for now
- old_limit.permissive || !new_limit.permissive,
- <Error<T>>::NoPermission,
- )
- },
+ nesting => { /* todo check for permissive, if only it gets out of benchmarks */ },
);
Ok(new_limit)
}
pallets/nonfungible/src/lib.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -1038,7 +1038,13 @@
nesting_budget: &dyn Budget,
) -> DispatchResult {
let nesting = handle.permissions.nesting();
- if nesting.permissive {
+
+ #[cfg(not(feature = "runtime-benchmarks"))]
+ let permissive = false;
+ #[cfg(feature = "runtime-benchmarks")]
+ let permissive = nesting.permissive;
+
+ if permissive {
// Pass
} else if nesting.token_owner
&& <PalletStructure<T>>::check_indirectly_owned(
pallets/proxy-rmrk-core/src/lib.rsdiffbeforeafterboth--- a/pallets/proxy-rmrk-core/src/lib.rs
+++ b/pallets/proxy-rmrk-core/src/lib.rs
@@ -205,7 +205,7 @@
token_owner: true,
collection_admin: false,
restricted: None,
-
+ #[cfg(feature = "runtime-benchmarks")]
permissive: false,
}),
..Default::default()
pallets/proxy-rmrk-core/src/weights.rsdiffbeforeafterboth--- a/pallets/proxy-rmrk-core/src/weights.rs
+++ b/pallets/proxy-rmrk-core/src/weights.rs
@@ -3,7 +3,7 @@
//! Autogenerated weights for pallet_proxy_rmrk_core
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-06-17, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-06-21, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
// Executed Command:
@@ -64,7 +64,7 @@
// Storage: Common CollectionById (r:0 w:1)
// Storage: RmrkCore UniqueCollectionId (r:0 w:1)
fn create_collection() -> Weight {
- (42_359_000 as Weight)
+ (49_986_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(8 as Weight))
}
@@ -77,7 +77,7 @@
// Storage: Nonfungible TokensBurnt (r:0 w:1)
// Storage: Common AdminAmount (r:0 w:1)
fn destroy_collection() -> Weight {
- (45_375_000 as Weight)
+ (50_177_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
@@ -85,7 +85,7 @@
// Storage: Common CollectionById (r:1 w:1)
// Storage: Common CollectionProperties (r:1 w:0)
fn change_collection_issuer() -> Weight {
- (22_753_000 as Weight)
+ (25_949_000 as Weight)
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -95,7 +95,7 @@
// Storage: Nonfungible TokensMinted (r:1 w:0)
// Storage: Nonfungible TokensBurnt (r:1 w:0)
fn lock_collection() -> Weight {
- (24_356_000 as Weight)
+ (27_183_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -109,9 +109,9 @@
// Storage: Nonfungible Owned (r:0 w:1)
// Storage: Nonfungible TokenAuxProperties (r:2 w:2)
fn mint_nft(b: u32, ) -> Weight {
- (44_853_000 as Weight)
- // Standard Error: 2_000
- .saturating_add((10_721_000 as Weight).saturating_mul(b as Weight))
+ (65_512_000 as Weight)
+ // Standard Error: 12_000
+ .saturating_add((11_525_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(6 as Weight))
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
.saturating_add(T::DbWeight::get().writes(5 as Weight))
@@ -129,8 +129,8 @@
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_nft(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_590_000
- .saturating_add((319_825_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_472_000
+ .saturating_add((296_221_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(b as Weight)))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
@@ -146,7 +146,7 @@
// Storage: Nonfungible TokenChildren (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:2)
fn send() -> Weight {
- (72_576_000 as Weight)
+ (82_778_000 as Weight)
.saturating_add(T::DbWeight::get().reads(12 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
@@ -160,7 +160,7 @@
// Storage: Nonfungible TokenChildren (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:2)
fn accept_nft() -> Weight {
- (79_670_000 as Weight)
+ (90_190_000 as Weight)
.saturating_add(T::DbWeight::get().reads(15 as Weight))
.saturating_add(T::DbWeight::get().writes(7 as Weight))
}
@@ -175,7 +175,7 @@
// Storage: Nonfungible Allowance (r:5 w:0)
// Storage: Nonfungible Owned (r:0 w:5)
fn reject_nft() -> Weight {
- (254_989_000 as Weight)
+ (262_238_000 as Weight)
.saturating_add(T::DbWeight::get().reads(29 as Weight))
.saturating_add(T::DbWeight::get().writes(25 as Weight))
}
@@ -185,7 +185,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn set_property() -> Weight {
- (48_651_000 as Weight)
+ (55_187_000 as Weight)
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -195,7 +195,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn set_priority() -> Weight {
- (47_579_000 as Weight)
+ (54_092_000 as Weight)
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -206,7 +206,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_basic_resource() -> Weight {
- (55_013_000 as Weight)
+ (62_551_000 as Weight)
.saturating_add(T::DbWeight::get().reads(10 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
}
@@ -217,7 +217,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_composable_resource() -> Weight {
- (55_184_000 as Weight)
+ (61_778_000 as Weight)
.saturating_add(T::DbWeight::get().reads(10 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
}
@@ -228,7 +228,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_slot_resource() -> Weight {
- (54_792_000 as Weight)
+ (62_700_000 as Weight)
.saturating_add(T::DbWeight::get().reads(10 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
}
@@ -238,7 +238,7 @@
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn remove_resource() -> Weight {
- (46_447_000 as Weight)
+ (52_920_000 as Weight)
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -248,7 +248,7 @@
// Storage: Nonfungible TokenData (r:5 w:0)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn accept_resource() -> Weight {
- (45_096_000 as Weight)
+ (52_450_000 as Weight)
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -258,7 +258,7 @@
// Storage: Nonfungible TokenData (r:5 w:0)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn accept_resource_removal() -> Weight {
- (45_445_000 as Weight)
+ (50_901_000 as Weight)
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -275,7 +275,7 @@
// Storage: Common CollectionById (r:0 w:1)
// Storage: RmrkCore UniqueCollectionId (r:0 w:1)
fn create_collection() -> Weight {
- (42_359_000 as Weight)
+ (49_986_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(8 as Weight))
}
@@ -288,7 +288,7 @@
// Storage: Nonfungible TokensBurnt (r:0 w:1)
// Storage: Common AdminAmount (r:0 w:1)
fn destroy_collection() -> Weight {
- (45_375_000 as Weight)
+ (50_177_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
}
@@ -296,7 +296,7 @@
// Storage: Common CollectionById (r:1 w:1)
// Storage: Common CollectionProperties (r:1 w:0)
fn change_collection_issuer() -> Weight {
- (22_753_000 as Weight)
+ (25_949_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -306,7 +306,7 @@
// Storage: Nonfungible TokensMinted (r:1 w:0)
// Storage: Nonfungible TokensBurnt (r:1 w:0)
fn lock_collection() -> Weight {
- (24_356_000 as Weight)
+ (27_183_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -320,9 +320,9 @@
// Storage: Nonfungible Owned (r:0 w:1)
// Storage: Nonfungible TokenAuxProperties (r:2 w:2)
fn mint_nft(b: u32, ) -> Weight {
- (44_853_000 as Weight)
- // Standard Error: 2_000
- .saturating_add((10_721_000 as Weight).saturating_mul(b as Weight))
+ (65_512_000 as Weight)
+ // Standard Error: 12_000
+ .saturating_add((11_525_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(6 as Weight))
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
@@ -340,8 +340,8 @@
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_nft(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_590_000
- .saturating_add((319_825_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_472_000
+ .saturating_add((296_221_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().reads((4 as Weight).saturating_mul(b as Weight)))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
@@ -357,7 +357,7 @@
// Storage: Nonfungible TokenChildren (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:2)
fn send() -> Weight {
- (72_576_000 as Weight)
+ (82_778_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(12 as Weight))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
}
@@ -371,7 +371,7 @@
// Storage: Nonfungible TokenChildren (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:2)
fn accept_nft() -> Weight {
- (79_670_000 as Weight)
+ (90_190_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(15 as Weight))
.saturating_add(RocksDbWeight::get().writes(7 as Weight))
}
@@ -386,7 +386,7 @@
// Storage: Nonfungible Allowance (r:5 w:0)
// Storage: Nonfungible Owned (r:0 w:5)
fn reject_nft() -> Weight {
- (254_989_000 as Weight)
+ (262_238_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(29 as Weight))
.saturating_add(RocksDbWeight::get().writes(25 as Weight))
}
@@ -396,7 +396,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn set_property() -> Weight {
- (48_651_000 as Weight)
+ (55_187_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -406,7 +406,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn set_priority() -> Weight {
- (47_579_000 as Weight)
+ (54_092_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -417,7 +417,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_basic_resource() -> Weight {
- (55_013_000 as Weight)
+ (62_551_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(10 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
@@ -428,7 +428,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_composable_resource() -> Weight {
- (55_184_000 as Weight)
+ (61_778_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(10 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
@@ -439,7 +439,7 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn add_slot_resource() -> Weight {
- (54_792_000 as Weight)
+ (62_700_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(10 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
@@ -449,7 +449,7 @@
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
// Storage: Nonfungible TokenData (r:5 w:0)
fn remove_resource() -> Weight {
- (46_447_000 as Weight)
+ (52_920_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -459,7 +459,7 @@
// Storage: Nonfungible TokenData (r:5 w:0)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn accept_resource() -> Weight {
- (45_096_000 as Weight)
+ (52_450_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -469,7 +469,7 @@
// Storage: Nonfungible TokenData (r:5 w:0)
// Storage: Nonfungible TokenAuxProperties (r:1 w:1)
fn accept_resource_removal() -> Weight {
- (45_445_000 as Weight)
+ (50_901_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
pallets/proxy-rmrk-equip/src/weights.rsdiffbeforeafterboth--- a/pallets/proxy-rmrk-equip/src/weights.rs
+++ b/pallets/proxy-rmrk-equip/src/weights.rs
@@ -3,7 +3,7 @@
//! Autogenerated weights for pallet_proxy_rmrk_equip
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-06-20, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-06-21, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
// Executed Command:
@@ -54,9 +54,9 @@
// Storage: Nonfungible TokenData (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:1)
fn create_base(b: u32, ) -> Weight {
- (44_927_000 as Weight)
- // Standard Error: 9_000
- .saturating_add((18_896_000 as Weight).saturating_mul(b as Weight))
+ (62_832_000 as Weight)
+ // Standard Error: 22_000
+ .saturating_add((20_106_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(6 as Weight))
.saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(b as Weight)))
.saturating_add(T::DbWeight::get().writes(8 as Weight))
@@ -71,9 +71,9 @@
// Storage: Nonfungible TokenData (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:1)
fn theme_add(b: u32, ) -> Weight {
- (39_120_000 as Weight)
- // Standard Error: 11_000
- .saturating_add((2_367_000 as Weight).saturating_mul(b as Weight))
+ (46_793_000 as Weight)
+ // Standard Error: 61_000
+ .saturating_add((3_061_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(6 as Weight))
.saturating_add(T::DbWeight::get().writes(5 as Weight))
}
@@ -82,7 +82,7 @@
// Storage: RmrkEquip InernalPartId (r:1 w:0)
// Storage: Nonfungible TokenProperties (r:1 w:1)
fn equippable() -> Weight {
- (27_172_000 as Weight)
+ (32_495_000 as Weight)
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -103,9 +103,9 @@
// Storage: Nonfungible TokenData (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:1)
fn create_base(b: u32, ) -> Weight {
- (44_927_000 as Weight)
- // Standard Error: 9_000
- .saturating_add((18_896_000 as Weight).saturating_mul(b as Weight))
+ (62_832_000 as Weight)
+ // Standard Error: 22_000
+ .saturating_add((20_106_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(6 as Weight))
.saturating_add(RocksDbWeight::get().reads((2 as Weight).saturating_mul(b as Weight)))
.saturating_add(RocksDbWeight::get().writes(8 as Weight))
@@ -120,9 +120,9 @@
// Storage: Nonfungible TokenData (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:1)
fn theme_add(b: u32, ) -> Weight {
- (39_120_000 as Weight)
- // Standard Error: 11_000
- .saturating_add((2_367_000 as Weight).saturating_mul(b as Weight))
+ (46_793_000 as Weight)
+ // Standard Error: 61_000
+ .saturating_add((3_061_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(6 as Weight))
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
}
@@ -131,7 +131,7 @@
// Storage: RmrkEquip InernalPartId (r:1 w:0)
// Storage: Nonfungible TokenProperties (r:1 w:1)
fn equippable() -> Weight {
- (27_172_000 as Weight)
+ (32_495_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
primitives/data-structs/src/lib.rsdiffbeforeafterboth--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -454,7 +454,7 @@
token_owner: false,
collection_admin: false,
restricted: None,
-
+ #[cfg(feature = "runtime-benchmarks")]
permissive: false,
};
self.nesting.as_ref().unwrap_or(&DEFAULT)
@@ -499,6 +499,7 @@
/// If set - only tokens from specified collections can be nested
pub restricted: Option<OwnerRestrictedSet>,
+ #[cfg(feature = "runtime-benchmarks")]
/// Anyone can nest tokens, mutually exclusive with `token_owner`, `admin`
pub permissive: bool,
}
runtime/common/src/constants.rsdiffbeforeafterboth--- a/runtime/common/src/constants.rs
+++ b/runtime/common/src/constants.rs
@@ -35,9 +35,10 @@
pub const CENTIUNIQUE: Balance = 10 * MILLIUNIQUE;
pub const UNIQUE: Balance = 100 * CENTIUNIQUE;
-pub const WEIGHT_TO_FEE_COEFF: u32 = 142_688_000;
+// Targeting 0.1 UNQ per transfer
+pub const WEIGHT_TO_FEE_COEFF: u32 = 207_890_902;
-// Targeting 0.15 UNQ per transfer
+// Targeting 0.15 UNQ per transfer via ETH
pub const MIN_GAS_PRICE: u64 = 1_019_493_469_850;
/// We assume that ~10% of the block weight is consumed by `on_initalize` handlers.
@@ -52,5 +53,5 @@
parameter_types! {
pub const DefaultSponsoringRateLimit: BlockNumber = 1 * DAYS;
- pub const TransactionByteFee: Balance = 501 * MICROUNIQUE; // Targeting 0.1 Unique per NFT transfer
+ pub const TransactionByteFee: Balance = 501 * MICROUNIQUE;
}
runtime/opal/src/lib.rsdiffbeforeafterboth--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -508,7 +508,6 @@
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
smallvec!(WeightToFeeCoefficient {
- // Targeting 0.1 Unique per NFT transfer
coeff_integer: WEIGHT_TO_FEE_COEFF.into(),
coeff_frac: Perbill::zero(),
negative: false,
runtime/quartz/src/lib.rsdiffbeforeafterboth--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -507,7 +507,6 @@
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
smallvec!(WeightToFeeCoefficient {
- // Targeting 0.1 Unique per NFT transfer
coeff_integer: WEIGHT_TO_FEE_COEFF.into(),
coeff_frac: Perbill::zero(),
negative: false,
@@ -805,13 +804,8 @@
type LocationInverter = LocationInverter<Ancestry>;
type Barrier = Barrier;
type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
- type Trader = UsingOnlySelfCurrencyComponents<
- LinearFee<Balance>,
- RelayLocation,
- AccountId,
- Balances,
- (),
- >;
+ type Trader =
+ UsingOnlySelfCurrencyComponents<LinearFee<Balance>, RelayLocation, AccountId, Balances, ()>;
type ResponseHandler = (); // Don't handle responses for now.
type SubscriptionService = PolkadotXcm;
runtime/unique/src/lib.rsdiffbeforeafterboth--- a/runtime/unique/src/lib.rs
+++ b/runtime/unique/src/lib.rs
@@ -506,7 +506,6 @@
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
smallvec!(WeightToFeeCoefficient {
- // Targeting 0.1 Unique per NFT transfer
coeff_integer: WEIGHT_TO_FEE_COEFF.into(),
coeff_frac: Perbill::zero(),
negative: false,
@@ -804,13 +803,8 @@
type LocationInverter = LocationInverter<Ancestry>;
type Barrier = Barrier;
type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
- type Trader = UsingOnlySelfCurrencyComponents<
- LinearFee<Balance>,
- RelayLocation,
- AccountId,
- Balances,
- (),
- >;
+ type Trader =
+ UsingOnlySelfCurrencyComponents<LinearFee<Balance>, RelayLocation, AccountId, Balances, ()>;
type ResponseHandler = (); // Don't handle responses for now.
type SubscriptionService = PolkadotXcm;
tests/src/createItem.test.tsdiffbeforeafterboth1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617import {default as usingApi} from './substrate/substrate-api';18import chai from 'chai';19import {IKeyringPair} from '@polkadot/types/types';20import {21 createCollectionExpectSuccess,22 createItemExpectSuccess,23 addCollectionAdminExpectSuccess,24 createCollectionWithPropsExpectSuccess,25 createItemWithPropsExpectSuccess,26 createItemWithPropsExpectFailure,27} from './util/helpers';2829const expect = chai.expect;30let alice: IKeyringPair;31let bob: IKeyringPair;3233describe('integration test: ext. ():', () => {34 before(async () => {35 await usingApi(async (api, privateKeyWrapper) => {36 alice = privateKeyWrapper('//Alice');37 bob = privateKeyWrapper('//Bob');38 });39 });4041 it('Create new item in NFT collection', async () => {42 const createMode = 'NFT';43 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});44 await createItemExpectSuccess(alice, newCollectionID, createMode);45 });46 it('Create new item in Fungible collection', async () => {47 const createMode = 'Fungible';48 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});49 await createItemExpectSuccess(alice, newCollectionID, createMode);50 });51 it('Create new item in ReFungible collection', async () => {52 const createMode = 'ReFungible';53 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});54 await createItemExpectSuccess(alice, newCollectionID, createMode);55 });56 it('Create new item in NFT collection with collection admin permissions', async () => {57 const createMode = 'NFT';58 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});59 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);60 await createItemExpectSuccess(bob, newCollectionID, createMode);61 });62 it('Create new item in Fungible collection with collection admin permissions', async () => {63 const createMode = 'Fungible';64 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});65 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);66 await createItemExpectSuccess(bob, newCollectionID, createMode);67 });68 it('Create new item in ReFungible collection with collection admin permissions', async () => {69 const createMode = 'ReFungible';70 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});71 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);72 await createItemExpectSuccess(bob, newCollectionID, createMode);73 });7475 it('Set property Admin', async () => {76 const createMode = 'NFT';77 const newCollectionID = await createCollectionWithPropsExpectSuccess({mode: {type: createMode}, 78 propPerm: [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: false}}]});79 80 await createItemWithPropsExpectSuccess(alice, newCollectionID, createMode, [{key: 'k', value: 't2'}]);81 });8283 it('Set property AdminConst', async () => {84 const createMode = 'NFT';85 const newCollectionID = await createCollectionWithPropsExpectSuccess({mode: {type: createMode}, 86 propPerm: [{key: 'key1', permission: {mutable: false, collectionAdmin: true, tokenOwner: false}}]});87 88 await createItemWithPropsExpectSuccess(alice, newCollectionID, createMode, [{key: 'key1', value: 'val1'}]);89 });9091 it('Set property itemOwnerOrAdmin', async () => {92 const createMode = 'NFT';93 const newCollectionID = await createCollectionWithPropsExpectSuccess({mode: {type: createMode},94 propPerm: [{key: 'key1', permission: {mutable: true, collectionAdmin: true, tokenOwner: true}}]});95 96 await createItemWithPropsExpectSuccess(alice, newCollectionID, createMode, [{key: 'key1', value: 'val1'}]);97 });98});99100describe('Negative integration test: ext. createItem():', () => {101 before(async () => {102 await usingApi(async (api, privateKeyWrapper) => {103 alice = privateKeyWrapper('//Alice');104 bob = privateKeyWrapper('//Bob');105 });106 });107108 it('Regular user cannot create new item in NFT collection', async () => {109 const createMode = 'NFT';110 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});111 await expect(createItemExpectSuccess(bob, newCollectionID, createMode)).to.be.rejected;112 });113 it('Regular user cannot create new item in Fungible collection', async () => {114 const createMode = 'Fungible';115 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});116 await expect(createItemExpectSuccess(bob, newCollectionID, createMode)).to.be.rejected;117 });118 it('Regular user cannot create new item in ReFungible collection', async () => {119 const createMode = 'ReFungible';120 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});121 await expect(createItemExpectSuccess(bob, newCollectionID, createMode)).to.be.rejected;122 });123124 it('No editing rights', async () => {125 await usingApi(async () => {126 const createMode = 'NFT';127 const newCollectionID = await createCollectionWithPropsExpectSuccess({mode: {type: createMode}, 128 propPerm: [{key: 'key1', permission: {mutable: false, collectionAdmin: false, tokenOwner: false}}]});129 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);130131 await createItemWithPropsExpectFailure(bob, newCollectionID, 'NFT', [{key: 'key1', value: 'v'}]);132 });133 });134135 it('User doesnt have editing rights', async () => {136 await usingApi(async () => {137 const newCollectionID = await createCollectionWithPropsExpectSuccess({propPerm: [{key: 'key1', permission: {mutable: true, collectionAdmin: false, tokenOwner: false}}]});138 await createItemWithPropsExpectFailure(bob, newCollectionID, 'NFT', [{key: 'key1', value: 'v'}]);139 });140 });141142 it('Adding property without access rights', async () => {143 await usingApi(async () => {144 const newCollectionID = await createCollectionWithPropsExpectSuccess();145 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);146147 await createItemWithPropsExpectFailure(bob, newCollectionID, 'NFT', [{key: 'k', value: 'v'}]);148 });149 });150151 it('Adding more than 64 prps', async () => {152 await usingApi(async () => {153 const prps = [];154155 for (let i = 0; i < 65; i++) {156 prps.push({key: `key${i}`, value: `value${i}`});157 }158159 const newCollectionID = await createCollectionWithPropsExpectSuccess();160 161 createItemWithPropsExpectFailure(alice, newCollectionID, 'NFT', prps);162 });163 });164165 it('Trying to add bigger property than allowed', async () => {166 await usingApi(async () => {167 const newCollectionID = await createCollectionWithPropsExpectSuccess();168 169 createItemWithPropsExpectFailure(alice, newCollectionID, 'NFT', [{key: 'k', value: 'vvvvvv'.repeat(5000)}, {key: 'k2', value: 'vvv'.repeat(5000)}]);170 });171 });172});1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617import {default as usingApi} from './substrate/substrate-api';18import chai from 'chai';19import {IKeyringPair} from '@polkadot/types/types';20import {21 createCollectionExpectSuccess,22 createItemExpectSuccess,23 addCollectionAdminExpectSuccess,24 createCollectionWithPropsExpectSuccess,25 createItemWithPropsExpectSuccess,26 createItemWithPropsExpectFailure,27} from './util/helpers';2829const expect = chai.expect;30let alice: IKeyringPair;31let bob: IKeyringPair;3233describe('integration test: ext. ():', () => {34 before(async () => {35 await usingApi(async (api, privateKeyWrapper) => {36 alice = privateKeyWrapper('//Alice');37 bob = privateKeyWrapper('//Bob');38 });39 });4041 it('Create new item in NFT collection', async () => {42 const createMode = 'NFT';43 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});44 await createItemExpectSuccess(alice, newCollectionID, createMode);45 });46 it('Create new item in Fungible collection', async () => {47 const createMode = 'Fungible';48 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});49 await createItemExpectSuccess(alice, newCollectionID, createMode);50 });51 it('Create new item in ReFungible collection', async () => {52 const createMode = 'ReFungible';53 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});54 await createItemExpectSuccess(alice, newCollectionID, createMode);55 });56 it('Create new item in NFT collection with collection admin permissions', async () => {57 const createMode = 'NFT';58 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});59 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);60 await createItemExpectSuccess(bob, newCollectionID, createMode);61 });62 it('Create new item in Fungible collection with collection admin permissions', async () => {63 const createMode = 'Fungible';64 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});65 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);66 await createItemExpectSuccess(bob, newCollectionID, createMode);67 });68 it('Create new item in ReFungible collection with collection admin permissions', async () => {69 const createMode = 'ReFungible';70 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});71 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);72 await createItemExpectSuccess(bob, newCollectionID, createMode);73 });7475 it('Set property Admin', async () => {76 const createMode = 'NFT';77 const newCollectionID = await createCollectionWithPropsExpectSuccess({mode: {type: createMode}, 78 propPerm: [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: false}}]});79 80 await createItemWithPropsExpectSuccess(alice, newCollectionID, createMode, [{key: 'k', value: 't2'}]);81 });8283 it('Set property AdminConst', async () => {84 const createMode = 'NFT';85 const newCollectionID = await createCollectionWithPropsExpectSuccess({mode: {type: createMode}, 86 propPerm: [{key: 'key1', permission: {mutable: false, collectionAdmin: true, tokenOwner: false}}]});87 88 await createItemWithPropsExpectSuccess(alice, newCollectionID, createMode, [{key: 'key1', value: 'val1'}]);89 });9091 it('Set property itemOwnerOrAdmin', async () => {92 const createMode = 'NFT';93 const newCollectionID = await createCollectionWithPropsExpectSuccess({mode: {type: createMode},94 propPerm: [{key: 'key1', permission: {mutable: true, collectionAdmin: true, tokenOwner: true}}]});95 96 await createItemWithPropsExpectSuccess(alice, newCollectionID, createMode, [{key: 'key1', value: 'val1'}]);97 });98});99100describe('Negative integration test: ext. createItem():', () => {101 before(async () => {102 await usingApi(async (api, privateKeyWrapper) => {103 alice = privateKeyWrapper('//Alice');104 bob = privateKeyWrapper('//Bob');105 });106 });107108 it('Regular user cannot create new item in NFT collection', async () => {109 const createMode = 'NFT';110 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});111 await expect(createItemExpectSuccess(bob, newCollectionID, createMode)).to.be.rejected;112 });113 it('Regular user cannot create new item in Fungible collection', async () => {114 const createMode = 'Fungible';115 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode, decimalPoints: 0}});116 await expect(createItemExpectSuccess(bob, newCollectionID, createMode)).to.be.rejected;117 });118 it('Regular user cannot create new item in ReFungible collection', async () => {119 const createMode = 'ReFungible';120 const newCollectionID = await createCollectionExpectSuccess({mode: {type: createMode}});121 await expect(createItemExpectSuccess(bob, newCollectionID, createMode)).to.be.rejected;122 });123124 it('No editing rights', async () => {125 await usingApi(async () => {126 const createMode = 'NFT';127 const newCollectionID = await createCollectionWithPropsExpectSuccess({mode: {type: createMode}, 128 propPerm: [{key: 'key1', permission: {mutable: false, collectionAdmin: false, tokenOwner: false}}]});129 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);130131 await createItemWithPropsExpectFailure(bob, newCollectionID, 'NFT', [{key: 'key1', value: 'v'}]);132 });133 });134135 it('User doesnt have editing rights', async () => {136 await usingApi(async () => {137 const newCollectionID = await createCollectionWithPropsExpectSuccess({propPerm: [{key: 'key1', permission: {mutable: true, collectionAdmin: false, tokenOwner: false}}]});138 await createItemWithPropsExpectFailure(bob, newCollectionID, 'NFT', [{key: 'key1', value: 'v'}]);139 });140 });141142 it('Adding property without access rights', async () => {143 await usingApi(async () => {144 const newCollectionID = await createCollectionWithPropsExpectSuccess();145 await addCollectionAdminExpectSuccess(alice, newCollectionID, bob.address);146147 await createItemWithPropsExpectFailure(bob, newCollectionID, 'NFT', [{key: 'k', value: 'v'}]);148 });149 });150151 it('Adding more than 64 prps', async () => {152 await usingApi(async () => {153 const prps = [];154155 for (let i = 0; i < 65; i++) {156 prps.push({key: `key${i}`, value: `value${i}`});157 }158159 const newCollectionID = await createCollectionWithPropsExpectSuccess();160 161 await createItemWithPropsExpectFailure(alice, newCollectionID, 'NFT', prps);162 });163 });164165 it('Trying to add bigger property than allowed', async () => {166 await usingApi(async () => {167 const newCollectionID = await createCollectionWithPropsExpectSuccess();168 169 await createItemWithPropsExpectFailure(alice, newCollectionID, 'NFT', [{key: 'k', value: 'vvvvvv'.repeat(5000)}, {key: 'k2', value: 'vvv'.repeat(5000)}]);170 });171 });172});tests/src/nesting/unnest.test.tsdiffbeforeafterboth--- a/tests/src/nesting/unnest.test.ts
+++ b/tests/src/nesting/unnest.test.ts
@@ -153,6 +153,6 @@
// Create a nested token ouroboros
const nestedToken = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: tokenIdToAddress(collection, targetToken)});
- expect(transferExpectSuccess(collection, targetToken, alice, {Ethereum: tokenIdToAddress(collection, nestedToken)})).to.be.rejectedWith(/^structure\.OuroborosDetected$/);
+ await expect(transferExpectSuccess(collection, targetToken, alice, {Ethereum: tokenIdToAddress(collection, nestedToken)})).to.be.rejectedWith(/^structure\.OuroborosDetected$/);
});
});
tests/update_apps.shdiffbeforeafterboth--- a/tests/update_apps.sh
+++ b/tests/update_apps.sh
@@ -1,5 +1,7 @@
#!/usr/bin/env sh
+set -eux
+
./update_types.sh
if [ ! -d polkadot-apps ]; then
@@ -8,4 +10,4 @@
pushd polkadot-apps
yarn link ../unique-types-js
-popd
\ No newline at end of file
+popd
tests/update_apps_start.shdiffbeforeafterboth--- a/tests/update_apps_start.sh
+++ b/tests/update_apps_start.sh
@@ -1,7 +1,9 @@
#!/usr/bin/env sh
+set -eux
+
./update_apps.sh
pushd polkadot-apps
yarn start
-popd
\ No newline at end of file
+popd
tests/update_types.shdiffbeforeafterboth--- a/tests/update_types.sh
+++ b/tests/update_types.sh
@@ -1,5 +1,7 @@
#!/usr/bin/env sh
+set -eux
+
yarn polkadot-types
if [ ! -d unique-types-js ]; then