difftreelog
Balances fix
in: master
2 files changed
pallets/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(())
}
}
pallets/nft/src/tests.rsdiffbeforeafterboth69 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");7172 assert_eq!(TemplateModule::balance_count((1, 1)), 0);71 });73 });72}74}7375177 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);181182 // balance_of check183 assert_eq!(TemplateModule::balance_count((1, 1)), 0);184 assert_eq!(TemplateModule::balance_count((1, 2)), 1);179 });185 });180}186}181187