Вчера вечером открылся минт коллекции Guardians (хз, что это если честно). Чтобы заминтить NFT из этой коллекции, нужно было отправить 1.1 TON на контракт коллекции и указать там кое-какие параметры. Один из параметров, который указывался при минте, — это ссылка на метаданные NFT (точнее, IPFS хэш).
Проблема №1. Уровень: капец, но терпимо
Когда, например, 10 юзеров отправляли транзакцию с минтом NFT, сайт подставлял всем одинаковые ссылки на метаданные. В итоге у 9 юзеров возникала ошибка, а 1 юзер получал NFT. Поэтому многие просто спамили транзакциями в попытках заминтить NFT.
Проблема №2. Уровень: капец
Можно было указать ЛЮБУЮ ссылку на метаданные, даже свою личную. Как итог — у меня появилась памятная NFT Золотого Пескаря которую я получил используя скрипт из 8 строчек кода. Ну и еще можно было просто минтить NFT начиная с конца, чтобы избежать ошибок.
Кто виноват? (мое мнение)
Коллекция была запущена на платформе @sense_ton, и мне кажется контракты тоже они писали. К слову в команде Sense работает @kate_tonstarter, которая так-же работает в Tonstarter(по юзерке и био сужу)
Чтобы такого не допускать, НЕ ПОЗВОЛЯЙТЕ ЮЗЕРАМ УКАЗЫВАТЬ ТАКУЮ ВАЖНУЮ ИНФОРМАЦИЮ, ПУСТЬ КОНТРАКТ САМ ПОДСТАВЛЯЕТ ССЫЛКИ. Кстати, контракт коллекции и NFT написаны на языке Tact, который я хейчу, поэтому Tact тоже не используйте.