• تهران -خیابان شریعتی - بالاتر از سه راه ملک - روبروی آتش نشانی - آرتارسانه
  • تلفن تماس: 02191303424

آموزش کتابخانه web3.js

آموزش کتابخانه web3.js

کتابخانه web3.js مجموعه‌ای از ماژول‌هایی است که دارای عملکردی برای اکوسیستم اتریوم است.

web3-eth برای بلاک چین اتریوم و قراردادهای هوشمند است.
web3-shh برای پروتکل whisper برای برقراری ارتباط p2p و پخش است.
web3-bzz برای پروتکل swarm، ذخیره سازی غیرمتمرکز فایل است.
web3-utils شامل توابع کمکی مفیدی برای توسعه دهندگان Dapp است.


اضافه کردن web3.js


ابتدا باید web3.js را وارد پروژه خود کنید. این را می توان با استفاده از روش های زیر انجام داد:

npm: npm install web3
yarn: yarn add web3

dist/web3.min.js را وارد پروژه کنید.

پس از آن باید یک نمونه web3 ایجاد کنید و یک ارائه دهنده تنظیم کنید.

اکثر مرورگرهای پشتیبانی شده از اتریوم مانند MetaMask دارای ارائه دهنده سازگار با EIP-1193 در window.ethereum هستند.

با دستور Web3.givenProvider میتوانید به web3  متصل شوید.

اگر این ویژگی خالی است، باید به یک گره راه دور/محلی متصل شوید.

اکنون می توانید از آبجکت web3 استفاده کنید.

Callbacks Promises Events

برای کمک به وب 3 برای ادغام در انواع پروژه‌ها با استانداردهای مختلف، راه‌های متعددی برای عمل بر روی توابع ناهمزمان ارائه می‌کنیم.

اکثر اشیاء web3.js به عنوان آخرین پارامتر و همچنین بازگرداندن promise به توابع زنجیره‌ای اجازه callback را می‌دهند.

اتریوم به عنوان یک بلاک چین سطوح مختلفی از نهایی بودن دارد و بنابراین باید چندین «مرحله» از یک اقدام را برگرداند. برای مقابله با این نیاز، یک “promiEvent” را برای توابعی مانند web3.eth.sendTransaction یا روش های قرارداد برمی گردانیم. این «promiEvent» تابعی است که با یک انتشار دهنده رویداد ترکیب شده است تا امکان اقدام در مراحل مختلف عملکرد در بلاک چین، مانند یک تراکنش را فراهم کند.

PromiEvents مانند یک وعده معمولی با توابع اضافه شده، یکبار و خاموش کار می کند. به این ترتیب توسعه دهندگان می توانند رویدادهای اضافی مانند “دریافت” یا “transactionHash” را ببینند.

json interface

مشخصات فنی

رابط json یک شی json است که رابط باینری برنامه (ABI) را برای یک قرارداد هوشمند اتریوم توصیف می کند.

با استفاده از این رابط json web3.js قادر به ایجاد شی جاوا اسکریپت هستیم که نشان دهنده قرارداد هوشمند و روش ها و رویدادهای آن با استفاده از شی web3.eth.Contract است.

توابع

type"function""constructor" (can be omitted, defaulting to "function""fallback" also possible but not relevant in web3.js);

name: the name of the function (only present for function types);

constanttrue if function is specified to not modify the blockchain state;

payabletrue if function accepts ether, defaults to false;

stateMutability: a string with one of the following values: pure (specified to not read blockchain state), view (same as constant above), nonpayable and payable (same as payable above);

inputs: an array of objects, each of which contains:

name: the name of the parameter;

type: the canonical type of the parameter.

outputs: an array of objects same as inputs, can be omitted if no outputs exist.

رویداد

type: always "event"

name: the name of the event;

inputs: an array of objects, each of which contains:

name: the name of the parameter;

type: the canonical type of the parameter.

indexedtrue if the field is part of the log’s topics, false if it one of the log’s data segment.

anonymoustrue if the event was declared as anonymous.

API REFERENCE

Web3.modules

یک شی را با کلاس‌های همه ماژول‌های فرعی اصلی برمی‌گرداند تا بتوان آنها را به صورت دستی نمونه‌سازی کرد.

Eth – Constructor: The Eth module for interacting with the Ethereum network (web3.eth).

Net – Constructor: The Net module for interacting with network properties (web3.eth.net).

Personal – Constructor: The Personal module for interacting with the Ethereum accounts (web3.eth.personal).

Shh – Constructor: The Shh module for interacting with the whisper protocol (web3.shh).

Bzz – Constructor: The Bzz module for interacting with the swarm network (web3.bzz).

 

Web3 Instance

کلاس Web3 یک بسته است که همه ماژول های مرتبط با اتریوم را در خود جای می دهد.

version

ویژگی قابل دسترسی استاتیک کلاس Web3 و ویژگی نمونه.شامل نسخه بسته فعلی کتابخانه web3.js است. خروچی آن string  است که ورژن کنونی را برمیگرداند