Skip to content

Commit

Permalink
[NTFs] Emit CollectionMaxSupplySet on collection create (paritytech#2626
Browse files Browse the repository at this point in the history
)

Closes paritytech#2293 

if the max_supply is set during the collection creation, we emit the
`CollectionMaxSupplySet` event
  • Loading branch information
jsidorenko authored Dec 8, 2023
1 parent 80dcb3e commit 4c37f8e
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
6 changes: 6 additions & 0 deletions substrate/frame/nfts/src/features/create_delete_collection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,13 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {

CollectionConfigOf::<T, I>::insert(&collection, config);
CollectionAccount::<T, I>::insert(&owner, &collection, ());

Self::deposit_event(event);

if let Some(max_supply) = config.max_supply {
Self::deposit_event(Event::CollectionMaxSupplySet { collection, max_supply });
}

Ok(())
}

Expand Down
28 changes: 27 additions & 1 deletion substrate/frame/nfts/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2191,6 +2191,10 @@ fn max_supply_should_work() {
default_collection_config()
));
assert_eq!(CollectionConfigOf::<Test>::get(collection_id).unwrap().max_supply, None);
assert!(!events().contains(&Event::<Test>::CollectionMaxSupplySet {
collection: collection_id,
max_supply,
}));

assert_ok!(Nfts::set_collection_max_supply(
RuntimeOrigin::signed(user_id.clone()),
Expand Down Expand Up @@ -2242,9 +2246,31 @@ fn max_supply_should_work() {
None
));
assert_noop!(
Nfts::mint(RuntimeOrigin::signed(user_id.clone()), collection_id, 2, user_id, None),
Nfts::mint(
RuntimeOrigin::signed(user_id.clone()),
collection_id,
2,
user_id.clone(),
None
),
Error::<Test>::MaxSupplyReached
);

// validate the event gets emitted when we set the max supply on collection create
let collection_id = 1;
assert_ok!(Nfts::force_create(
RuntimeOrigin::root(),
user_id.clone(),
CollectionConfig { max_supply: Some(max_supply), ..default_collection_config() }
));
assert_eq!(
CollectionConfigOf::<Test>::get(collection_id).unwrap().max_supply,
Some(max_supply)
);
assert!(events().contains(&Event::<Test>::CollectionMaxSupplySet {
collection: collection_id,
max_supply,
}));
});
}

Expand Down

0 comments on commit 4c37f8e

Please sign in to comment.