git.delta.rocks / unique-network / refs/commits / fc02fab15673

difftreelog

Merge branch 'dev'

Greg Zaitsev2020-08-05parents: #5b57799 #a55594d.patch.diff
in: master

2 files changed

modifiedREADME.mddiffbeforeafterboth
126 "Owner": "AccountId",126 "Owner": "AccountId",
127 "Mode": "CollectionMode",127 "Mode": "CollectionMode",
128 "Access": "u8",128 "Access": "u8",
129 "NextItemId": "u64",
130 "DecimalPoints": "u32",129 "DecimalPoints": "u32",
131 "Name": "Vec<u16>",130 "Name": "Vec<u16>",
132 "Description": "Vec<u16>",131 "Description": "Vec<u16>",
modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -81,7 +81,6 @@
     pub owner: AccountId,
     pub mode: CollectionMode,
     pub access: AccessMode,
-    pub next_item_id: u64,
     pub decimal_points: u32,
     pub name: Vec<u16>,        // 64 include null escape char
     pub description: Vec<u16>, // 256 include null escape char
@@ -228,7 +227,6 @@
                 description: description,
                 decimal_points: decimal_points,
                 token_prefix: prefix,
-                next_item_id: next_id,
                 offchain_schema: Vec::new(),
                 custom_data_size: custom_data_size,
                 sponsor: T::AccountId::default(),
@@ -364,9 +362,6 @@
             ensure!(target_collection.custom_data_size >= properties.len() as u32, "Size of item is too large");
 
             Self::check_owner_or_admin_permissions(collection_id, sender.clone())?;
-
-            let new_balance = <Balance<T>>::get(collection_id, owner.clone()).checked_add(1).unwrap();
-            <Balance<T>>::insert(collection_id, owner.clone(), new_balance);
 
             // TODO: implement other modes
             match target_collection.mode 
@@ -593,10 +588,17 @@
         .checked_add(1)
         .expect("Item list index id error");
 
-        Self::add_token_index(item.collection, current_index, item.owner.first().unwrap().owner.clone())?;
+        let value = item.owner.first().unwrap().fraction as u64;
+        let owner = item.owner.first().unwrap().owner.clone();
+
+        Self::add_token_index(item.collection, current_index, owner.clone())?;
 
         <ItemListIndex>::insert(item.collection, current_index);
-        <ReFungibleItemList<T>>::insert(item.collection, current_index, item);        
+        <ReFungibleItemList<T>>::insert(item.collection, current_index, item);  
+        
+        // Update balance
+        let new_balance = <Balance<T>>::get(item.collection, owner.clone()).checked_add(value).unwrap();
+        <Balance<T>>::insert(item.collection, owner.clone(), new_balance);
 
         Ok(())
     }
@@ -681,6 +683,10 @@
         <ItemListIndex>::insert(item.collection, current_index);
         <NftItemList<T>>::insert(item.collection, current_index, item);
 
+        // Update balance
+        let new_balance = <Balance<T>>::get(item.collection, item.owner.clone()).checked_add(1).unwrap();
+        <Balance<T>>::insert(item.collection_id, item.owner.clone(), new_balance);
+
         Ok(())
     }