سری آموزشی ساخت توکن - از ابتدا تا تست و پیاده‌سازی [ویدیو]

سلام؛ خوشحالم که راه حل رو پیدا کردید. :slight_smile:

سلام
تفاوت بین sender و spender چیه ؟ اونچیزی که متوجه شدم sender یوزر هستش و spender میشه اون واسطی که اجازه انجام تراکنش رو توسط sender گرفته درست متوجه شدم ؟
سوال دیگه ام کلا پوشه math رو از اپدیت جدیدشون برداشتن ؟ و اینکه چرا بجای استفاده از + و - از sub , add استفاده کرده ؟
و آیا قسمتی هم برای max supply تعریف کردن هم داره ؟

spender در واقع اون آدرسی است که بهش اجازه برداشت داده میشه و میتونه به اندازه مقداری که در value مشخص میشه برداشت انجام بده.
کتابخونه safemath رو برنداشتن و به خاطر اینکه از سالیدیتی ورژن ۰.۸ کنترل overflow توسط خوده سالیدیتی انجام میشه میتونید دیگه از safemath استفاده نکنید.
از add و sub برای کنترل رخ ندادن overflow و underflow استفاده میشد.
برای تعیین max supply هم میتونید از اکستنشن ERC20Capped استفاده بکنید

3 پسندیده

همین قسمت درسته؟

برای مشخص کردن value باید تساوی _cap کوچک تر از یک مقدار قرار داد ؟
و این اندرلاین قبل و بعد cap چه تفاوتی ایجاد میکنه ؟

سوال اولتون اگه منظورتون داخل require که داره چک میشه مقدار ورودی 0 نباشه
_cap پارامتر ورودی ایه که هنگام دیپلوی شدن قرارداد مقدار میگیره و فقط یکبار میتونید به اون مقدار بدید
cap_ متغیر private که فقط از درون قرار داد قابل دسترسه و هنگام دیپلوی توسط _cap مقدار میگیره

1 پسندیده

پس کدوم قسمت باید max supply را مقدار دهی کنیم مثلا می خوام بیشتر از 2000 توکن نتونم ایجاد کنم این 2000 رو کجا باید بزارم ؟
و برا اضافه کردن این دستورات باید صدا زده بشه (مثل import که برای erc20.sol انجام شده ) یا کپی پیس بشه تو این قسمتی که ایجاد کردیم؟

بله همانند ERC20 این اکستنشن رو import کنید
سپس ازش ارث بری کنید
و در هنگام تعریف()constructor
باید بهش مقدار دهی کنید

constructor() ERC20("pamptoken", "pop") ERC20Capped(2000){.....} 
3 پسندیده

خیلی ممنون بابت توضیحات بسیار عالیتون .

1 پسندیده

اینطوری درسته؟ :

اگه منظورتون نحوه ارث بری و مقدار دهی بله درسته

1 پسندیده

بله همین منظورم بود خیلی ممنون .

1 پسندیده

سلام
این مراحل روی ویندوز 7 قابل انجام نیست؟ اصلا ویندوز 7 قابلیت انجام این کار هارو داره یا نه؟
مرسی

بله مشکلی وجود نداره


من موقع فراخوانی npm install @openzeppelin/contracts با این ارور مواجه میشم
راه حلی براش سراغ دارین؟
ممنون میشم راهنمایی کنین

دوستان کسی راه حلی نداره واسه این مشکل؟

به صورت زیر امتحان کنید

npm install "@openzeppelin/contracts"
1 پسندیده

مرسی دوست عزیز اینو اجرا کردم ارور نداد ولی این اخطار هارو داد
طبیعیه یا اینکه ناقص اجرا شده به نظر شما؟

بله احتمالا به درستی نصب شده این وارنینگ ها هم به دلیل عدم وجود فایل package.json است که با دستور زیر زیر این فایل ایجاد میشه

npm init

مرسی که وقت گذاشتین واسه پاسخگویی

1 پسندیده

سلام و احترام خدمت شما
من برای اضافه کردن سالیدیتی به ویژوال استودیو ؛ در نرم افزار ؛منوی اکستنشن سرچ کردم ولی نتیجه ای حاصل نشد

از سایت solidity - Visual Studio Marketplace اکستنشن رو به صورت جداگانه دانلود کردم و نصب کردم ولی

2022-02-03_185450

و اطلاعات ثبت شده در فایل لاگ

Searching for applicable products…
2/3/2022 6:53:38 PM - Found installed product - Global Location
2/3/2022 6:53:38 PM - Found installed product - Visual Studio Enterprise 2019
2/3/2022 6:53:38 PM - VSIXInstaller.NoApplicableSKUsException: One or more extensions are for Visual Studio Code. Try installing them in Visual Studio Code.
at VSIXInstaller.ExtensionService.GetInstallableDataImpl(IInstallableExtension extension, String extensionPackParentName, Boolean isRepairSupported, IStateData stateData, IEnumerable1& skuData) at VSIXInstaller.ExtensionService.GetInstallableData(String vsixPath, String extensionPackParentName, Boolean isRepairSupported, IStateData stateData, IEnumerable1& skuData)
at VSIXInstaller.ExtensionPackService.IsExtensionPack(IStateData stateData, Boolean isRepairSupported)
at VSIXInstaller.ExtensionPackService.ExpandExtensionPackToInstall(IStateData stateData, Boolean isRepairSupported)
at VSIXInstaller.App.Initialize(Boolean isRepairSupported)
at VSIXInstaller.App.Initialize()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
— End of stack trace from previous location where exception was thrown —
at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

امکانش هست که راهنمایی بفرمایید چه طور این افزونه رو اضافه کنم و چهطور مییشه اجراش کرد؟متشکرم