--- a/Cargo.lock +++ b/Cargo.lock @@ -5097,6 +5097,7 @@ "frame-system-rpc-runtime-api", "hex-literal", "nft-data-structs", + "orml-vesting", "pallet-aura", "pallet-balances", "pallet-common", @@ -5120,7 +5121,6 @@ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-unq-scheduler", - "pallet-vesting", "pallet-xcm", "parachain-info", "parity-scale-codec", @@ -5308,6 +5308,21 @@ ] [[package]] +name = "orml-vesting" +version = "0.4.1-dev" +source = "git+https://github.com/UniqueNetwork/open-runtime-module-library#d69f226e332ae29b7b33d53d2f06f309d2986ea0" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] name = "owning_ref" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" --- a/pallets/common/src/lib.rs +++ b/pallets/common/src/lib.rs @@ -273,8 +273,8 @@ TotalCollectionsLimitExceeded, /// variable_data exceeded data limit. TokenVariableDataLimitExceeded, - /// Exceeded max admin amount - CollectionAdminAmountExceeded, + /// Exceeded max admin count + CollectionAdminCountExceeded, /// Collection settings not allowing items transferring TransferNotAllowed, @@ -479,10 +479,10 @@ if admin { let amount = amount .checked_add(1) - .ok_or(>::CollectionAdminAmountExceeded)?; + .ok_or(>::CollectionAdminCountExceeded)?; ensure!( amount <= Self::collection_admins_limit(), - >::CollectionAdminAmountExceeded, + >::CollectionAdminCountExceeded, ); // ========= --- a/pallets/fungible/src/common.rs +++ b/pallets/fungible/src/common.rs @@ -182,7 +182,7 @@ _token: TokenId, _data: Vec, ) -> DispatchResultWithPostInfo { - fail!(>::FungibleItemsHaveData) + fail!(>::FungibleItemsDontHaveData) } fn account_tokens(&self, account: T::CrossAccountId) -> Vec { --- a/pallets/fungible/src/lib.rs +++ b/pallets/fungible/src/lib.rs @@ -35,7 +35,7 @@ /// Not default id passed as TokenId argument FungibleItemsHaveNoId, /// Tried to set data for fungible item - FungibleItemsHaveData, + FungibleItemsDontHaveData, } #[pallet::config] @@ -44,15 +44,15 @@ } #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] + #[pallet::generate_store(pub trait Store)] pub struct Pallet(_); #[pallet::storage] - pub(super) type TotalSupply = + pub type TotalSupply = StorageMap; #[pallet::storage] - pub(super) type Balance = StorageNMap< + pub type Balance = StorageNMap< Key = ( Key, Key, @@ -62,7 +62,7 @@ >; #[pallet::storage] - pub(super) type Allowance = StorageNMap< + pub type Allowance = StorageNMap< Key = ( Key, Key, --- a/pallets/nft/src/mock.rs +++ b/pallets/nft/src/mock.rs @@ -124,25 +124,35 @@ #[derive(Encode, Decode, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, TypeInfo)] pub struct TestCrossAccountId(u64, sp_core::H160); impl CrossAccountId for TestCrossAccountId { + fn as_sub(&self) -> &u64 { + &self.0 + } + fn as_eth(&self) -> &sp_core::H160 { + &self.1 + } fn from_sub(sub: u64) -> Self { let mut eth = [0; 20]; eth[12..20].copy_from_slice(&sub.to_be_bytes()); Self(sub, sp_core::H160(eth)) } - fn as_sub(&self) -> &u64 { - &self.0 - } fn from_eth(eth: sp_core::H160) -> Self { let mut sub_raw = [0; 8]; sub_raw.copy_from_slice(ð.0[0..8]); let sub = u64::from_be_bytes(sub_raw); Self(sub, eth) } - fn as_eth(&self) -> &sp_core::H160 { - &self.1 + fn conv_eq(&self, other: &Self) -> bool { + self.as_sub() == other.as_sub() + } +} + +impl Default for TestCrossAccountId { + fn default() -> Self { + Self::from_sub(0) } } + pub struct TestEtheremTransactionSender; impl pallet_ethereum::EthereumTransactionSender for TestEtheremTransactionSender { fn submit_logs_transaction( @@ -157,6 +167,27 @@ type EthereumTransactionSender = TestEtheremTransactionSender; } +impl pallet_common::Config for Test { + type Event = (); + type EvmBackwardsAddressMapping = TestEvmBackwardsAddressMapping; + type EvmAddressMapping = TestEvmAddressMapping; + type CrossAccountId = TestCrossAccountId; + + type Currency = Balances; + type CollectionCreationPrice = CollectionCreationPrice; + type TreasuryAccountId = TreasuryAccountId; +} + +impl pallet_fungible::Config for Test { + type WeightInfo = (); +} +impl pallet_refungible::Config for Test { + type WeightInfo = (); +} +impl pallet_nonfungible::Config for Test { + type WeightInfo = (); +} + impl pallet_template::Config for Test { type WeightInfo = (); } --- a/pallets/nft/src/tests.rs +++ b/pallets/nft/src/tests.rs @@ -1,11 +1,14 @@ // Tests to be written here use super::*; use crate::mock::*; -use crate::{AccessMode, CollectionMode, CreateItemData}; +use crate::{AccessMode, CollectionMode}; use nft_data_structs::{ - CreateNftData, CreateFungibleData, CreateReFungibleData, CollectionId, TokenId, - MAX_DECIMAL_POINTS, + COLLECTION_NUMBER_LIMIT, Collection, CollectionId, CreateItemData, CreateFungibleData, + CreateNftData, CreateReFungibleData, ExistenceRequirement, MAX_COLLECTION_DESCRIPTION_LENGTH, + MAX_COLLECTION_NAME_LENGTH, MAX_DECIMAL_POINTS, MAX_TOKEN_PREFIX_LENGTH, COLLECTION_ADMINS_LIMIT, + MetaUpdatePermission, Pays, PostDispatchInfo, TokenId, Weight, WithdrawReasons, }; + use frame_support::{assert_noop, assert_ok}; use sp_std::convert::TryInto; @@ -49,18 +52,18 @@ let saved_col_name: Vec = "Test1\0".encode_utf16().collect::>(); let saved_description: Vec = "TestDescription1\0".encode_utf16().collect::>(); let saved_prefix: Vec = b"token_prefix1\0".to_vec(); - assert_eq!(TemplateModule::collection_id(id).unwrap().owner, owner); + assert_eq!(>::get(id).unwrap().owner, owner); assert_eq!( - TemplateModule::collection_id(id).unwrap().name, + >::get(id).unwrap().name, saved_col_name ); - assert_eq!(TemplateModule::collection_id(id).unwrap().mode, *mode); + assert_eq!(>::get(id).unwrap().mode, *mode); assert_eq!( - TemplateModule::collection_id(id).unwrap().description, + >::get(id).unwrap().description, saved_description ); assert_eq!( - TemplateModule::collection_id(id).unwrap().token_prefix, + >::get(id).unwrap().token_prefix, saved_prefix ); id @@ -91,7 +94,7 @@ fn set_version_schema() { new_test_ext().execute_with(|| { let origin1 = Origin::signed(1); - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); assert_ok!(TemplateModule::set_schema_version( origin1, @@ -99,7 +102,7 @@ SchemaVersion::Unique )); assert_eq!( - TemplateModule::collection_id(collection_id) + >::get(collection_id) .unwrap() .schema_version, SchemaVersion::Unique @@ -131,11 +134,12 @@ #[test] fn create_nft_item() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let data = default_nft_data(); create_test_item(collection_id, &data.clone().into()); - let item = TemplateModule::nft_item_id(collection_id, 1).unwrap(); + + let item = >::get((collection_id, 1)).unwrap(); assert_eq!(item.const_data, data.const_data.into_inner()); assert_eq!(item.variable_data, data.variable_data.into_inner()); }); @@ -146,7 +150,7 @@ #[test] fn create_nft_multiple_items() { new_test_ext().execute_with(|| { - create_test_collection(&CollectionMode::NFT, 1); + create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); @@ -154,7 +158,7 @@ assert_ok!(TemplateModule::create_multiple_items( origin1, - 1, + CollectionId(1), account(1), items_data .clone() @@ -163,7 +167,7 @@ .collect() )); for (index, data) in items_data.into_iter().enumerate() { - let item = TemplateModule::nft_item_id(1, (index + 1) as TokenId).unwrap(); + let item = >::get((CollectionId(1), TokenId((index + 1) as u32))).unwrap(); assert_eq!(item.const_data.to_vec(), data.const_data.into_inner()); assert_eq!(item.variable_data.to_vec(), data.variable_data.into_inner()); } @@ -173,12 +177,12 @@ #[test] fn create_refungible_item() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::ReFungible, 1); + let collection_id = create_test_collection(&CollectionMode::ReFungible, CollectionId(1)); let data = default_re_fungible_data(); create_test_item(collection_id, &data.clone().into()); - let item = TemplateModule::refungible_item_id(collection_id, 1).unwrap(); - let balance = TemplateModule::balance(collection_id, 1, account(1)); + let item = >::get((collection_id, TokenId(1))); + let balance = >::get((collection_id, TokenId(1), account(1))); assert_eq!(item.const_data, data.const_data.into_inner()); assert_eq!(item.variable_data, data.variable_data.into_inner()); assert_eq!(balance, 1023); @@ -188,7 +192,7 @@ #[test] fn create_multiple_refungible_items() { new_test_ext().execute_with(|| { - create_test_collection(&CollectionMode::ReFungible, 1); + create_test_collection(&CollectionMode::ReFungible, CollectionId(1)); let origin1 = Origin::signed(1); @@ -200,7 +204,7 @@ assert_ok!(TemplateModule::create_multiple_items( origin1, - 1, + CollectionId(1), account(1), items_data .clone() @@ -209,8 +213,8 @@ .collect() )); for (index, data) in items_data.into_iter().enumerate() { - let item = TemplateModule::refungible_item_id(1, (index + 1) as TokenId).unwrap(); - let balance = TemplateModule::balance(1, 1, account(1)); + let item = >::get((CollectionId(1), TokenId((index + 1) as u32))).unwrap(); + let balance = >::get((CollectionId(1), TokenId(1), account(1))); assert_eq!(item.const_data.to_vec(), data.const_data.into_inner()); assert_eq!(item.variable_data.to_vec(), data.variable_data.into_inner()); assert_eq!(balance, 1023); @@ -221,12 +225,12 @@ #[test] fn create_fungible_item() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1); + let collection_id = create_test_collection(&CollectionMode::Fungible(3), CollectionId(1)); let data = default_fungible_data(); create_test_item(collection_id, &data.into()); - assert_eq!(TemplateModule::fungible_item_id(collection_id, 1).value, 5); + assert_eq!(>::get((collection_id, account(1))), 5); }); } @@ -235,7 +239,7 @@ // new_test_ext().execute_with(|| { // default_limits(); -// create_test_collection(&CollectionMode::Fungible(3), 1); +// create_test_collection(&CollectionMode::Fungible(3), CollectionId(1)); // let origin1 = Origin::signed(1); @@ -259,7 +263,7 @@ #[test] fn transfer_fungible_item() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1); + let collection_id = create_test_collection(&CollectionMode::Fungible(3), CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -267,39 +271,32 @@ let data = default_fungible_data(); create_test_item(collection_id, &data.into()); - assert_eq!(TemplateModule::fungible_item_id(1, 1).value, 5); - assert_eq!(TemplateModule::balance_count(1, 1), 5); + assert_eq!(>::get((CollectionId(1), account(1))), 5); // change owner scenario - assert_ok!(TemplateModule::transfer(origin1, account(2), 1, 1, 5)); - assert_eq!(TemplateModule::fungible_item_id(1, 1).value, 0); - assert_eq!(TemplateModule::balance_count(1, 1), 0); - assert_eq!(TemplateModule::balance_count(1, 2), 5); + assert_ok!(TemplateModule::transfer(origin1, account(2), CollectionId(1), TokenId(1), 5)); + assert_eq!(>::get((CollectionId(1), account(1))), 0); // split item scenario assert_ok!(TemplateModule::transfer( origin2.clone(), account(3), - 1, - 1, + CollectionId(1), + TokenId(1), 3 )); - assert_eq!(TemplateModule::balance_count(1, 2), 2); - assert_eq!(TemplateModule::balance_count(1, 3), 3); // split item and new owner has account scenario - assert_ok!(TemplateModule::transfer(origin2, account(3), 1, 1, 1)); - assert_eq!(TemplateModule::fungible_item_id(1, 2).value, 1); - assert_eq!(TemplateModule::fungible_item_id(1, 3).value, 4); - assert_eq!(TemplateModule::balance_count(1, 2), 1); - assert_eq!(TemplateModule::balance_count(1, 3), 4); + assert_ok!(TemplateModule::transfer(origin2, account(3), CollectionId(1), TokenId(1), 1)); + assert_eq!(>::get((CollectionId(1), account(2))), 1); + assert_eq!(>::get((CollectionId(1), account(3))), 4); }); } #[test] fn transfer_refungible_item() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::ReFungible, 1); + let collection_id = create_test_collection(&CollectionMode::ReFungible, CollectionId(1)); let data = default_re_fungible_data(); create_test_item(collection_id, &data.clone().into()); @@ -307,86 +304,87 @@ let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); { - let item = TemplateModule::refungible_item_id(collection_id, 1).unwrap(); - let balance = TemplateModule::balance(collection_id, 1, account(1)); + let item = >::get((collection_id, TokenId(1))); + let balance = >::get((collection_id, TokenId(1), account(1))); assert_eq!(item.const_data, data.const_data.into_inner()); assert_eq!(item.variable_data, data.variable_data.into_inner()); assert_eq!(balance, 1023); } - assert_eq!(TemplateModule::balance_count(1, 1), 1023); - assert_eq!(TemplateModule::address_tokens(1, 1), [1]); + + assert_eq!(>::get((collection_id, account(1))), 1023); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), true); // change owner scenario - assert_ok!(TemplateModule::transfer(origin1, account(2), 1, 1, 1023)); + assert_ok!(TemplateModule::transfer(origin1, account(2), CollectionId(1), TokenId(1), 1023)); - let balance2 = TemplateModule::balance(collection_id, 1, account(2)); + let balance2 = >::get((collection_id, TokenId(1), account(2))); assert_eq!(balance2, 1023); - assert_eq!(TemplateModule::balance_count(1, 1), 0); - assert_eq!(TemplateModule::balance_count(1, 2), 1023); - // assert_eq!(TemplateModule::address_tokens(1, 1), []); - assert_eq!(TemplateModule::address_tokens(1, 2), [1]); + assert_eq!(>::get((collection_id, account(1))), 0); + assert_eq!(>::get((collection_id, account(2))), 1023); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), false); + assert_eq!(>::get((collection_id, account(2), TokenId(1))), true); // split item scenario assert_ok!(TemplateModule::transfer( origin2.clone(), account(3), - 1, - 1, + CollectionId(1), + TokenId(1), 500 )); { - let item = TemplateModule::refungible_item_id(1, 1).unwrap(); - let balance2 = TemplateModule::balance(collection_id, 1, account(2)); - let balance3 = TemplateModule::balance(collection_id, 1, account(3)); + let item = >::get((CollectionId(1), TokenId(1))); + let balance2 = >::get((collection_id, TokenId(1), account(2))); + let balance3 = >::get((collection_id, TokenId(1), account(3))); assert_eq!(balance2, 523); assert_eq!(balance3, 500); } - assert_eq!(TemplateModule::balance_count(1, 2), 523); - assert_eq!(TemplateModule::balance_count(1, 3), 500); - assert_eq!(TemplateModule::address_tokens(1, 2), [1]); - assert_eq!(TemplateModule::address_tokens(1, 3), [1]); + assert_eq!(>::get((collection_id, account(2))), 523); + assert_eq!(>::get((collection_id, account(3))), 500); + assert_eq!(>::get((collection_id, account(2), TokenId(1))), true); + assert_eq!(>::get((collection_id, account(3), TokenId(1))), true); // split item and new owner has account scenario - assert_ok!(TemplateModule::transfer(origin2, account(3), 1, 1, 200)); + assert_ok!(TemplateModule::transfer(origin2, account(3), CollectionId(1), TokenId(1), 200)); { - let item = TemplateModule::refungible_item_id(1, 1).unwrap(); - let balance2 = TemplateModule::balance(collection_id, 1, account(2)); - let balance3 = TemplateModule::balance(collection_id, 1, account(3)); + let item = >::get((CollectionId(1), TokenId(1))); + let balance2 = >::get((collection_id, TokenId(1), account(2))); + let balance3 = >::get((collection_id, TokenId(1), account(3))); assert_eq!(balance2, 323); assert_eq!(balance3, 700); } - assert_eq!(TemplateModule::balance_count(1, 2), 323); - assert_eq!(TemplateModule::balance_count(1, 3), 700); - assert_eq!(TemplateModule::address_tokens(1, 2), [1]); - assert_eq!(TemplateModule::address_tokens(1, 3), [1]); + assert_eq!(>::get((collection_id, account(2))), 323); + assert_eq!(>::get((collection_id, account(3))), 700); + assert_eq!(>::get((collection_id, account(2), TokenId(1))), true); + assert_eq!(>::get((collection_id, account(3), TokenId(1))), true); }); } #[test] fn transfer_nft_item() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let data = default_nft_data(); create_test_item(collection_id, &data.into()); - assert_eq!(TemplateModule::balance_count(1, 1), 1); - assert_eq!(TemplateModule::address_tokens(1, 1), [1]); + assert_eq!(>::get((collection_id, account(1))), 1); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), true); + let origin1 = Origin::signed(1); // default scenario - assert_ok!(TemplateModule::transfer(origin1, account(2), 1, 1, 1000)); - assert_eq!(TemplateModule::nft_item_id(1, 1).unwrap().owner, account(2)); - assert_eq!(TemplateModule::balance_count(1, 1), 0); - assert_eq!(TemplateModule::balance_count(1, 2), 1); - // assert_eq!(TemplateModule::address_tokens(1, 1), []); - assert_eq!(TemplateModule::address_tokens(1, 2), [1]); + assert_ok!(TemplateModule::transfer(origin1, account(2), CollectionId(1), TokenId(1), 1000)); + assert_eq!(>::get((collection_id, account(1))), 0); + assert_eq!(>::get((collection_id, account(2))), 1); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), false); + assert_eq!(>::get((collection_id, account(2), TokenId(1))), true); }); } #[test] fn nft_approve_and_transfer_from() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let data = default_nft_data(); create_test_item(collection_id, &data.into()); @@ -394,36 +392,35 @@ let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); - assert_eq!(TemplateModule::balance_count(1, 1), 1); - assert_eq!(TemplateModule::address_tokens(1, 1), [1]); + assert_eq!(>::get((collection_id, account(1))), 1); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), true); // neg transfer assert_noop!( - TemplateModule::transfer_from(origin2.clone(), account(1), account(2), 1, 1, 1), - Error::::NoPermission + TemplateModule::transfer_from(origin2.clone(), account(1), account(2), CollectionId(1), TokenId(1), 1), + CommonError::::NoPermission ); // do approve - assert_ok!(TemplateModule::approve(origin1, account(2), 1, 1, 5)); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5); + assert_ok!(TemplateModule::approve(origin1, account(2), CollectionId(1), TokenId(1), 5)); + assert_eq!(>::get((CollectionId(1), TokenId(1))).unwrap(), account(2)); assert_ok!(TemplateModule::transfer_from( origin2, account(1), account(3), - 1, - 1, + CollectionId(1), + TokenId(1), 1 )); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 4); + assert!(>::get((CollectionId(1), TokenId(1))).is_none()); }); } #[test] fn nft_approve_and_transfer_from_allow_list() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -432,35 +429,35 @@ create_test_item(collection_id, &data.clone().into()); assert_eq!( - &TemplateModule::nft_item_id(1, 1).unwrap().const_data, + &>::get((collection_id, TokenId(1))).unwrap().const_data, &data.const_data.into_inner() ); - assert_eq!(TemplateModule::balance_count(1, 1), 1); - assert_eq!(TemplateModule::address_tokens(1, 1), [1]); + assert_eq!(>::get((collection_id, account(1))), 1); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), true); assert_ok!(TemplateModule::set_mint_permission( origin1.clone(), - 1, + CollectionId(1), true )); assert_ok!(TemplateModule::set_public_access_mode( origin1.clone(), - 1, + CollectionId(1), AccessMode::AllowList )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(1) )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(2) )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(3) )); @@ -468,30 +465,30 @@ assert_ok!(TemplateModule::approve( origin1.clone(), account(2), - 1, - 1, + CollectionId(1), + TokenId(1), 5 )); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5); - assert_ok!(TemplateModule::approve(origin1, account(3), 1, 1, 5)); - assert_eq!(TemplateModule::approved(1, (1, 1, 3)), 5); + assert_eq!(>::get((CollectionId(1), TokenId(1))).unwrap(), account(2)); + assert_ok!(TemplateModule::approve(origin1, account(3), CollectionId(1), TokenId(1), 5)); + assert_eq!(>::get((CollectionId(1), TokenId(1))).unwrap(), account(3)); assert_ok!(TemplateModule::transfer_from( origin2, account(1), account(3), - 1, - 1, + CollectionId(1), + TokenId(1), 1 )); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 4); + assert!(>::get((CollectionId(1), TokenId(1))).is_none()); }); } #[test] fn refungible_approve_and_transfer_from() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::ReFungible, 1); + let collection_id = create_test_collection(&CollectionMode::ReFungible, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -499,92 +496,89 @@ let data = default_re_fungible_data(); create_test_item(collection_id, &data.into()); - assert_eq!(TemplateModule::balance_count(1, 1), 1023); - assert_eq!(TemplateModule::address_tokens(1, 1), [1]); + assert_eq!(>::get((collection_id, account(1))), 1023); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), true); assert_ok!(TemplateModule::set_mint_permission( origin1.clone(), - 1, + CollectionId(1), true )); assert_ok!(TemplateModule::set_public_access_mode( origin1.clone(), - 1, + CollectionId(1), AccessMode::AllowList )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(1) )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(2) )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(3) )); // do approve - assert_ok!(TemplateModule::approve(origin1, account(2), 1, 1, 1023)); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1023); + assert_ok!(TemplateModule::approve(origin1, account(2), CollectionId(1), TokenId(1), 1023)); + assert_eq!(>::get((CollectionId(1), TokenId(1), account(1), account(2))), 1023); assert_ok!(TemplateModule::transfer_from( origin2, account(1), account(3), - 1, - 1, + CollectionId(1), + TokenId(1), 100 )); - assert_eq!(TemplateModule::balance_count(1, 1), 923); - assert_eq!(TemplateModule::balance_count(1, 3), 100); - assert_eq!(TemplateModule::address_tokens(1, 1), [1]); - assert_eq!(TemplateModule::address_tokens(1, 3), [1]); - - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 923); + assert_eq!(>::get((collection_id, account(1))), 923); + assert_eq!(>::get((collection_id, account(3))), 100); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), true); + assert_eq!(>::get((collection_id, account(1), TokenId(3))), true); + assert_eq!(>::get((CollectionId(1), TokenId(1), account(1), account(2))), 923); }); } #[test] fn fungible_approve_and_transfer_from() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1); + let collection_id = create_test_collection(&CollectionMode::Fungible(3), CollectionId(1)); let data = default_fungible_data(); create_test_item(collection_id, &data.into()); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); - - assert_eq!(TemplateModule::balance_count(1, 1), 5); assert_ok!(TemplateModule::set_mint_permission( origin1.clone(), - 1, + CollectionId(1), true )); assert_ok!(TemplateModule::set_public_access_mode( origin1.clone(), - 1, + CollectionId(1), AccessMode::AllowList )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(1) )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(2) )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(3) )); @@ -592,31 +586,29 @@ assert_ok!(TemplateModule::approve( origin1.clone(), account(2), - 1, - 1, + CollectionId(1), + TokenId(1), 5 )); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5); - assert_ok!(TemplateModule::approve(origin1, account(3), 1, 1, 5)); - assert_eq!(TemplateModule::approved(1, (1, 1, 3)), 5); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5); + assert_eq!(>::get((CollectionId(1), account(1), account(2))), 5); + assert_ok!(TemplateModule::approve(origin1, account(3), CollectionId(1), TokenId(1), 5)); + assert_eq!(>::get((CollectionId(1), account(1), account(2))), 5); + assert_eq!(>::get((CollectionId(1), account(1), account(3))), 5); assert_ok!(TemplateModule::transfer_from( origin2.clone(), account(1), account(3), - 1, - 1, + CollectionId(1), + TokenId(1), 4 )); - assert_eq!(TemplateModule::balance_count(1, 1), 1); - assert_eq!(TemplateModule::balance_count(1, 3), 4); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1); + assert_eq!(>::get((CollectionId(1), account(1), account(2))), 1); assert_noop!( - TemplateModule::transfer_from(origin2, account(1), account(3), 1, 1, 4), - Error::::NoPermission + TemplateModule::transfer_from(origin2, account(1), account(3), CollectionId(1), TokenId(1), 4), + CommonError::::NoPermission ); }); } @@ -624,7 +616,7 @@ #[test] fn change_collection_owner() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::change_collection_owner( @@ -633,7 +625,7 @@ 2 )); assert_eq!( - TemplateModule::collection_id(collection_id).unwrap().owner, + >::get(collection_id).unwrap().owner, 2 ); }); @@ -642,7 +634,7 @@ #[test] fn destroy_collection() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::destroy_collection(origin1, collection_id)); @@ -652,7 +644,7 @@ #[test] fn burn_nft_item() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::add_collection_admin( @@ -665,28 +657,28 @@ create_test_item(collection_id, &data.into()); // check balance (collection with id = 1, user id = 1) - assert_eq!(TemplateModule::balance_count(1, 1), 1); + assert_eq!(>::get((collection_id, account(1))), 1); // burn item assert_ok!(TemplateModule::burn_item( origin1.clone(), collection_id, - 1, + TokenId(1), 1 )); assert_noop!( - TemplateModule::burn_item(origin1, collection_id, 1, 1), - Error::::TokenNotFound + TemplateModule::burn_item(origin1, collection_id, TokenId(1), 1), + CommonError::::TokenNotFound ); - assert_eq!(TemplateModule::balance_count(1, 1), 0); + assert_eq!(>::get((collection_id, account(1))), 0); }); } #[test] fn burn_fungible_item() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1); + let collection_id = create_test_collection(&CollectionMode::Fungible(3), CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::add_collection_admin( @@ -699,23 +691,23 @@ create_test_item(collection_id, &data.into()); // check balance (collection with id = 1, user id = 1) - assert_eq!(TemplateModule::balance_count(1, 1), 5); + assert_eq!(>::get((collection_id, account(1))), 5); // burn item - assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1, 5)); + assert_ok!(TemplateModule::burn_item(origin1.clone(), CollectionId(1), TokenId(1), 5)); assert_noop!( - TemplateModule::burn_item(origin1, 1, 1, 5), - Error::::TokenValueNotEnough + TemplateModule::burn_item(origin1, CollectionId(1), TokenId(1), 5), + CommonError::::TokenValueNotEnough ); - assert_eq!(TemplateModule::balance_count(1, 1), 0); + assert_eq!(>::get((collection_id, account(1))), 0); }); } #[test] fn burn_refungible_item() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::ReFungible, 1); + let collection_id = create_test_collection(&CollectionMode::ReFungible, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::set_mint_permission( @@ -730,13 +722,13 @@ )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + collection_id, account(1) )); assert_ok!(TemplateModule::add_collection_admin( origin1.clone(), - 1, + collection_id, account(2) )); @@ -744,25 +736,26 @@ create_test_item(collection_id, &data.into()); // check balance (collection with id = 1, user id = 2) - assert_eq!(TemplateModule::balance_count(1, 1), 1023); + assert_eq!(>::get((collection_id, account(1))), 1023); + assert_eq!(>::get((collection_id, TokenId(1), account(1))), 1023); // burn item - assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1, 1023)); + assert_ok!(TemplateModule::burn_item(origin1.clone(), collection_id, TokenId(1), 1023)); assert_noop!( - TemplateModule::burn_item(origin1, 1, 1, 1023), - Error::::TokenNotFound + TemplateModule::burn_item(origin1, collection_id, TokenId(1), 1023), + CommonError::::TokenNotFound ); - assert_eq!(TemplateModule::balance_count(1, 1), 0); + assert_eq!(>::get((collection_id, TokenId(1), account(1))), 0); }); } #[test] fn add_collection_admin() { new_test_ext().execute_with(|| { - let collection1_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1); - create_test_collection_for_owner(&CollectionMode::NFT, 2, 2); - create_test_collection_for_owner(&CollectionMode::NFT, 3, 3); + let collection1_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, CollectionId(1)); + create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(2)); + create_test_collection_for_owner(&CollectionMode::NFT, 3, CollectionId(3)); let origin1 = Origin::signed(1); @@ -778,17 +771,18 @@ account(3) )); - assert!(TemplateModule::admin_list_collection(collection1_id).contains(&account(2)),); - assert!(TemplateModule::admin_list_collection(collection1_id).contains(&account(3)),); + assert!(>::get((CollectionId(1), account(1)))); + assert!(>::get((CollectionId(1), account(2)))); + assert!(>::get((CollectionId(1), account(3)))); }); } #[test] fn remove_collection_admin() { new_test_ext().execute_with(|| { - let collection1_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1); - create_test_collection_for_owner(&CollectionMode::NFT, 2, 2); - create_test_collection_for_owner(&CollectionMode::NFT, 3, 3); + let collection1_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, CollectionId(1)); + create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(2)); + create_test_collection_for_owner(&CollectionMode::NFT, 3, CollectionId(3)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -805,33 +799,31 @@ account(3) )); - assert!(TemplateModule::admin_list_collection(1).contains(&account(2)),); - assert!(TemplateModule::admin_list_collection(1).contains(&account(3)),); + assert!(>::get((CollectionId(1), account(2)))); + assert!(>::get((CollectionId(1), account(3)))); // remove admin assert_ok!(TemplateModule::remove_collection_admin( origin2, - 1, + CollectionId(1), account(3) )); - assert!(!TemplateModule::admin_list_collection(1).contains(&account(3)),); + assert!(>::get((CollectionId(1), account(3)))); + assert_eq!(>::get((CollectionId(1), account(2))), false); }); } #[test] fn balance_of() { new_test_ext().execute_with(|| { - let nft_collection_id = create_test_collection(&CollectionMode::NFT, 1); - let fungible_collection_id = create_test_collection(&CollectionMode::Fungible(3), 2); - let re_fungible_collection_id = create_test_collection(&CollectionMode::ReFungible, 3); + let nft_collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); + let fungible_collection_id = create_test_collection(&CollectionMode::Fungible(3), CollectionId(2)); + let re_fungible_collection_id = create_test_collection(&CollectionMode::ReFungible, CollectionId(3)); // check balance before - assert_eq!(TemplateModule::balance_count(nft_collection_id, 1), 0); - assert_eq!(TemplateModule::balance_count(fungible_collection_id, 1), 0); - assert_eq!( - TemplateModule::balance_count(re_fungible_collection_id, 1), - 0 - ); + assert_eq!(>::get((nft_collection_id, account(1))), 0); + assert_eq!(>::get((fungible_collection_id, account(1))), 0); + assert_eq!(>::get((re_fungible_collection_id, account(1))), 0); let nft_data = default_nft_data(); create_test_item(nft_collection_id, &nft_data.into()); @@ -843,36 +835,19 @@ create_test_item(re_fungible_collection_id, &re_fungible_data.into()); // check balance (collection with id = 1, user id = 1) - assert_eq!(TemplateModule::balance_count(nft_collection_id, 1), 1); - assert_eq!(TemplateModule::balance_count(fungible_collection_id, 1), 5); - assert_eq!( - TemplateModule::balance_count(re_fungible_collection_id, 1), - 1023 - ); - assert_eq!( - TemplateModule::nft_item_id(nft_collection_id, 1) - .unwrap() - .owner, - account(1) - ); - assert_eq!( - TemplateModule::fungible_item_id(fungible_collection_id, 1).value, - 5 - ); - assert_eq!( - TemplateModule::refungible_item_id(re_fungible_collection_id, 1) - .unwrap() - .owner[0] - .owner, - account(1) - ); + assert_eq!(>::get((nft_collection_id, account(1))), 1); + assert_eq!(>::get((fungible_collection_id, account(1))), 5); + assert_eq!(>::get((re_fungible_collection_id, account(1))), 1023); + + assert_eq!(>::get((nft_collection_id, account(1), TokenId(1))), true); + assert_eq!(>::get((nft_collection_id, account(1), TokenId(1))), true); }); } #[test] fn approve() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let data = default_nft_data(); create_test_item(collection_id, &data.into()); @@ -880,15 +855,15 @@ let origin1 = Origin::signed(1); // approve - assert_ok!(TemplateModule::approve(origin1, account(2), 1, 1, 1)); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1); + assert_ok!(TemplateModule::approve(origin1, account(2), CollectionId(1), TokenId(1), 1)); + assert_eq!(>::get((CollectionId(1), TokenId(1))).unwrap(), account(2)); }); } #[test] fn transfer_from() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -899,46 +874,46 @@ assert_ok!(TemplateModule::approve( origin1.clone(), account(2), - 1, - 1, + CollectionId(1), + TokenId(1), 1 )); - assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1); + assert_eq!(>::get((CollectionId(1), TokenId(1))).unwrap(), account(2)); assert_ok!(TemplateModule::set_mint_permission( origin1.clone(), - 1, + CollectionId(1), true )); assert_ok!(TemplateModule::set_public_access_mode( origin1.clone(), - 1, + CollectionId(1), AccessMode::AllowList )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(1) )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + CollectionId(1), account(2) )); - assert_ok!(TemplateModule::add_to_allow_list(origin1, 1, account(3))); + assert_ok!(TemplateModule::add_to_allow_list(origin1, CollectionId(1), account(3))); assert_ok!(TemplateModule::transfer_from( origin2, account(1), account(2), - 1, - 1, + CollectionId(1), + TokenId(1), 1 )); // after transfer - assert_eq!(TemplateModule::balance_count(1, 1), 0); - assert_eq!(TemplateModule::balance_count(1, 2), 1); + assert_eq!(>::get((CollectionId(1), account(1))), 0); + assert_eq!(>::get((CollectionId(1), account(2))), 1); }); } @@ -950,7 +925,7 @@ #[test] fn owner_can_add_address_to_allow_list() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::add_to_allow_list( @@ -958,14 +933,14 @@ collection_id, account(2) )); - assert!(TemplateModule::allow_list(collection_id, 2)); + assert!(>::get((collection_id, account(2)))); }); } #[test] fn admin_can_add_address_to_allow_list() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -979,19 +954,19 @@ collection_id, account(3) )); - assert!(TemplateModule::allow_list(collection_id, 3)); + assert!(>::get((collection_id, account(3)))); }); } #[test] fn nonprivileged_user_cannot_add_address_to_allow_list() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin2 = Origin::signed(2); assert_noop!( TemplateModule::add_to_allow_list(origin2, collection_id, account(3)), - Error::::NoPermission + CommonError::::NoPermission ); }); } @@ -1002,8 +977,8 @@ let origin1 = Origin::signed(1); assert_noop!( - TemplateModule::add_to_allow_list(origin1, 1, account(2)), - Error::::CollectionNotFound + TemplateModule::add_to_allow_list(origin1, CollectionId(1), account(2)), + CommonError::::CollectionNotFound ); }); } @@ -1011,7 +986,7 @@ #[test] fn nobody_can_add_address_to_allow_list_of_deleted_collection() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::destroy_collection( @@ -1020,7 +995,7 @@ )); assert_noop!( TemplateModule::add_to_allow_list(origin1, collection_id, account(2)), - Error::::CollectionNotFound + CommonError::::CollectionNotFound ); }); } @@ -1029,7 +1004,7 @@ #[test] fn address_is_already_added_to_allow_list() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::add_to_allow_list( @@ -1042,14 +1017,14 @@ collection_id, account(2) )); - assert!(TemplateModule::allow_list(collection_id, 2)); + assert!(>::get((collection_id, account(2)))); }); } #[test] fn owner_can_remove_address_from_allow_list() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::add_to_allow_list( @@ -1062,14 +1037,14 @@ collection_id, account(2) )); - assert!(!TemplateModule::allow_list(collection_id, 2)); + assert!(>::get((collection_id, account(2)))); }); } #[test] fn admin_can_remove_address_from_allow_list() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -1089,14 +1064,14 @@ collection_id, account(3) )); - assert!(!TemplateModule::allow_list(collection_id, 3)); + assert!(>::get((collection_id, account(3)))); }); } #[test] fn nonprivileged_user_cannot_remove_address_from_allow_list() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -1107,9 +1082,9 @@ )); assert_noop!( TemplateModule::remove_from_allow_list(origin2, collection_id, account(2)), - Error::::NoPermission + CommonError::::NoPermission ); - assert!(TemplateModule::allow_list(collection_id, 2)); + assert!(>::get((collection_id, account(2)))); }); } @@ -1119,8 +1094,8 @@ let origin1 = Origin::signed(1); assert_noop!( - TemplateModule::remove_from_allow_list(origin1, 1, account(2)), - Error::::CollectionNotFound + TemplateModule::remove_from_allow_list(origin1, CollectionId(1), account(2)), + CommonError::::CollectionNotFound ); }); } @@ -1128,7 +1103,7 @@ #[test] fn nobody_can_remove_address_from_allow_list_of_deleted_collection() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -1140,9 +1115,9 @@ assert_ok!(TemplateModule::destroy_collection(origin1, collection_id)); assert_noop!( TemplateModule::remove_from_allow_list(origin2, collection_id, account(2)), - Error::::CollectionNotFound + CommonError::::CollectionNotFound ); - assert!(!TemplateModule::allow_list(collection_id, 2)); + assert!(>::get((collection_id, account(2)))); }); } @@ -1150,7 +1125,7 @@ #[test] fn address_is_already_removed_from_allow_list() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::add_to_allow_list( @@ -1168,7 +1143,7 @@ collection_id, account(2) )); - assert!(!TemplateModule::allow_list(collection_id, 2)); + assert!(>::get((collection_id, account(2)))); }); } @@ -1176,7 +1151,7 @@ #[test] fn allow_list_test_1() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); @@ -1195,8 +1170,8 @@ )); assert_noop!( - TemplateModule::transfer(origin1, account(3), 1, 1, 1), - Error::::AddresNotInAllowList + TemplateModule::transfer(origin1, account(3), CollectionId(1), TokenId(1), 1), + CommonError::::AddressNotInAllowlist ); }); } @@ -1204,7 +1179,7 @@ #[test] fn allow_list_test_2() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let data = default_nft_data(); @@ -1217,12 +1192,12 @@ )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + collection_id, account(1) )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + collection_id, account(2) )); @@ -1230,21 +1205,21 @@ assert_ok!(TemplateModule::approve( origin1.clone(), account(1), - 1, - 1, + collection_id, + TokenId(1), 1 )); - assert_eq!(TemplateModule::approved(1, (1, 1, 1)), 1); + assert_eq!(>::get((CollectionId(1), TokenId(1))).unwrap(), account(1)); assert_ok!(TemplateModule::remove_from_allow_list( origin1.clone(), - 1, + collection_id, account(1) )); assert_noop!( - TemplateModule::transfer_from(origin1, account(1), account(3), 1, 1, 1), - Error::::AddresNotInAllowList + TemplateModule::transfer_from(origin1, account(1), account(3), CollectionId(1), TokenId(1), 1), + CommonError::::AddressNotInAllowlist ); }); } @@ -1253,7 +1228,7 @@ #[test] fn allow_list_test_3() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); @@ -1267,13 +1242,13 @@ )); assert_ok!(TemplateModule::add_to_allow_list( origin1.clone(), - 1, + collection_id, account(1) )); assert_noop!( - TemplateModule::transfer(origin1, account(3), 1, 1, 1), - Error::::AddresNotInAllowList + TemplateModule::transfer(origin1, account(3), collection_id, TokenId(1), 1), + CommonError::::AddressNotInAllowlist ); }); } @@ -1281,7 +1256,7 @@ #[test] fn allow_list_test_4() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); @@ -1308,11 +1283,11 @@ assert_ok!(TemplateModule::approve( origin1.clone(), account(1), - 1, - 1, + collection_id, + TokenId(1), 1 )); - assert_eq!(TemplateModule::approved(1, (1, 1, 1)), 1); + assert_eq!(>::get((CollectionId(1), TokenId(1))).unwrap(), account(1)); assert_ok!(TemplateModule::remove_from_allow_list( origin1.clone(), @@ -1321,8 +1296,8 @@ )); assert_noop!( - TemplateModule::transfer_from(origin1, account(1), account(3), 1, 1, 1), - Error::::AddresNotInAllowList + TemplateModule::transfer_from(origin1, account(1), account(3), collection_id, TokenId(1), 1), + CommonError::::AddressNotInAllowlist ); }); } @@ -1331,7 +1306,7 @@ #[test] fn allow_list_test_5() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); @@ -1344,8 +1319,8 @@ AccessMode::AllowList )); assert_noop!( - TemplateModule::burn_item(origin1.clone(), 1, 1, 5), - Error::::AddresNotInAllowList + TemplateModule::burn_item(origin1.clone(), CollectionId(1), TokenId(1), 5), + CommonError::::AddressNotInAllowlist ); }); } @@ -1354,7 +1329,7 @@ #[test] fn allow_list_test_6() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); @@ -1369,8 +1344,8 @@ // do approve assert_noop!( - TemplateModule::approve(origin1, account(1), 1, 1, 5), - Error::::AddresNotInAllowList + TemplateModule::approve(origin1, account(1), CollectionId(1), TokenId(1), 5), + CommonError::::AddressNotInAllowlist ); }); } @@ -1380,7 +1355,7 @@ #[test] fn allow_list_test_7() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let data = default_nft_data(); create_test_item(collection_id, &data.into()); @@ -1403,14 +1378,14 @@ account(2) )); - assert_ok!(TemplateModule::transfer(origin1, account(2), 1, 1, 1)); + assert_ok!(TemplateModule::transfer(origin1, account(2), CollectionId(1), TokenId(1), 1)); }); } #[test] fn allow_list_test_8() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let data = default_nft_data(); create_test_item(collection_id, &data.into()); @@ -1437,18 +1412,18 @@ assert_ok!(TemplateModule::approve( origin1.clone(), account(1), - 1, - 1, + CollectionId(1), + TokenId(1), 5 )); - assert_eq!(TemplateModule::approved(1, (1, 1, 1)), 5); + assert_eq!(>::get((CollectionId(1), TokenId(1))).unwrap(), account(1)); assert_ok!(TemplateModule::transfer_from( origin1, account(1), account(2), - 1, - 1, + CollectionId(1), + TokenId(1), 1 )); }); @@ -1458,7 +1433,7 @@ #[test] fn allow_list_test_9() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::set_public_access_mode( @@ -1481,7 +1456,7 @@ #[test] fn allow_list_test_10() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -1516,7 +1491,7 @@ #[test] fn allow_list_test_11() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -1538,8 +1513,8 @@ )); assert_noop!( - TemplateModule::create_item(origin2, 1, account(2), default_nft_data().into()), - Error::::PublicMintingNotAllowed + TemplateModule::create_item(origin2, CollectionId(1), account(2), default_nft_data().into()), + CommonError::::PublicMintingNotAllowed ); }); } @@ -1548,7 +1523,7 @@ #[test] fn allow_list_test_12() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -1565,8 +1540,8 @@ )); assert_noop!( - TemplateModule::create_item(origin2, 1, account(2), default_nft_data().into()), - Error::::PublicMintingNotAllowed + TemplateModule::create_item(origin2, CollectionId(1), account(2), default_nft_data().into()), + CommonError::::PublicMintingNotAllowed ); }); } @@ -1575,7 +1550,7 @@ #[test] fn allow_list_test_13() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); @@ -1599,7 +1574,7 @@ #[test] fn allow_list_test_14() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -1623,7 +1598,7 @@ assert_ok!(TemplateModule::create_item( origin2, - 1, + collection_id, account(2), default_nft_data().into() )); @@ -1634,7 +1609,7 @@ #[test] fn allow_list_test_15() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -1651,8 +1626,8 @@ )); assert_noop!( - TemplateModule::create_item(origin2, 1, account(2), default_nft_data().into()), - Error::::AddresNotInAllowList + TemplateModule::create_item(origin2, collection_id, account(2), default_nft_data().into()), + CommonError::::AddressNotInAllowlist ); }); } @@ -1661,7 +1636,7 @@ #[test] fn allow_list_test_16() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -1684,7 +1659,7 @@ assert_ok!(TemplateModule::create_item( origin2, - 1, + collection_id, account(2), default_nft_data().into() )); @@ -1695,7 +1670,7 @@ #[test] fn total_number_collections_bound() { new_test_ext().execute_with(|| { - create_test_collection(&CollectionMode::NFT, 1); + create_test_collection(&CollectionMode::NFT, CollectionId(1)); }); } @@ -1706,7 +1681,7 @@ let origin1 = Origin::signed(1); for i in 0..COLLECTION_NUMBER_LIMIT { - create_test_collection(&CollectionMode::NFT, i + 1); + create_test_collection(&CollectionMode::NFT, CollectionId(i + 1)); } let col_name1: Vec = "Test1\0".encode_utf16().collect::>(); @@ -1722,7 +1697,7 @@ token_prefix1, CollectionMode::NFT ), - Error::::TotalCollectionsLimitExceeded + CommonError::::TotalCollectionsLimitExceeded ); }); } @@ -1731,7 +1706,7 @@ #[test] fn owned_tokens_bound() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let data = default_nft_data(); create_test_item(collection_id, &data.clone().into()); @@ -1743,19 +1718,19 @@ #[test] fn owned_tokens_bound_neg() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); - for _ in 0..ACCOUNT_TOKEN_OWNERSHIP_LIMIT { + for _ in 0..MAX_TOKEN_OWNERSHIP { let data = default_nft_data(); create_test_item(collection_id, &data.clone().into()); } let data = default_nft_data(); assert_noop!( - TemplateModule::create_item(origin1, 1, account(1), data.into()), - Error::::AccountTokenLimitExceeded + TemplateModule::create_item(origin1, CollectionId(1), account(1), data.into()), + CommonError::::AccountTokenLimitExceeded ); }); } @@ -1764,7 +1739,7 @@ #[test] fn collection_admins_bound() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); @@ -1785,7 +1760,7 @@ #[test] fn collection_admins_bound_neg() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); @@ -1793,16 +1768,16 @@ assert_ok!(TemplateModule::add_collection_admin( origin1.clone(), collection_id, - account(2 + i) + account((2 + i).into()) )); } assert_noop!( TemplateModule::add_collection_admin( origin1, collection_id, - account(3 + COLLECTION_ADMINS_LIMIT) + account((3 + COLLECTION_ADMINS_LIMIT).into()) ), - Error::::CollectionAdminsLimitExceeded + CommonError::::CollectionAdminCountExceeded ); }); } @@ -1811,7 +1786,7 @@ #[test] fn set_const_on_chain_schema() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::set_const_on_chain_schema( @@ -1821,13 +1796,13 @@ )); assert_eq!( - TemplateModule::collection_id(collection_id) + >::get(collection_id) .unwrap() .const_on_chain_schema, b"test const on chain schema".to_vec() ); assert_eq!( - TemplateModule::collection_id(collection_id) + >::get(collection_id) .unwrap() .variable_on_chain_schema, b"".to_vec() @@ -1838,7 +1813,7 @@ #[test] fn set_variable_on_chain_schema() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); assert_ok!(TemplateModule::set_variable_on_chain_schema( @@ -1848,13 +1823,13 @@ )); assert_eq!( - TemplateModule::collection_id(collection_id) + >::get(collection_id) .unwrap() .const_on_chain_schema, b"".to_vec() ); assert_eq!( - TemplateModule::collection_id(collection_id) + >::get(collection_id) .unwrap() .variable_on_chain_schema, b"test variable on chain schema".to_vec() @@ -1865,23 +1840,23 @@ #[test] fn set_variable_meta_data_on_nft_token_stores_variable_meta_data() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let data = default_nft_data(); - create_test_item(1, &data.into()); + create_test_item(CollectionId(1), &data.into()); let variable_data = b"test data".to_vec(); assert_ok!(TemplateModule::set_variable_meta_data( origin1, collection_id, - 1, + TokenId(1), variable_data.clone() )); assert_eq!( - TemplateModule::nft_item_id(collection_id, 1) + >::get((collection_id, 1)) .unwrap() .variable_data, variable_data @@ -1892,24 +1867,23 @@ #[test] fn set_variable_meta_data_on_re_fungible_token_stores_variable_meta_data() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::ReFungible, 1); + let collection_id = create_test_collection(&CollectionMode::ReFungible, CollectionId(1)); let origin1 = Origin::signed(1); let data = default_re_fungible_data(); - create_test_item(1, &data.into()); + create_test_item(collection_id, &data.into()); let variable_data = b"test data".to_vec(); assert_ok!(TemplateModule::set_variable_meta_data( origin1, collection_id, - 1, + TokenId(1), variable_data.clone() )); assert_eq!( - TemplateModule::refungible_item_id(collection_id, 1) - .unwrap() + >::get((collection_id, TokenId(1))) .variable_data, variable_data ); @@ -1919,17 +1893,17 @@ #[test] fn set_variable_meta_data_on_fungible_token_fails() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1); + let collection_id = create_test_collection(&CollectionMode::Fungible(3), CollectionId(1)); let origin1 = Origin::signed(1); let data = default_fungible_data(); - create_test_item(1, &data.into()); + create_test_item(collection_id, &data.into()); let variable_data = b"test data".to_vec(); assert_noop!( - TemplateModule::set_variable_meta_data(origin1, collection_id, 1, variable_data), - Error::::CantStoreMetadataInFungibleTokens + TemplateModule::set_variable_meta_data(origin1, collection_id, TokenId(1), variable_data), + >::FungibleItemsDontHaveData ); }); } @@ -1937,17 +1911,17 @@ #[test] fn set_variable_meta_data_on_nft_token_fails_for_big_data() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let data = default_nft_data(); - create_test_item(1, &data.into()); + create_test_item(collection_id, &data.into()); let variable_data = b"test set_variable_meta_data method, bigger than limits.".to_vec(); assert_noop!( - TemplateModule::set_variable_meta_data(origin1, collection_id, 1, variable_data), - Error::::TokenVariableDataLimitExceeded + TemplateModule::set_variable_meta_data(origin1, collection_id, TokenId(1), variable_data), + CommonError::::TokenVariableDataLimitExceeded ); }); } @@ -1955,17 +1929,17 @@ #[test] fn set_variable_meta_data_on_re_fungible_token_fails_for_big_data() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection(&CollectionMode::ReFungible, 1); + let collection_id = create_test_collection(&CollectionMode::ReFungible, CollectionId(1)); let origin1 = Origin::signed(1); let data = default_re_fungible_data(); - create_test_item(1, &data.into()); + create_test_item(collection_id, &data.into()); let variable_data = b"test set_variable_meta_data method, bigger than limits.".to_vec(); assert_noop!( - TemplateModule::set_variable_meta_data(origin1, collection_id, 1, variable_data), - Error::::TokenVariableDataLimitExceeded + TemplateModule::set_variable_meta_data(origin1, collection_id, TokenId(1), variable_data), + CommonError::::TokenVariableDataLimitExceeded ); }); } @@ -1975,12 +1949,12 @@ new_test_ext().execute_with(|| { //default_limits(); - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); let origin1 = Origin::signed(1); let data = default_nft_data(); - create_test_item(1, &data.into()); + create_test_item(collection_id, &data.into()); assert_ok!(TemplateModule::set_meta_update_permission_flag( origin1.clone(), @@ -1992,12 +1966,12 @@ assert_ok!(TemplateModule::set_variable_meta_data( origin1, collection_id, - 1, + TokenId(1), variable_data.clone() )); assert_eq!( - TemplateModule::nft_item_id(collection_id, 1) + >::get((collection_id, TokenId(1))) .unwrap() .variable_data, variable_data @@ -2008,7 +1982,7 @@ #[test] fn set_variable_meta_data_on_nft_with_item_owner_permission_flag_neg() { new_test_ext().execute_with(|| { - let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1); + let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, CollectionId(1)); let origin1 = Origin::signed(1); @@ -2024,7 +1998,7 @@ )); let data = default_nft_data(); - create_test_item(1, &data.into()); + create_test_item(collection_id, &data.into()); assert_ok!(TemplateModule::set_meta_update_permission_flag( origin1.clone(), @@ -2037,10 +2011,10 @@ TemplateModule::set_variable_meta_data( origin1, collection_id, - 1, + TokenId(1), variable_data.clone() ), - Error::::TokenVariableDataLimitExceeded + CommonError::::TokenVariableDataLimitExceeded ); }) } @@ -2050,23 +2024,22 @@ new_test_ext().execute_with(|| { let origin1 = Origin::signed(1); - let collection_id = create_test_collection(&CollectionMode::NFT, 1); - assert_ok!(TemplateModule::set_transfers_enabled_flag(origin1, 1, true)); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); + assert_ok!(TemplateModule::set_transfers_enabled_flag(origin1, collection_id, true)); let data = default_nft_data(); create_test_item(collection_id, &data.into()); - assert_eq!(TemplateModule::balance_count(1, 1), 1); - assert_eq!(TemplateModule::address_tokens(1, 1), [1]); + assert_eq!(>::get((collection_id, account(1))), 1); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), true); let origin1 = Origin::signed(1); // default scenario - assert_ok!(TemplateModule::transfer(origin1, account(2), 1, 1, 1000)); - assert_eq!(TemplateModule::nft_item_id(1, 1).unwrap().owner, account(2)); - assert_eq!(TemplateModule::balance_count(1, 1), 0); - assert_eq!(TemplateModule::balance_count(1, 2), 1); - - assert_eq!(TemplateModule::address_tokens(1, 2), [1]); + assert_ok!(TemplateModule::transfer(origin1, account(2), collection_id, TokenId(1), 1000)); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), false); + assert_eq!(>::get((collection_id, account(2), TokenId(1))), true); + assert_eq!(>::get((collection_id, account(1))), 0); + assert_eq!(>::get((collection_id, account(2))), 1); }); } @@ -2075,7 +2048,7 @@ new_test_ext().execute_with(|| { // default_limits(); - let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1); + let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -2098,7 +2071,7 @@ )); let data = default_nft_data(); - create_test_item(1, &data.into()); + create_test_item(collection_id, &data.into()); assert_ok!(TemplateModule::set_meta_update_permission_flag( origin2.clone(), @@ -2110,12 +2083,12 @@ assert_ok!(TemplateModule::set_variable_meta_data( origin1, collection_id, - 1, + TokenId(1), variable_data.clone() )); assert_eq!( - TemplateModule::nft_item_id(collection_id, 1) + >::get((collection_id, 1)) .unwrap() .variable_data, variable_data @@ -2128,7 +2101,7 @@ new_test_ext().execute_with(|| { // default_limits(); - let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1); + let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(1)); let origin1 = Origin::signed(1); let origin2 = Origin::signed(2); @@ -2145,7 +2118,7 @@ )); let data = default_nft_data(); - create_test_item(1, &data.into()); + create_test_item(collection_id, &data.into()); assert_ok!(TemplateModule::set_meta_update_permission_flag( origin2.clone(), @@ -2158,10 +2131,10 @@ TemplateModule::set_variable_meta_data( origin1, collection_id, - 1, + TokenId(1), variable_data.clone() ), - Error::::NoPermission + CommonError::::NoPermission ); }); } @@ -2171,7 +2144,7 @@ new_test_ext().execute_with(|| { // default_limits(); - let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1); + let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(1)); let origin2 = Origin::signed(2); @@ -2186,7 +2159,7 @@ collection_id, MetaUpdatePermission::Admin ), - Error::::MetadataFlagFrozen + CommonError::::MetadataFlagFrozen ); }); } @@ -2196,11 +2169,11 @@ new_test_ext().execute_with(|| { // default_limits(); - let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1); + let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, CollectionId(1)); let origin1 = Origin::signed(1); let data = default_nft_data(); - create_test_item(1, &data.into()); + create_test_item(collection_id, &data.into()); assert_ok!(TemplateModule::set_meta_update_permission_flag( origin1.clone(), @@ -2213,10 +2186,10 @@ TemplateModule::set_variable_meta_data( origin1.clone(), collection_id, - 1, + TokenId(1), variable_data.clone() ), - Error::::MetadataUpdateDenied + CommonError::::NoPermission ); }); } @@ -2226,27 +2199,26 @@ new_test_ext().execute_with(|| { let origin1 = Origin::signed(1); - let collection_id = create_test_collection(&CollectionMode::NFT, 1); + let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1)); assert_ok!(TemplateModule::set_transfers_enabled_flag( - origin1, 1, false + origin1, collection_id, false )); let data = default_nft_data(); create_test_item(collection_id, &data.into()); - assert_eq!(TemplateModule::balance_count(1, 1), 1); - assert_eq!(TemplateModule::address_tokens(1, 1), [1]); + assert_eq!(>::get((collection_id, account(1))), 1); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), true); let origin1 = Origin::signed(1); // default scenario assert_noop!( - TemplateModule::transfer(origin1, account(2), 1, 1, 1000), - Error::::TransferNotAllowed + TemplateModule::transfer(origin1, account(2), CollectionId(1), TokenId(1), 1000), + CommonError::::TransferNotAllowed ); - assert_eq!(TemplateModule::nft_item_id(1, 1).unwrap().owner, account(1)); - assert_eq!(TemplateModule::balance_count(1, 1), 1); - assert_eq!(TemplateModule::balance_count(1, 2), 0); - - assert_eq!(TemplateModule::address_tokens(1, 1), [1]); + assert_eq!(>::get((collection_id, account(1))), 1); + assert_eq!(>::get((collection_id, account(2))), 0); + assert_eq!(>::get((collection_id, account(1), TokenId(1))), true); + assert_eq!(>::get((collection_id, account(2), TokenId(1))), false); }); } --- a/pallets/nonfungible/src/lib.rs +++ b/pallets/nonfungible/src/lib.rs @@ -58,18 +58,18 @@ } #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] + #[pallet::generate_store(pub trait Store)] pub struct Pallet(_); #[pallet::storage] - pub(super) type TokensMinted = + pub type TokensMinted = StorageMap; #[pallet::storage] - pub(super) type TokensBurnt = + pub type TokensBurnt = StorageMap; #[pallet::storage] - pub(super) type TokenData = StorageNMap< + pub type TokenData = StorageNMap< Key = (Key, Key), Value = ItemData, QueryKind = OptionQuery, @@ -77,7 +77,7 @@ /// Used to enumerate tokens owned by account #[pallet::storage] - pub(super) type Owned = StorageNMap< + pub type Owned = StorageNMap< Key = ( Key, Key, @@ -88,7 +88,7 @@ >; #[pallet::storage] - pub(super) type AccountBalance = StorageNMap< + pub type AccountBalance = StorageNMap< Key = ( Key, Key, @@ -98,7 +98,7 @@ >; #[pallet::storage] - pub(super) type Allowance = StorageNMap< + pub type Allowance = StorageNMap< Key = (Key, Key), Value = T::CrossAccountId, QueryKind = OptionQuery, --- a/pallets/refungible/src/lib.rs +++ b/pallets/refungible/src/lib.rs @@ -54,25 +54,25 @@ } #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] + #[pallet::generate_store(pub trait Store)] pub struct Pallet(_); #[pallet::storage] - pub(super) type TokensMinted = + pub type TokensMinted = StorageMap; #[pallet::storage] - pub(super) type TokensBurnt = + pub type TokensBurnt = StorageMap; #[pallet::storage] - pub(super) type TokenData = StorageNMap< + pub type TokenData = StorageNMap< Key = (Key, Key), Value = ItemData, QueryKind = ValueQuery, >; #[pallet::storage] - pub(super) type TotalSupply = StorageNMap< + pub type TotalSupply = StorageNMap< Key = (Key, Key), Value = u128, QueryKind = ValueQuery, @@ -80,7 +80,7 @@ /// Used to enumerate tokens owned by account #[pallet::storage] - pub(super) type Owned = StorageNMap< + pub type Owned = StorageNMap< Key = ( Key, Key, @@ -91,7 +91,7 @@ >; #[pallet::storage] - pub(super) type AccountBalance = StorageNMap< + pub type AccountBalance = StorageNMap< Key = ( Key, // Owner @@ -102,7 +102,7 @@ >; #[pallet::storage] - pub(super) type Balance = StorageNMap< + pub type Balance = StorageNMap< Key = ( Key, Key, @@ -114,7 +114,7 @@ >; #[pallet::storage] - pub(super) type Allowance = StorageNMap< + pub type Allowance = StorageNMap< Key = ( Key, Key,