difftreelog
Create collection type fix
in: master
1 file changed
pallets/nft/src/lib.rsdiffbeforeafterboth112 where112 where113 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 {138138139 // Anyone can create a collection139 // Anyone can create a collection140 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::Invalid147 }141148142 // check type149 // check type143 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"); 145152146 // NFT checks153 // NFT checks147 if mode == CollectionMode::NFT154 if collection_mode == CollectionMode::NFT148 {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 }151158152 // Fungible checks159 // Fungible checks153 if mode == CollectionMode::Fungible160 if collection_mode == CollectionMode::Fungible154 {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);196203197 // call event204 // call event198 Self::deposit_event(RawEvent::Created(next_id, mode.clone(), who.clone()));205 Self::deposit_event(RawEvent::Created(next_id, mode, who.clone()));199206200 Ok(())207 Ok(())201 }208 }