web3. eth. contract¶

ساخت وبلاگ

شیء Web3. eth. Contract تعامل با قراردادهای هوشمند در blockchain Ethereum را آسان می کند. هنگامی که یک شیء قرارداد جدید ایجاد می کنید ، به آن رابط JSON از قرارداد هوشمند مربوطه می دهید و Web3 تمام تماس ها را به تماس های سطح پایین ABI از طریق RPC برای شما تبدیل می کند.

این به شما امکان می دهد تا با قراردادهای هوشمند ارتباط برقرار کنید که گویی آنها اشیاء JavaScript هستند.

برای استفاده از آن مستقل:

قرارداد جدید

با تمام روش ها و رویدادهای تعریف شده در شیء رابط JSON خود ، یک نمونه قرارداد جدید ایجاد می کند.

مولفه های¶

  1. JsonInterface - شی: رابط JSON برای قرارداد فوری
  2. آدرس - رشته (اختیاری): آدرس قرارداد هوشمند برای تماس.
  3. گزینه ها - شی (اختیاری): گزینه های قرارداد. برخی از آنها به عنوان فال برای تماس و معاملات استفاده می شوند:
    • از - رشته: معاملات آدرس باید از آن انجام شود.
    • GASPRICE - رشته: قیمت گاز در WEI برای استفاده برای معاملات.
    • گاز - شماره: حداکثر گاز ارائه شده برای معامله (حد گاز).
    • داده ها - رشته: کد بایت قرارداد. هنگام استقرار قرارداد استفاده می شود.

بازگشت

موضوع: نمونه قرارداد با تمام روش ها و رویدادهای آن.

مثال¶

= خواص = ¶

حساب پیش فرض¶

این آدرس پیش فرض به عنوان پیش فرض "از" خاصیت "، در صورت عدم وجود ویژگی" از ویژگی های زیر استفاده می شود:

ویژگی¶

رشته - 20 بایت: هر آدرس اتریوم. شما باید کلید خصوصی را برای آن آدرس در گره یا کلید اصلی خود داشته باشید.(پیش فرض تعریف نشده است)

مثال¶

پیش فرض بلاک

بلوک پیش فرض برای روشهای خاص استفاده می شود. می توانید با عبور در DefaultBlock به عنوان آخرین پارامتر ، آن را نادیده بگیرید. مقدار پیش فرض "آخرین" است.

ویژگی¶

پارامترهای بلوک پیش فرض می تواند یکی از موارد زیر باشد:

  • شماره | bn | bignumber: یک شماره بلوک
  • "اولین" - رشته: بلوک پیدایش
  • "آخرین" - رشته: آخرین بلوک (رئیس فعلی blockchain)
  • "در انتظار" - رشته: بلوک استخراج شده در حال حاضر (از جمله معاملات در انتظار)

پیش فرض "آخرین" است.

مثال¶

defaulthardfork¶

خاصیت پیش فرض Hardfork برای امضای معاملات محلی استفاده می شود.

ویژگی¶

خاصیت پیش فرض سخت افزار می تواند یکی از موارد زیر باشد:

  • "ChainStart" - رشته
  • "Homestead" - رشته
  • "دائو" - رشته
  • "Tangerinewhistle" - رشته
  • "Spuriousdragon" - رشته
  • "بیزانس" - رشته
  • "قسطنطنیه" - رشته
  • "پترزبورگ" - رشته
  • "استانبول" - رشته

پیش فرض "پترزبورگ" است

مثال¶

پیش فرض Chain¶

خاصیت زنجیره ای پیش فرض برای امضای معاملات محلی استفاده می شود.

ویژگی¶

خاصیت زنجیره پیش فرض می تواند یکی از موارد زیر باشد:

  • "maiet" - رشته
  • "Goerli" - رشته
  • "Kovan" - رشته
  • "Rinkeby" - رشته
  • "Ropsten" - رشته

پیش فرض "maiet" است

مثال¶

DefaultCommon¶

خاصیت مشترک پیش فرض برای امضای معاملات محلی استفاده می شود.

ویژگی¶

خاصیت مشترک پیش فرض شامل شیء مشترک زیر است:

  • CustomChain - شی: ویژگی های زنجیره ای سفارشی
    • نام - رشته: (اختیاری) نام زنجیره
    • NetworkId - شماره: شناسه شبکه زنجیره سفارشی
    • ChainID - شماره: شناسه زنجیره ای زنجیره سفارشی

    پیش فرض تعریف نشده است.

    مثال¶

    TransactionBlockTimeout¶

    TransactionBlockTimeout از طریق اتصالات مبتنی بر سوکت استفاده می شود. این گزینه میزان بلوک های جدیدی را که باید منتظر بمانید تا اولین تأیید اتفاق بیفتد ، تعریف می کند ، در غیر این صورت این تبلیغ با یک خطای زمان بندی رد می شود.

    بازگشت

    شماره: مقدار فعلی TransactionBlockTimeout (پیش فرض: 50)

    TransactionConfirmationBlocks¶

    این تعداد بلوک های مورد نیاز را تعیین می کند تا زمانی که معامله تأیید شود.

    بازگشت

    شماره: مقدار فعلی TransactionConfirmationBlocks (پیش فرض: 24)

    TransactionPollingTimeout¶

    TransactionPollingTimeout از طریق اتصالات HTTP استفاده می شود. این گزینه تعداد Seconds Web3 منتظر رسیدی است که تأیید می کند که معامله توسط شبکه استخراج شده است. توجه: اگر این روش از بین برود ، معامله هنوز در انتظار است.

    بازگشت

    شماره: ارزش فعلی TransactionPollingTimeout (پیش فرض: 750)

    Handlerevert¶

    پیش فرض ویژگی های Handlerevert Options به False است و در صورت فعال کردن یا فراخوانی یک روش قرارداد ، رشته Revert Reason را برمی گرداند.

    رشته و امضای Revert Reason ویژگی های خطای برگشتی است.

    بازگشت

    Boolean: مقدار فعلی Handlerevert (پیش فرض: نادرست)

    گزینه ها¶

    گزینه گزینه ها برای نمونه قرارداد. از ، گاز و بنزین در هنگام ارسال معاملات به عنوان مقادیر برگشتی استفاده می شود.

    خواص

    • آدرس - رشته: آدرس که در آن قرارداد مستقر شده است. به گزینه ها مراجعه کنید.
    • jsoninterface - آرایه: رابط JSON قرارداد. به گزینه های. JsonInterface مراجعه کنید.
    • داده ها - رشته: کد بایت قرارداد. هنگام استقرار قرارداد استفاده می شود.
    • از - رشته: معاملات آدرس باید از آن انجام شود.
    • GASPRICE - رشته: قیمت گاز در WEI برای استفاده برای معاملات.
    • گاز - شماره: حداکثر گاز ارائه شده برای معامله (حد گاز).
    • Handlerevert - Boolean: در غیر این صورت از مقدار پیش فرض ارائه شده از ماژول ETH استفاده می کند. به Handlerevert مراجعه کنید.
    • TransactionBlockTimeout - شماره: در غیر این صورت از مقدار پیش فرض ارائه شده از ماژول ETH استفاده می کند. به TransactionBlockTimeout مراجعه کنید.
    • TransactonCormationBlocks - شماره: در غیر این صورت از مقدار پیش فرض ارائه شده از ماژول ETH استفاده می کند. به TransactionConfirmationBlocks مراجعه کنید.
    • TransactionPollingTimeout - شماره: در غیر این صورت از مقدار پیش فرض ارائه شده از ماژول ETH استفاده می کند. به TransactionPollingTimeout مراجعه کنید.
    • زنجیره - شماره: در غیر این صورت از مقدار پیش فرض ارائه شده از ماژول ETH استفاده می کند. به DefaultChain مراجعه کنید.
    • Hardfork - Number: در غیر این صورت از مقدار پیش فرض ارائه شده از ماژول ETH استفاده می کند. به DefaulthardFork مراجعه کنید.
    • مشترک - شماره: در غیر این صورت از مقدار پیش فرض ارائه شده از ماژول ETH استفاده می کند. به DefaultCommon مراجعه کنید.

    مثال¶

    Options. Address¶

    آدرس مورد استفاده برای این نمونه قرارداد. کلیه معاملات حاصل از Web3. js از این قرارداد شامل این آدرس به عنوان "به" خواهد بود.

    آدرس در حروف کوچک ذخیره می شود.

    ویژگی¶

    آدرس - رشته | NULL: آدرس این قرارداد ، یا اگر هنوز تنظیم نشده است NULL.

    مثال¶

    options. jsoninterface¶

    شیء رابط JSON که از ABI این قرارداد گرفته شده است.

    ویژگی¶

    jsoninterface - آرایه: رابط JSON برای این قرارداد. تنظیم مجدد این امر باعث می شود روش ها و وقایع نمونه قرارداد بازسازی شود.

    مثال¶

    = روش = ¶

    شبیه¶

    کلون نمونه قرارداد فعلی.

    مولفه های¶

    بازگشت

    موضوع: نمونه قرارداد جدید.

    مثال¶

    استقرار

    برای استقرار قرارداد به blockchain با این عملکرد تماس بگیرید. پس از استقرار موفقیت آمیز ، این وعده با یک نمونه قرارداد جدید برطرف می شود.

    مولفه های¶

    1. گزینه ها - شی: گزینه های مورد استفاده برای استقرار.
      • داده ها - رشته: کد بایت قرارداد.
      • آرگومان - آرایه (اختیاری): آرگوارهایی که در هنگام استقرار به سازنده منتقل می شوند.

    بازگشت

    شی: موضوع معامله:

    • Array - Arguments: استدلالهایی که قبلاً به روش منتقل شده اند. آنها می توانند تغییر کنند.
    • عملکرد - ارسال: قرارداد را مستقر می کند. این قول به جای دریافت ، با نمونه قرارداد جدید حل می شود!
    • عملکرد - تخمین: گاز مورد استفاده برای استقرار را تخمین می زند.
    • عملکرد - EncodeABI: ABI استقرار را رمزگذاری می کند ، که داده های قرارداد + پارامترهای سازنده است

    مثال¶

    مواد و روش ها¶

    یک شیء معامله را برای آن روش ایجاد می کند ، که پس از آن می توان آن را رمزگذاری ، ارسال ، تخمین زده یا ABI نامید.

    روش های این قرارداد هوشمند از طریق موجود است:

    • نام: MyContract. methods. mymethod (123)
    • نام با پارامترها: MyContract. Methods ['MyMethod (uint256)'] (123)
    • امضا: MyContract. Methods ['0x58CF5F10'] (123)

    این اجازه می دهد تا توابع با نام مشابه اما پارامترهای مختلف از شیء قرارداد JavaScript.

    مولفه های¶

    پارامترهای هر روش به روشهای قراردادهای هوشمند ، تعریف شده در رابط JSON بستگی دارد.

    بازگشت

    شی: موضوع معامله:

    • Array - Arguments: استدلالهایی که قبلاً به روش منتقل شده اند. آنها می توانند تغییر کنند.
    • عملکرد - تماس: با روش "ثابت" تماس بگیرید و بدون ارسال معامله ، روش قرارداد هوشمند خود را در EVM اجرا کنید (نمی تواند حالت قرارداد هوشمند را تغییر دهد).
    • عملکرد - ارسال: معامله را به قرارداد هوشمند ارسال می کند و روش آن را اجرا می کند (می تواند حالت قرارداد هوشمند را تغییر دهد).
    • عملکرد - تخمین: گاز مورد استفاده را هنگام اجرای روش بر روی زنجیره تخمین می زند.
    • تابع - EncodeABI: ABI را برای این روش رمزگذاری می کند. این می تواند با استفاده از یک معامله ارسال شود ، با روش تماس بگیرید یا به عنوان آرگومان به روش دیگر قراردادهای هوشمند منتقل شوید.

    مثال¶

    methods. mymethod. call¶

    با یک روش "ثابت" تماس می گیرید و روش قرارداد هوشمند خود را در EVM بدون ارسال هرگونه معامله اجرا می کنید. توجه داشته باشید تماس نمی تواند وضعیت قرارداد هوشمند را تغییر دهد.

    مولفه های¶

    1. گزینه ها - شی (اختیاری): گزینه های مورد استفاده برای تماس.
      • از - رشته (اختیاری): آدرس تماس "معامله" باید از آن ساخته شود. برای تماس با ویژگی از ویژگی اختیاری است ، اما توصیه می شود که صریحاً آن را تنظیم کنید یا بسته به گره یا ارائه دهنده شما ممکن است به طور پیش فرض برای آدرس دهی (0) باشد.
      • GASPRICE - رشته (اختیاری): قیمت گاز در WEI برای استفاده از این تماس "معامله".
      • گاز - شماره (اختیاری): حداکثر گاز ارائه شده برای این تماس "معامله" (حد گاز).
    2. DefaultBlock - شماره | رشته | bn | bignumber (اختیاری): در صورت عبور از این پارامتر ، از بلوک پیش فرض تنظیم شده با Contract. defaultBlock استفاده نمی کند. شماره های بلوک از پیش تعریف شده به عنوان "اولین" ، "آخرین" و "در انتظار" نیز می توانند استفاده شوند. برای درخواست داده ها از یا پخش مجدد معاملات در بلوک های گذشته مفید است.
    3. پاسخ به تماس - عملکرد (اختیاری): این پاسخ به تماس با نتیجه اجرای روش Smart Contract به عنوان آرگومان دوم یا با یک شیء خطا به عنوان اولین آرگومان اخراج می شود.

    بازگشت

    Promise Retus Mixed: مقدار بازده (های) روش Smart Contract. اگر یک مقدار واحد را برگرداند ، همانطور که هست بازگردانده می شود. در صورت داشتن مقادیر بازگشت چندگانه ، آنها به عنوان یک شی با خصوصیات و شاخص ها بازگردانده می شوند:

    مثال¶

    methods. mymethod. send¶

    معامله را به قرارداد هوشمند ارسال می کند و روش آن را اجرا می کند. توجه داشته باشید که این می تواند وضعیت قرارداد هوشمند را تغییر دهد.

    مولفه های¶

    1. گزینه ها - شی: گزینه های مورد استفاده برای ارسال.
      • از - رشته: آدرس معامله باید از آن ارسال شود.
      • GASPRICE - رشته (اختیاری): قیمت گاز در WEI برای استفاده برای این معامله.
      • گاز - شماره (اختیاری): حداکثر گاز ارائه شده برای این معامله (حد گاز).
      • مقدار - `` شماره | رشته | bn | bignumber`` (اختیاری): مقدار منتقل شده برای معامله در وی.
    2. پاسخ به تماس - عملکرد (اختیاری): این پاسخ به تماس ابتدا با "TransactionHash" یا با یک شیء خطا به عنوان اولین آرگومان اخراج می شود.

    بازگشت

    پاسخ به تماس 32 هش معامله بایت را برمی گرداند.

    ارتقاء: یک رویداد ترکیبی از Emitter Pression. هنگامی که رسید معامله در دسترس است ، حل می کند ، یا اگر این ارسال () از someContract. deploy () فراخوانی شود ، وعده با نمونه قرارداد جدید حل می شود. علاوه بر این رویدادهای زیر در دسترس هستند:

    • ارسال بازده بازپرداخت: شی: بلافاصله قبل از انتقال درخواست معامله ، شلیک می شود.
    • ارسال شده بازپرداخت بار: شی: بلافاصله پس از ارسال بدنه درخواست به مشتری ، شلیک شد ، اما قبل از دریافت هش معامله.
    • "TransactionHash" TransactionHash را برمی گرداند: رشته: هنگامی که هش معامله در دسترس است ، اخراج شد.
    • "رسید" رسید بازگشت: شی: هنگامی که رسید معامله در دسترس است ، اخراج شد. رسیدهای مربوط به قراردادها هیچ ویژگی مربوط به سیاهه ها را نخواهد داشت ، اما در عوض یک ویژگی رویدادها با نام رویداد به عنوان کلیدها و رویدادها به عنوان خاصیت. برای جزئیات بیشتر در مورد شیء رویداد برگشتی ، مقادیر بازگشت GetPastevents را مشاهده کنید.
    • "تأیید" تأیید را برمی گرداند: شماره ، رسید: شی ، آخرین بلاکوک: رشته: برای هر تأیید تا 24 تأیید شده است.
    • "خطا" خطا را برمی گرداند: خطا: در صورت بروز خطا هنگام ارسال ، شلیک می شود. اگر معامله توسط شبکه با رسید رد شود ، رسید به عنوان یک ویژگی در شیء خطا در دسترس خواهد بود.

    مثال¶

    Methods. Mymethod. EstimateGas¶

    برای تخمین گاز یک روش در هنگام اجرای در EVM فراخوانی می شود. تخمین می تواند با گاز واقعی مورد استفاده در هنگام ارسال معامله متفاوت باشد ، زیرا وضعیت قرارداد هوشمند در آن زمان می تواند متفاوت باشد.

    مولفه های¶

    1. گزینه ها - شی (اختیاری): گزینه های مورد استفاده برای تماس.
      • از - رشته (اختیاری): آدرس تماس "معامله" باید از آن ساخته شود.
      • گاز - شماره (اختیاری): حداکثر گاز ارائه شده برای این تماس "معامله" (حد گاز). تعیین یک مقدار خاص به تشخیص خطاهای گاز کمک می کند. در صورت استفاده از تمام گاز ، همان تعداد را برمی گرداند.
      • مقدار - شماره | رشته | bn | bignumber (اختیاری): مقدار منتقل شده برای تماس "معامله" در وی.
    2. پاسخ به تماس - عملکرد (اختیاری): این پاسخ به تماس با نتیجه تخمین گاز به عنوان آرگومان دوم یا با یک شیء خطا به عنوان اولین آرگومان اخراج می شود.

    بازگشت

    شماره بازده وعده: مقدار گاز تخمین زده می شود.

    مثال¶

    methods. mymethod. encodeabi¶

    ABI را برای این روش رمزگذاری می کند. رشته HEX حاصل ، هش امضاء عملکرد 32 بیتی به علاوه پارامترهای منتقل شده در قالب محکم بسته بندی شده است. این می تواند برای ارسال معامله ، تماس با روش یا انتقال آن به روش قرارداد هوشمند دیگر به عنوان آرگومان استفاده شود. قسمت داده ها را در Web3. eth. SendTransaction به عنوان نتیجه EncodeABI () تنظیم کنید و همان است که با استفاده از روش قرارداد با Contract. mymethod. send () تماس بگیرید.

    برخی از موارد استفاده برای Encodeabi () عبارتند از: تهیه معامله قرارداد هوشمند برای یک کیف پول چند منظوره ، کار با کیف پول های آفلاین و ذخیره سازی سرد و ایجاد بار معامله برای تماس های پیچیده قرارداد هوشمند.

پلتفرم های تجاری...
ما را در سایت پلتفرم های تجاری دنبال می کنید

برچسب : نویسنده : مریم کاویانی بازدید : <-PostHit-> تاريخ : شنبه 7 مرداد 1402 ساعت: 13:51