From 19d0266cd58d59723921066b18e6eec5c68744af Mon Sep 17 00:00:00 2001 From: hashwarlock Date: Tue, 18 Jan 2022 23:09:02 -0600 Subject: [PATCH 1/2] Fix bug issue #54 --- pallets/rmrk-core/src/lib.rs | 5 +++++ pallets/rmrk-core/src/tests.rs | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pallets/rmrk-core/src/lib.rs b/pallets/rmrk-core/src/lib.rs index 6f28653a..c9fbffe3 100644 --- a/pallets/rmrk-core/src/lib.rs +++ b/pallets/rmrk-core/src/lib.rs @@ -246,6 +246,11 @@ pub mod pallet { metadata: BoundedVec, ) -> DispatchResult { let sender = ensure_signed(origin.clone())?; + if let Some(collection_issuer) = pallet_uniques::Pallet::::class_owner(&collection_id) { + ensure!(collection_issuer == sender, Error::::NoPermission); + } else { + Err(Error::::CollectionUnknown)?; + } let (collection_id, nft_id) = Self::nft_mint(sender.clone(), owner, collection_id, recipient, royalty, metadata)?; diff --git a/pallets/rmrk-core/src/tests.rs b/pallets/rmrk-core/src/tests.rs index 10f6dcf8..e6225049 100644 --- a/pallets/rmrk-core/src/tests.rs +++ b/pallets/rmrk-core/src/tests.rs @@ -180,15 +180,17 @@ fn mint_nft_works() { bvec![0u8; 20] )); //TODO BOB shouldn't be able to mint in ALICE's collection?! - assert_ok!(RMRKCore::mint_nft( + assert_noop!(RMRKCore::mint_nft( Origin::signed(BOB), BOB, COLLECTION_ID_0, Some(CHARLIE), Some(Permill::from_float(20.525)), bvec![0u8; 20] - )); - assert_eq!(RMRKCore::collections(COLLECTION_ID_0).unwrap().nfts_count, 3); + ), + Error::::NoPermission + ); + assert_eq!(RMRKCore::collections(COLLECTION_ID_0).unwrap().nfts_count, 2); assert_noop!( RMRKCore::mint_nft( Origin::signed(ALICE), From fa1e03d82ed66ed38d215ce8d0bcd9bbd0bc6fe4 Mon Sep 17 00:00:00 2001 From: hashwarlock Date: Tue, 18 Jan 2022 23:16:04 -0600 Subject: [PATCH 2/2] Update test case comment --- pallets/rmrk-core/src/tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pallets/rmrk-core/src/tests.rs b/pallets/rmrk-core/src/tests.rs index e6225049..a1497949 100644 --- a/pallets/rmrk-core/src/tests.rs +++ b/pallets/rmrk-core/src/tests.rs @@ -179,7 +179,7 @@ fn mint_nft_works() { Some(Permill::from_float(20.525)), bvec![0u8; 20] )); - //TODO BOB shouldn't be able to mint in ALICE's collection?! + // BOB shouldn't be able to mint in ALICE's collection assert_noop!(RMRKCore::mint_nft( Origin::signed(BOB), BOB,