یک توکن غیرقانونی (NFT) یک دارایی دیجیتالی منحصر به فرد قابل شناسایی است که در یک blockchain ذخیره می شود. بر خلاف ارزهای رمزپایه ، که قارچ هستند ، یک NFT بی نظیر است.
مالکیت NFT در blockchain ثبت شده است و می تواند توسط مالک منتقل شود و امکان فروش و تبادل NFT را فراهم می کند.
NFT ها به طور معمول به پرونده های دیجیتالی (تصاویر ، فیلم ها یا سایر موارد) مراجعه می کنند ، و ارزش بازار NFT به پرونده دیجیتالی که به آن اشاره دارد گره خورده است.
بنابراین ، اگر NFT ها دارایی های دیجیتالی با ارزش هستند ، چرا باید آنها را بسوزانم؟
چرا NFT را بسوزانید
یکی از دلایل این است که امید به ایجاد یک مجموعه خاص از یک مجموعه خاص با ارزش تر با استفاده از آن ، با ارزش تر است. به عنوان مثال ، کسی که صاحب تمام ده NFT از یک مجسمه فوتبال است ، ممکن است تصمیم بگیرد که همه را نابود کند به جز یک نفر برای افزایش ارزش باقیمانده.
اما ، بیشتر ، شرکت ها:
- به صاحبان این فرصت را می دهند که در ازای محصولات فیزیکی یا نسخه "به روز شده" NFT ، NFT های خود را بسوزانند
- با اعلام اینکه همه NFT های فروخته نشده را پس از یک تاریخ خاص از بین می برند ، از مردم بخواهید که به سرعت NFT را از بین ببرند.
- NFT های فروخته نشده یا مشکل ساز را از بین ببرید
نحوه سوختن
نکته عجیب این است که EIP-721 بیان می کند:
"... تخریب NFT ها (" سوزاندن ") در مشخصات گنجانده نشده است. قرارداد شما ممکن است اینها را با روش های دیگر اجرا کند. "
خوب ، بیایید در مورد ویژگی سوزش بحث کنیم!
ما باید از اجرای ERC-721 شروع کنیم. OpenZeppelin ERC721 یکی از اجراهای گسترده است.
این قطعه ای از کد قرارداد است:
همانطور که می بینیم ، این اجرای در حال حاضر یک عملکرد داخلی _bu را ارائه می دهد. عملکرد شناسه توکن را به عنوان ورودی می پذیرد و موارد زیر را انجام می دهد:
- صاحب NFT را می گیرد
- با عملکرد قلاب _beforetokentransfer تماس می گیرد (بعداً چه قلاب ای روشن تر خواهد شد)
- همه مصوبات را برای نشانه پاک می کند
- تعادل مالک را کاهش می دهد
- رویداد انتقال را منتشر می کند
- عملکرد قلاب _aftertokentransfer را فراخوانی می کند
بنابراین ، کار انجام می شود؟
صبر کنید ، چیزی از دست رفته است!
این عملکرد بررسی نمی کند که آیا فرستنده مجاز به کار بر روی نشانه است یا خیر. بیایید خودمان این کار را انجام دهیم!
برای این منظور می توانیم از عملکرد قلاب _beforetokentransfer استفاده کنیم.
"قلاب ها به سادگی کارکردهایی هستند که قبل یا بعد از انجام برخی اقدامات فراخوانده می شوند. آنها یک نقطه متمرکز را برای قلاب و گسترش رفتار اصلی فراهم می کنند. "
قلاب _beforetokentransfer یک عملکرد مجازی داخلی است که در نظر گرفته می شود قبل از هرگونه انتقال توکن ، از جمله مینینگ و سوزاندن ، با این شرایط فراخوانی شود:
- هنگامی که هر دو "از" و "به" غیر صفر هستند ، ما در پرونده انتقال توکن هستیم
- وقتی "از" آدرس صفر است ، ما در مورد مینینگ هستیم
- وقتی "به" صفر است ، توکن سوخته می شود
- "از" و "به" هرگز صفر نیستند
به دنبال قوانین قلاب OpenZeppelin ، از اجرای Buablenft پیروی می کند.
در ردیف 33 ، ما بررسی می کنیم که در سناریوی سوزاندن یا انتقال قرار داریم ("از" آدرس صفر نیست).
سپس ، تنها آدرس مجاز به انتقال یا سوزاندن NFT باید صاحب آن باشد ، بنابراین ، در ردیف 34 ، ما صاحب TokenId را می گیریم و "نیاز" دارد که باید برابر با فرستنده معامله (msg. sender) باشد.
سپس ، تنها کاری که باید انجام شود اضافه کردن یک عملکرد سوختگی عمومی است که به عنوان عملکرد والدین _bu نامیده می شود.
تمام کد استحکام و آزمایشات را می توان در: https://github. com/donpabblo/buable-nft یافت.
اگر اینجا هستید ، از خواندن شما متشکرم. من صمیمانه امیدوارم که این توضیح برای شما مفید باشد.< SPAN> وقتی "از" آدرس صفر است ، ما در مورد مینینگ قرار داریم
فارکس را از کجا شروع کنیم...
ما را در سایت فارکس را از کجا شروع کنیم دنبال می کنید
برچسب :
نویسنده : لیما اصغرپورسازونی
بازدید : 38
تاريخ : دوشنبه
13 شهريور
1402 ساعت: 8:22