همزمان با پیشرفت های چشمگیر در فضای وب 3، ان اف تی ها و کلکسیون های دیجیتال عرصه بلاک چین نیز، در حال رشد هستند. محبوبیت ان اف تی هایی مانند Cryptokitties و Bored APE سرمایه گذاران را به خرید کلکسیون های دیجیتال سازگار با ERC721 ترغیب می کند.
در این مقاله، روش ایجاد اولین قرارداد ERC-721 (ان اف تی)Open Zeppelin در سالیدیتی به شما آموزش داده می شود.
ایجاد قرارداد هوشمند در سالیدیتی و استقرار آن بر روی بلاک چین می تواند کاری دشوار به نظر رسد: سالیدیتی، امنیت، بهینهسازی گَس، محیط توسعه و هزینههای گَس، برخی از مواردی هستند که برای ایجاد کد خود در بلاک چین باید انجام دهید.
ابزارهایی مانند OpenZeppelin Wizard که به طراحان این امکان را می دهند که در کمترین زمان قراردادهای هوشمند قابل تنظیم و ایمن ایجاد کنند. همچنین با ابزارهای Web3 مثل Alchemy تجربه نوشتن کد استقرار روی بلاک چین را آسان، سریع و قابل اعتماد میکند.
در ادامه به نحوه توسعه و استقرار قرارداد هوشمند ERC721 (ان اف تی) می پردازیم.
1. زپلین را باز کنید
اول از همه، اجازه بدید به OpenZeppelin بریم، بعد در تب Wizard، روی ERC721 کلیک کنید. تمام ان اف تی ها توکن های ERC721 هستند.
ما قصد داریم که تمامی توکنها Mintable باشند و Enumerable و URI Storage جز خصیصه اونها باشه. توکن خودتون رو مطابق میل خودتون نامگذاری و نماد مورد نظر رو نیز وارد کنید.
2. Remix IDE
حالا روی دکمه Open in Remix در گوشه سمت راست بالا کلیک کنید. وقتی Remix IDE باز شد، کد آن نوشته می شود. می توانید نسخه کامپایلر رو به 0.8.4 تغییر دهید.
این کد آپدیت شده هست، حتما باید اون رو داخل Remix تغییر بدید. ما باید قسمت Ownable رو از برنامه سالیدیتی حذف کنیم چراکه میخوایم افراد دیگه ای به غیر از ownable توانایی ضرب ان اف تی ها رو داشته باشند. همچنین، ما مقدار MAX_SUPPLY رو 5000 اضافه کرده ایم تا ان اف تی ها محدود شوند.
3. Alchemy– ایجاد برنامه
بعد باید در Alchemy ثبت نام کنیم. روی Create App کلیک کنید و اسم برنامه خودتون رو هر چه می خواید بذارید. من اسمش رو Namzz nft گذاشتم. و بعد روی View Key کلیک کنید و آدرس HTTPS رو کپی کنید.
4. Metamask– اضافه کردن شبکه
علاوه بر این، باید با کلیک بر روی “افزودن شبکه”، شبکه خودتون رو در Metamask ایجاد کنید. تست نت رو مطابق میل خودتون نامگذاری کنید. من اسمش رو گذاشتم Namzz Goerli testnet . https URL رو که از alchemy کپی کردیم، جایگذاری کنید. ID رو به مقدار 5 برای Goerli اضافه و ETH رو به عنوان نماد وارد کنید. بر روی دکمه افزودن شبکه کلیک کنید.
می تونید مقداری اتریوم آزمایشی از Goerli faucet تهیه کنید. به حساب Alchemy خودتون وارد شوید و آدرس رو وارد کنید. در عرض چند ثانیه تست اتر رو دریافت خواهید کرد!
5. کامپایل و استقرار قرارداد هوشمند ان اف تی در Goerli Testnet
در Remix، به قسمت Deploy رفته و Injected Web3 رو به عنوان Environment انتخاب کنید. بعد از این انتخاب شما به طور خودکار به شبکه متصل می شوید. آدرس متاماسک خودتون رو به همراه اتر دریافت خواهید کرد. قرارداد هوشمند خودتون رو در تب Contract انتخاب کرده و روی Deploy کلیک کنید.
یک پنجره متاماسک باز میشه و از شما می خواد هزینه ها رو پرداخت کنید. بر روی Confirm کلیک و 10 ثانیه صبر کنید. قرارداد مستقر شده رو به Remix اضافه می کند!
6. قالب بندی متادیتا ان اف تی
برای اینکه OpenSea متادیتاهای خارج از زنجیره رو برای توکنهای ERC721 جمعآوری کنه، قرارداد باید یک URI که به متادیتا میزبان اشاره داره رو برگرداند. برای یافتن این URI، OpenSea، Rarible و سایر بازارهای محبوب باید از روش tokenURI موجود در استاندارد ERC721Uristorage استفاده کرد.
به بخش توسعه دهنده OpenSea بروید و ساختار متادیتا رو کپی کنید. اون رو در ویرایشگر آنلاین json قرار بدید و توضیحات رو مطابق میل خودتون ویرایش کنید. طبق مستندات OpenSea، متادیتا ان اف تی باید در یک فایل json. ذخیره شود و ساختار اون به صورت زیر باشد:
7. ایجاد و آپلود متادیتا در IPFS
حالا که درک مختصری از اونچه در متادیتا ان اف تی شما وجود داره داریم، بیایید نحوه ایجاد و ذخیره اون رو در IPFS-Inter Planetary File System یاد بگیریم.
به Filebase برید و اونجا یک حساب کاربری ایجاد کنید. ایمیل خودتون رو تایید کنید و وارد شوید. حالا باید روی create bucket کلیک کنیم، اسم باکت با حروف کوچک شروع میشه، من اسمش رو namzz-nft گذاشتم. IPFS رو انتخاب کرده و ایجاد کنید. حالا تصویری رو که می خواهد بسازید به عنوان nft آپلود کنید. روی تصویر کلیک کنید و آدرس IPFS Gateway رو کپی کنید. این لینک رو در قسمت تصویر فایل JSON وارد کنید.
فایل JSON رو به نام metadata.json ذخیره کنید و توی Bucket اون رو در FileBase آپلود کنید.
8. Goerli Testnet NFT خودتون رو ضرب کنید
بعد به سراغ Remix برید. روش های نارنجی روش هایی هستند که در واقع روی بلاک چین می نویسند در حالی که روش های آبی روش هایی هستند که از بلاک چین یاد می گیرند.
روی نماد کشویی روش safeMint کلیک کنید و آدرس خودتون و استرینگ زیر رو در فیلد uri قرار بدید:
ipfs://<your_metadata_cid>
با کلیک بر روی transact یک پنجره Metamask ایجاد میشه که از شما می خواد هزینه های گَس رو بپردازید. روی “sign” کلیک و اولین ان اف تی خودتون رو ضرب کنید!
آدرس خودتون رو در بخش balanceOf وارد کرده و آدرس خودتون رو وارد کنید. اون رو اجرا کنید – باید نشان دهد که 1 ان اف تی دارید.
همین کار رو با متد tokenUri انجام بدید و “0” رو به عنوان آرگومان id درج کنید – باید tokenURI شما رو نشان بده.
عالی بود! شما اولین ان اف تی خودتون رو ضرب کردید! حالا زمان اون هست که به OpenSea برید و بررسی کنید که آیا متادیتا خوانده شده است یا خیر.
9. ان اف تی رو در OpenSea ببینید
به testnets.opensea.io برید و با کیف پول Metamask خود وارد شوید. بعد روی عکس پروفایل خودتون کلیک کنید، باید ان اف تی جدید خودتون رو اونجا ببینید. اگر تصویر هنوز قابل مشاهده نیست، ب روی اون کلیک کنید و بعد روی دکمه “refresh metadata” کلیک کنید.
گاهی اوقات OpenSea در تشخیص متادیتا شبکه آزمایشی مشکل داره – و ممکنه تا 6 ساعت طول بکشه اونها رو نمایش بده.
تبریک میگم، شما با موفقیت اولین قرارداد هوشمند خودتون رو ایجاد، اصلاح و اجرا کردید. اولین ان اف تی خودتون رو ضرب و تصویر خودتون رو در IPFS منتشر کردید!
موفق و پیروز باشید