difftreelog
feat support evm calls of data
in: master
1 file changed
pallets/nft/src/lib.rsdiffbeforeafterboth1339 item_id: TokenId,1339 item_id: TokenId,1340 data: Vec<u8>1340 data: Vec<u8>1341 ) -> DispatchResult {1341 ) -> DispatchResult {1342 let sender = ensure_signed(origin)?;1342 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);1343 1343 1344 let target_collection = Self::get_collection(collection_id)?;1344 let target_collection = Self::get_collection(collection_id)?;1345 Self::token_exists(&target_collection, item_id)?;1345 Self::set_variable_meta_data_internal(sender, &target_collection, item_id, data)?;13461347 ensure!(ChainLimit::get().custom_data_limit >= data.len() as u32, Error::<T>::TokenVariableDataLimitExceeded);13481349 // Modify permissions check1350 ensure!(Self::is_item_owner(sender.clone(), &target_collection, item_id) ||1351 Self::is_owner_or_admin_permissions(&target_collection, sender.clone()),1352 Error::<T>::NoPermission);13531354 match target_collection.mode1355 {1356 CollectionMode::NFT => Self::set_nft_variable_data(&target_collection, item_id, data)?,1357 CollectionMode::ReFungible => Self::set_re_fungible_variable_data(&target_collection, item_id, data)?,1358 CollectionMode::Fungible(_) => fail!(Error::<T>::CantStoreMetadataInFungibleTokens),1359 _ => fail!(Error::<T>::UnexpectedCollectionType)1360 };136113461362 Ok(())1347 Ok(())1363 }1348 }1383 collection_id: CollectionId,1368 collection_id: CollectionId,1384 version: SchemaVersion1369 version: SchemaVersion1385 ) -> DispatchResult {1370 ) -> DispatchResult {1386 let sender = ensure_signed(origin)?;1371 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);1387 let mut target_collection = Self::get_collection(collection_id)?;1372 let mut target_collection = Self::get_collection(collection_id)?;1388 Self::check_owner_or_admin_permissions(&target_collection, &sender)?;1373 Self::check_owner_or_admin_permissions(&target_collection, &sender)?;1389 target_collection.schema_version = version;1374 target_collection.schema_version = version;1854 Ok(())1839 Ok(())1855 }1840 }18411842 pub fn set_variable_meta_data_internal(1843 sender: T::CrossAccountId,1844 collection: &CollectionHandle<T>, 1845 item_id: TokenId,1846 data: Vec<u8>,1847 ) -> DispatchResult {1848 Self::token_exists(&collection, item_id)?;18491850 ensure!(ChainLimit::get().custom_data_limit >= data.len() as u32, Error::<T>::TokenVariableDataLimitExceeded);18511852 // Modify permissions check1853 ensure!(Self::is_item_owner(&sender, &collection, item_id) ||1854 Self::is_owner_or_admin_permissions(&collection, &sender),1855 Error::<T>::NoPermission);18561857 match collection.mode1858 {1859 CollectionMode::NFT => Self::set_nft_variable_data(&collection, item_id, data)?,1860 CollectionMode::ReFungible => Self::set_re_fungible_variable_data(&collection, item_id, data)?,1861 CollectionMode::Fungible(_) => fail!(Error::<T>::CantStoreMetadataInFungibleTokens),1862 _ => fail!(Error::<T>::UnexpectedCollectionType)1863 };18641865 Ok(())1866 }185618671857 pub fn create_multiple_items_internal(1868 pub fn create_multiple_items_internal(1858 sender: T::CrossAccountId,1869 sender: T::CrossAccountId,