ERC1155 یک استاندارد توکن جدید است که هدف آن استفاده از استانداردهای قبلی برای ایجاد یک قرارداد توکن تنیفیک-آگنوستیک و کارآمد با گاز است.
| ERC1155 ایده هایی را از همه ERC20 ، ERC721 و ERC777 ترسیم می کند. اگر با آن استانداردها ناآشنا هستید ، قبل از حرکت به سمت راهنماهای آنها بروید. |
استاندارد چند توکن
ویژگی متمایز ERC1155 این است که از یک قرارداد هوشمند واحد برای نشان دادن چندین نشانه به طور همزمان استفاده می کند. به همین دلیل عملکرد تعادل آن با ERC20 و ERC777 متفاوت است: این یک آرگومان اضافی برای شناسه نشانه ای است که می خواهید از تعادل استفاده کنید.
این شبیه به نحوه انجام ERC721 کارهاست ، اما در آن استاندارد یک شناسه توکن هیچ مفهومی از تعادل ندارد: هر نشانه غیرقانونی است و وجود دارد یا نمی کند. تابع تعادل ERC721 به این امر اشاره دارد که چه تعداد نشانه های مختلف یک حساب وجود دارد ، نه از هر کدام. از طرف دیگر ، در حساب های ERC1155 تعادل مشخصی برای هر شناسه توکن وجود دارد و نشانه های غیرقانونی با استفاده از آن به سادگی با استخراج یک مورد از آنها اجرا می شوند.
این رویکرد منجر به صرفه جویی گسترده گاز برای پروژه هایی می شود که به چندین نشانه نیاز دارند. به جای اعمال قرارداد جدید برای هر نوع توکن ، یک قرارداد توکن ERC1155 واحد می تواند کل وضعیت سیستم را نگه داشته و هزینه های استقرار و پیچیدگی را کاهش دهد.
عملیات دسته
از آنجا که همه ایالت ها در یک قرارداد واحد برگزار می شود ، می توان در یک معامله واحد بسیار کارآمد از طریق چندین توکن فعالیت کرد. این استاندارد دو عملکرد را ارائه می دهد ، BalanceOfBatch و Safebatchtransferfrom ، که باعث ایجاد پرس و جو در چندین تعادل و انتقال چندین توکن ساده تر و کمتر گاز می شود.
با روحیه استاندارد ، ما همچنین عملیات دسته ای را در توابع غیر استاندارد مانند _Mintbatch گنجانده ایم.
ساخت یک قرارداد توکن ERC1155
ما از ERC1155 برای ردیابی چندین مورد در بازی خود استفاده خواهیم کرد ، که هر کدام ویژگی های منحصر به فرد خود را خواهند داشت. ما همه موارد را به اعزام قرارداد نعناع می کنیم ، که بعداً می توانیم به بازیکنان منتقل شویم. بازیکنان آزاد هستند که نشانه های خود را حفظ کنند یا آنها را با افراد دیگر تجارت کنند ، زیرا آنها دارایی دیگری را در blockchain می دانند!
برای سادگی ، ما همه موارد موجود در سازنده را نعناع خواهیم کرد اما می توانید قابلیت های مینتینگ را به قرارداد اضافه کنید تا تقاضا را به بازیکنان نعناع کنید.
| برای مرور کلی از مکانیسم های مینینگ ، از ایجاد منبع ERC20 استفاده کنید. |
در اینجا ممکن است یک قرارداد برای موارد توکن به نظر برسد:
توجه داشته باشید که برای موارد بازی ما ، طلا یک نشانه قارچ است ، در حالی که چکش ثور یک نشانه غیر قابل تغییر است زیرا ما فقط یک مورد را ذوب می کنیم.
قرارداد ERC1155 شامل پسوند اختیاری IERC1155METADATAURI است. این جایی است که عملکرد URI از آن ناشی می شود: ما از آن برای بازیابی ابرداده URI استفاده می کنیم.
همچنین توجه داشته باشید که برخلاف ERC20 ، ERC1155 فاقد یک زمینه اعشار است ، زیرا هر نشانه متمایز است و نمی توان تقسیم کرد.
پس از اعزام ، ما قادر خواهیم بود تعادل استقلال را پرس و جو کنیم:
ما می توانیم موارد را به حساب بازیکنان منتقل کنیم:
ما همچنین می توانیم موارد انتقال را به حساب های پخش کننده دسته بندی کنیم و تعادل دسته ها را بدست آوریم:
URI ابرداده را می توان بدست آورد:
URI می تواند رشته ای را که مشتری باید با شناسه واقعی توکن جایگزین کند ، در شش ضلعی کوچک (بدون پیشوند 0x) قرار دهد و صفر را به 64 کاراکتر هگز منتقل کند.
سند JSON برای Token ID 2 ممکن است چیزی شبیه به این باشد:
برای کسب اطلاعات بیشتر در مورد طرحواره ابرداده JSON ، از طرحواره ERC-1155 ابرداده Uri Json استفاده کنید.
متوجه خواهید شد که اطلاعات مورد در ابرداده گنجانده شده است ، اما این اطلاعات در زنجیره ای نیست! بنابراین یک توسعه دهنده بازی می تواند ابرداده زیرین را تغییر دهد و قوانین بازی را تغییر دهد!
| ارسال نشانه ها به قراردادها |
تفاوت اساسی هنگام استفاده از SafetransferFrom در این است که انتقال نشانه به سایر قراردادها ممکن است با پیام زیر برگردد:
این چیز خوبیه! این بدان معناست که قرارداد گیرنده خود را به عنوان آگاه از پروتکل ERC1155 ثبت نکرده است ، بنابراین انتقال به آن غیرفعال است تا مانع از قفل شدن نشانه ها برای همیشه شود. به عنوان نمونه ، قرارداد Golem در حال حاضر دارای بیش از 350K Tokens GNT ، به ارزش چندین ده هزار دلار است و فاقد روش هایی برای خارج کردن آنها از آنجا است. این اتفاق تقریباً در هر پروژه تحت حمایت ERC20 اتفاق افتاده است ، معمولاً به دلیل خطای کاربر.
به منظور دریافت قرارداد ما می توانیم نشانه های ERC1155 را از قرارداد راحتی ERC1155 که ثبت نام برای ما دارد ، به ارث ببریم. اگرچه ما باید به یاد داشته باشیم که عملکردی را اجرا کنیم تا اجازه دهد نشانه ها از قرارداد ما منتقل شوند:
ما همچنین می توانیم سناریوهای پیچیده تری را با استفاده از توابع onerc1155receive و onerc1155batchreceived پیاده سازی کنیم.
از پیش تعیین شده ERC1155 قرارداد
ERC1155 از پیش تعیین شده در دسترس است ، ERC1155PRESETMINTERPAUSER. این از پیش تعیین شده برای استفاده از توکن (ایجاد) است - از جمله مینینگ دسته ای ، همه نقل و انتقالات نشانه (مکث) را متوقف کنید و به دارندگان اجازه دهید تا نشانه های خود را بسوزانند (از بین ببرند). این قرارداد از کنترل دسترسی برای کنترل دسترسی به عملکرد مینینگ و مکث استفاده می کند. به حسابی که قرارداد را مستقر می کند ، نقش های Minter و Pauser و همچنین نقش مدیر پیش فرض اعطا می شود.
این قرارداد بدون نیاز به نوشتن کد استحکام آماده است. می توان از آن برای نمونه سازی سریع و آزمایش استفاده کرد ، اما برای محیط های تولید نیز مناسب است.< SPAN> از پیش تعیین شده ERC1155 در دسترس است ، ERC1155PRESETMINTERPAUSER. این از پیش تعیین شده برای استفاده از توکن (ایجاد) است - از جمله مینینگ دسته ای ، همه نقل و انتقالات نشانه (مکث) را متوقف کنید و به دارندگان اجازه دهید تا نشانه های خود را بسوزانند (از بین ببرند). این قرارداد از کنترل دسترسی برای کنترل دسترسی به عملکرد مینینگ و مکث استفاده می کند. به حسابی که قرارداد را مستقر می کند ، نقش های Minter و Pauser و همچنین نقش مدیر پیش فرض اعطا می شود.
این قرارداد بدون نیاز به نوشتن کد استحکام آماده است. این می تواند از AS-IS برای نمونه سازی سریع و آزمایش استفاده شود ، اما برای محیط های تولید نیز مناسب است. از پیش تعیین شده ERC1155 در دسترس است ، ERC1155PRESETMINTERPAUSER. این از پیش تعیین شده برای استفاده از توکن (ایجاد) است - از جمله مینینگ دسته ای ، همه نقل و انتقالات نشانه (مکث) را متوقف کنید و به دارندگان اجازه دهید تا نشانه های خود را بسوزانند (از بین ببرند). این قرارداد از کنترل دسترسی برای کنترل دسترسی به عملکرد مینینگ و مکث استفاده می کند. به حسابی که قرارداد را مستقر می کند ، نقش های Minter و Pauser و همچنین نقش مدیر پیش فرض اعطا می شود.
رازهاي معامله گران موفق...
ما را در سایت رازهاي معامله گران موفق دنبال می کنید
برچسب :
نویسنده : سید مهدی موسوی
بازدید : <-PostHit->
تاريخ : يکشنبه
28 اسفند
1401 ساعت: 14:44