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

difftreelog

Balances fix

str-mv2020-05-07parent: #beeb27d.patch.diff
in: master

2 files changed

modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -280,6 +280,10 @@
 			}
 			<ItemList<T>>::remove((collection_id, item_id));
 
+			// update balance
+			let new_balance = <Balance<T>>::get((collection_id, item.owner.clone())) - 1;
+			<Balance<T>>::insert((collection_id, item.owner.clone()), new_balance);
+
 			Ok(())
 		}
 
@@ -308,10 +312,19 @@
 			}
 			<ItemList<T>>::remove((collection_id, item_id));
 
+			// update balance
+			let balance_old_owner = <Balance<T>>::get((collection_id, item.owner.clone())) - 1;
+			<Balance<T>>::insert((collection_id, item.owner.clone()), balance_old_owner);
+
+			let balance_new_owner = <Balance<T>>::get((collection_id, new_owner.clone())) + 1;
+			<Balance<T>>::insert((collection_id, new_owner.clone()), balance_new_owner);
+
 			// change owner
 			item.owner = new_owner;
 			<ItemList<T>>::insert((collection_id, item_id), item);
 
+
+
 			Ok(())
 		}
 	}
modifiedpallets/nft/src/tests.rsdiffbeforeafterboth
69 assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1));69 assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1));
70 assert_noop!(TemplateModule::burn_item(origin1.clone(), 1, 1), "Item does not exists");70 assert_noop!(TemplateModule::burn_item(origin1.clone(), 1, 1), "Item does not exists");
71
72 assert_eq!(TemplateModule::balance_count((1, 1)), 0);
71 });73 });
72}74}
7375
177 assert_ok!(TemplateModule::transfer(origin1.clone(), 1, 1, 2));179 assert_ok!(TemplateModule::transfer(origin1.clone(), 1, 1, 2));
178 assert_eq!(TemplateModule::item_id((1,1)).owner, 2);180 assert_eq!(TemplateModule::item_id((1,1)).owner, 2);
181
182 // balance_of check
183 assert_eq!(TemplateModule::balance_count((1, 1)), 0);
184 assert_eq!(TemplateModule::balance_count((1, 2)), 1);
179 });185 });
180}186}
181187