شیء Web3. eth. Contract تعامل با قراردادهای هوشمند در blockchain Ethereum را آسان می کند. هنگامی که یک شیء قرارداد جدید ایجاد می کنید ، به آن رابط JSON از قرارداد هوشمند مربوطه می دهید و Web3 تمام تماس ها را به تماس های سطح پایین ABI از طریق RPC برای شما تبدیل می کند.
این به شما امکان می دهد تا با قراردادهای هوشمند ارتباط برقرار کنید که گویی آنها اشیاء JavaScript هستند.
برای استفاده از آن مستقل:
با تمام روش ها و رویدادهای تعریف شده در شیء رابط JSON خود ، یک نمونه قرارداد جدید ایجاد می کند.
موضوع: نمونه قرارداد با تمام روش ها و رویدادهای آن.
این آدرس پیش فرض به عنوان پیش فرض "از" خاصیت "، در صورت عدم وجود ویژگی" از ویژگی های زیر استفاده می شود:
رشته - 20 بایت: هر آدرس اتریوم. شما باید کلید خصوصی را برای آن آدرس در گره یا کلید اصلی خود داشته باشید.(پیش فرض تعریف نشده است)
بلوک پیش فرض برای روشهای خاص استفاده می شود. می توانید با عبور در DefaultBlock به عنوان آخرین پارامتر ، آن را نادیده بگیرید. مقدار پیش فرض "آخرین" است.
پارامترهای بلوک پیش فرض می تواند یکی از موارد زیر باشد:
پیش فرض "آخرین" است.
خاصیت پیش فرض Hardfork برای امضای معاملات محلی استفاده می شود.
خاصیت پیش فرض سخت افزار می تواند یکی از موارد زیر باشد:
پیش فرض "پترزبورگ" است
خاصیت زنجیره ای پیش فرض برای امضای معاملات محلی استفاده می شود.
خاصیت زنجیره پیش فرض می تواند یکی از موارد زیر باشد:
پیش فرض "maiet" است
خاصیت مشترک پیش فرض برای امضای معاملات محلی استفاده می شود.
خاصیت مشترک پیش فرض شامل شیء مشترک زیر است:
پیش فرض تعریف نشده است.
TransactionBlockTimeout از طریق اتصالات مبتنی بر سوکت استفاده می شود. این گزینه میزان بلوک های جدیدی را که باید منتظر بمانید تا اولین تأیید اتفاق بیفتد ، تعریف می کند ، در غیر این صورت این تبلیغ با یک خطای زمان بندی رد می شود.
شماره: مقدار فعلی TransactionBlockTimeout (پیش فرض: 50)
این تعداد بلوک های مورد نیاز را تعیین می کند تا زمانی که معامله تأیید شود.
شماره: مقدار فعلی TransactionConfirmationBlocks (پیش فرض: 24)
TransactionPollingTimeout از طریق اتصالات HTTP استفاده می شود. این گزینه تعداد Seconds Web3 منتظر رسیدی است که تأیید می کند که معامله توسط شبکه استخراج شده است. توجه: اگر این روش از بین برود ، معامله هنوز در انتظار است.
شماره: ارزش فعلی TransactionPollingTimeout (پیش فرض: 750)
پیش فرض ویژگی های Handlerevert Options به False است و در صورت فعال کردن یا فراخوانی یک روش قرارداد ، رشته Revert Reason را برمی گرداند.
رشته و امضای Revert Reason ویژگی های خطای برگشتی است.
Boolean: مقدار فعلی Handlerevert (پیش فرض: نادرست)
گزینه گزینه ها برای نمونه قرارداد. از ، گاز و بنزین در هنگام ارسال معاملات به عنوان مقادیر برگشتی استفاده می شود.
آدرس مورد استفاده برای این نمونه قرارداد. کلیه معاملات حاصل از Web3. js از این قرارداد شامل این آدرس به عنوان "به" خواهد بود.
آدرس در حروف کوچک ذخیره می شود.
آدرس - رشته | NULL: آدرس این قرارداد ، یا اگر هنوز تنظیم نشده است NULL.
شیء رابط JSON که از ABI این قرارداد گرفته شده است.
jsoninterface - آرایه: رابط JSON برای این قرارداد. تنظیم مجدد این امر باعث می شود روش ها و وقایع نمونه قرارداد بازسازی شود.
کلون نمونه قرارداد فعلی.
موضوع: نمونه قرارداد جدید.
برای استقرار قرارداد به blockchain با این عملکرد تماس بگیرید. پس از استقرار موفقیت آمیز ، این وعده با یک نمونه قرارداد جدید برطرف می شود.
شی: موضوع معامله:
یک شیء معامله را برای آن روش ایجاد می کند ، که پس از آن می توان آن را رمزگذاری ، ارسال ، تخمین زده یا ABI نامید.
روش های این قرارداد هوشمند از طریق موجود است:
این اجازه می دهد تا توابع با نام مشابه اما پارامترهای مختلف از شیء قرارداد JavaScript.
پارامترهای هر روش به روشهای قراردادهای هوشمند ، تعریف شده در رابط JSON بستگی دارد.
شی: موضوع معامله:
با یک روش "ثابت" تماس می گیرید و روش قرارداد هوشمند خود را در EVM بدون ارسال هرگونه معامله اجرا می کنید. توجه داشته باشید تماس نمی تواند وضعیت قرارداد هوشمند را تغییر دهد.
Promise Retus Mixed: مقدار بازده (های) روش Smart Contract. اگر یک مقدار واحد را برگرداند ، همانطور که هست بازگردانده می شود. در صورت داشتن مقادیر بازگشت چندگانه ، آنها به عنوان یک شی با خصوصیات و شاخص ها بازگردانده می شوند:
معامله را به قرارداد هوشمند ارسال می کند و روش آن را اجرا می کند. توجه داشته باشید که این می تواند وضعیت قرارداد هوشمند را تغییر دهد.
پاسخ به تماس 32 هش معامله بایت را برمی گرداند.
ارتقاء: یک رویداد ترکیبی از Emitter Pression. هنگامی که رسید معامله در دسترس است ، حل می کند ، یا اگر این ارسال () از someContract. deploy () فراخوانی شود ، وعده با نمونه قرارداد جدید حل می شود. علاوه بر این رویدادهای زیر در دسترس هستند:
برای تخمین گاز یک روش در هنگام اجرای در EVM فراخوانی می شود. تخمین می تواند با گاز واقعی مورد استفاده در هنگام ارسال معامله متفاوت باشد ، زیرا وضعیت قرارداد هوشمند در آن زمان می تواند متفاوت باشد.
شماره بازده وعده: مقدار گاز تخمین زده می شود.
ABI را برای این روش رمزگذاری می کند. رشته HEX حاصل ، هش امضاء عملکرد 32 بیتی به علاوه پارامترهای منتقل شده در قالب محکم بسته بندی شده است. این می تواند برای ارسال معامله ، تماس با روش یا انتقال آن به روش قرارداد هوشمند دیگر به عنوان آرگومان استفاده شود. قسمت داده ها را در Web3. eth. SendTransaction به عنوان نتیجه EncodeABI () تنظیم کنید و همان است که با استفاده از روش قرارداد با Contract. mymethod. send () تماس بگیرید.
برخی از موارد استفاده برای Encodeabi () عبارتند از: تهیه معامله قرارداد هوشمند برای یک کیف پول چند منظوره ، کار با کیف پول های آفلاین و ذخیره سازی سرد و ایجاد بار معامله برای تماس های پیچیده قرارداد هوشمند.
برچسب :
نویسنده : مریم کاویانی
بازدید : <-PostHit->