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

difftreelog

Create collection type fix

str-mv2020-07-30parent: #55a89b2.patch.diff
in: master

1 file changed

modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
112 where112 where
113 AccountId = <T as system::Trait>::AccountId,113 AccountId = <T as system::Trait>::AccountId,
114 {114 {
115 Created(u64, CollectionMode, AccountId),115 Created(u64, u8, AccountId),
116 ItemCreated(u64, u64),116 ItemCreated(u64, u64),
117 ItemDestroyed(u64, u64),117 ItemDestroyed(u64, u64),
118 }118 }
132 collection_name: Vec<u16>,132 collection_name: Vec<u16>,
133 collection_description: Vec<u16>,133 collection_description: Vec<u16>,
134 token_prefix: Vec<u8>,134 token_prefix: Vec<u8>,
135 mode: CollectionMode,135 mode: u8,
136 decimal_points: u32,136 decimal_points: u32,
137 custom_data_size: u32) -> DispatchResult {137 custom_data_size: u32) -> DispatchResult {
138138
139 // Anyone can create a collection139 // Anyone can create a collection
140 let who = ensure_signed(origin)?;140 let who = ensure_signed(origin)?;
141 let collection_mode: CollectionMode;
142 match mode {
143 1 => collection_mode = CollectionMode::NFT,
144 2 => collection_mode = CollectionMode::Fungible,
145 3 => collection_mode = CollectionMode::ReFungible,
146 _ => collection_mode = CollectionMode::Invalid
147 }
141148
142 // check type149 // check type
143 ensure!((mode == CollectionMode::Fungible || mode == CollectionMode::NFT || mode == CollectionMode::ReFungible), 150 ensure!((collection_mode == CollectionMode::Fungible || collection_mode == CollectionMode::NFT || collection_mode == CollectionMode::ReFungible),
144 "Collection mode must be Fungible, NFT or ReFungible"); 151 "Collection mode must be Fungible, NFT or ReFungible");
145152
146 // NFT checks153 // NFT checks
147 if mode == CollectionMode::NFT154 if collection_mode == CollectionMode::NFT
148 {155 {
149 ensure!(decimal_points == 0, "Collection in NFT mode must have zero in decimal_points parameter"); 156 ensure!(decimal_points == 0, "Collection in NFT mode must have zero in decimal_points parameter");
150 }157 }
151158
152 // Fungible checks159 // Fungible checks
153 if mode == CollectionMode::Fungible160 if collection_mode == CollectionMode::Fungible
154 {161 {
155 ensure!(custom_data_size == 0, "Collection in Fungible mode must have zero in custom_data_size parameter"); 162 ensure!(custom_data_size == 0, "Collection in Fungible mode must have zero in custom_data_size parameter");
156 ensure!(decimal_points != 0, "Collection in Fungible mode must have not zero in decimal_points parameter"); 163 ensure!(decimal_points != 0, "Collection in Fungible mode must have not zero in decimal_points parameter");
182 let new_collection = CollectionType {189 let new_collection = CollectionType {
183 owner: who.clone(),190 owner: who.clone(),
184 name: name,191 name: name,
185 mode: mode.clone(),192 mode: collection_mode.clone(),
186 access: AccessMode::Normal,193 access: AccessMode::Normal,
187 description: description,194 description: description,
188 decimal_points: decimal_points,195 decimal_points: decimal_points,
195 <Collection<T>>::insert(next_id, new_collection);202 <Collection<T>>::insert(next_id, new_collection);
196203
197 // call event204 // call event
198 Self::deposit_event(RawEvent::Created(next_id, mode.clone(), who.clone()));205 Self::deposit_event(RawEvent::Created(next_id, mode, who.clone()));
199206
200 Ok(())207 Ok(())
201 }208 }