آموزش Web3

دانلود Web3.js

Web3

این کلاس اصلی ( یا چتر ) کتابخانه web۳.js است .

var Web3 = require('web3');

> Web3.utils
> Web3.version
> Web3.givenProvider
> Web3.providers
> Web3.modules

Web3.modules

Web3.modules

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

Returns

Object: فهرستی از سازنده های ماژول:

  • Eth
    Constructor
    : ماژول Eth برای تعامل با شبکه اتریوم web3.eth.
  • Net
    Constructor
    : ماژول Net برای تعامل با ویژگی های شبکه.
  • Personal
    Constructor
    : ماژول شخصی برای تعامل با حساب های اتریوم (web3.eth.personal).

مثال

Web3.modules
> {
    Eth: Eth(provider),
    Net: Net(provider),
    Personal: Personal(provider),
}

Web3 Instance

کلاس Web۳ یک بسته چتری برای قرار دادن تمام ماژول های مرتبط با اتریوم است.

var Web3 = require('web3');

// "Web3.providers.givenProvider" will be set if in an Ethereum supported browser.
var web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8546');

> web3.eth
> web3.utils
> web3.version

version

ویژگی قابل دسترس استاتیک از کلاس Web3.

Web3.version
web3.version

این محصول شامل نسخه فعلی کتابخانه web3.js است.

Returns

String: نسخه فعلی.

مثال

web3.version;
> "1.2.3"

utils

ویژگی قابل دسترس استاتیک از کلاس Web3.

Web3.utils
web3.utils

توابع کمکی نیز به طور مستقیم بر روی شی کلاس Web۳ نمایش داده می شوند.

برای اطلاعات بیشتر به web3.utils مراجعه کنید.

setProvider

web3.setProvider(myProvider)
web3.eth.setProvider(myProvider)
...

ارائه دهنده ماژول خود را تغییر خواهد داد.

توجه

زمانی که بسته چتری web۳ فراخوانی می شود، ارائه دهنده را برای تمام ماژول های فرعی نیز تنظیم می کند.

Parameters

  1. Object
    myProvider
    : یک ارائه دهنده معتبر.

Returns

Boolean

مثال : گره مجازی محلی

var Web3 = require('web3');
var web3 = new Web3('http://localhost:8545');
// or
var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));

// change provider
web3.setProvider('ws://localhost:8546');
// or
web3.setProvider(new Web3.providers.WebsocketProvider('ws://localhost:8546'));

// Using the IPC provider in node.js
var net = require('net');
var web3 = new Web3('/Users/myuser/Library/Ethereum/geth.ipc', net); // mac os path
// or
var web3 = new Web3(new Web3.providers.IpcProvider('/Users/myuser/Library/Ethereum/geth.ipc', net)); // mac os path
// on windows the path is: "\\\\.\\pipe\\geth.ipc"
// on linux the path is: "/users/myuser/.ethereum/geth.ipc"

مثال : ارائه دهنده گره از راه دور

// Using a remote node provider, like Alchemy (https://www.alchemyapi.io/supernode), is simple.
var Web3 = require('web3');
var web3 = new Web3("https://eth-mainnet.alchemyapi.io/v2/your-api-key");

providers

web3.providers
web3.eth.providers
...

این محصول شامل ارائه دهندگان موجودفعلیمی‌شود.

Value

Object با ارائه کنندگان زیر :

  • Object
    HttpProvider
    : سرویس دهنده HTTP منسوخ شده‌است, در حالی که برای اشتراک کار نمی‌کند.
  • Object
    WebsocketProvider
    : ارائه دهنده Websocket استانداردی برای استفاده در مرورگرهای قدیمی است.
  • Object
    IpcProvider
    : ارائه دهنده IPC هنگام اجرای یک گره محلی از nodejs dapps استفاده می کند. امن ترین اتصال را ارائه می دهد.

مثال

var Web3 = require('web3');
// use the given Provider, e.g in Mist, or instantiate a new websocket provider
var web3 = new Web3(Web3.givenProvider || 'ws://remotenode.com:8546');
// or
var web3 = new Web3(Web3.givenProvider || new Web3.providers.WebsocketProvider('ws://remotenode.com:8546'));

// Using the IPC provider in node.js
var net = require('net');

var web3 = new Web3('/Users/myuser/Library/Ethereum/geth.ipc', net); // mac os path
// or
var web3 = new Web3(new Web3.providers.IpcProvider('/Users/myuser/Library/Ethereum/geth.ipc', net)); // mac os path
// on windows the path is: "\\\\.\\pipe\\geth.ipc"
// on linux the path is: "/users/myuser/.ethereum/geth.ipc"

پیکربندی

// ====
// Http
// ====

var Web3HttpProvider = require('web3-providers-http');

var options = {
    keepAlive: true,
    withCredentials: false,
    timeout: 20000, // ms
    headers: [
        {
            name: 'Access-Control-Allow-Origin',
            value: '*'
        },
        {
            ...
        }
    ],
    agent: {
        http: http.Agent(...),
        baseUrl: ''
    }
};

var provider = new Web3HttpProvider('http://localhost:8545', options);

// ==========
// Websockets
// ==========

var Web3WsProvider = require('web3-providers-ws');

var options = {
    timeout: 30000, // ms

    // Useful for credentialed urls, e.g: ws://username:password@localhost:8546
    headers: {
      authorization: 'Basic username:password'
    },

    clientConfig: {
      // Useful if requests are large
      maxReceivedFrameSize: 100000000,   // bytes - default: 1MiB
      maxReceivedMessageSize: 100000000, // bytes - default: 8MiB

      // Useful to keep a connection alive
      keepalive: true,
      keepaliveInterval: 60000 // ms
    },

    // Enable auto reconnection
    reconnect: {
        auto: true,
        delay: 5000, // ms
        maxAttempts: 5,
        onTimeout: false
    }
};

var ws = new Web3WsProvider('ws://localhost:8546', options);

اطلاعات بیشتر در مورد ماژول های ارائه دهنده Http و Websocket را می توانید در اینجا مشاهده کنید:

  • HttpProvider
  • WebsocketProvider

givenProvider

web3.givenProvider
web3.eth.givenProvider
...

هنگام استفاده از web3.js در یک مرورگر سازگار با اتریوم، با ارائه دهنده فعلی بومی توسط آن مرورگر تنظیم می شود. ارائه‌دهنده داده‌شده را توسط محیط (مرورگر) برمی‌گرداند، در غیر این صورت تهی یا null است.

Returns

Object: ارائه دهنده داده شده مجموعه یا تهی است.

currentProvider

web3.currentProvider
web3.eth.currentProvider
...

ارائه دهنده فعلی را برمی گرداند، در غیر این صورت صفر است.

Returns

Object: ارائه دهنده فعلی مجموعه یا تهی است.

مثال

BatchRequest

new web3.BatchRequest()
new web3.eth.BatchRequest()

کلاس برای ایجاد و اجرای درخواست‌های گروهی.

Parameters

none

Returns

Object: با روش های زیر:

  • add(request): برای اضافه کردن یک شی درخواست به فراخوانی دسته‌ای.
  • execute(): اجرای درخواست دسته ای .

مثال

var contract = new web3.eth.Contract(abi, address);

var batch = new web3.BatchRequest();
batch.add(web3.eth.getBalance.request('0x0000000000000000000000000000000000000000', 'latest', callback));
batch.add(contract.methods.balance(address).call.request({from: '0x0000000000000000000000000000000000000000'}, callback2));
batch.execute();

extend

web3.extend(methods)
web3.eth.extend(methods)
...

امکان گسترش ماژول های web3 را فراهم می‌کند.

توجه

شما همچنین از *.extend.formatters به عنوان توابع formatter اضافی برای استفاده برای قالب‌بندی ورودی و خروجی استفاده می‌کنید. لطفاً فایل منبع را برای جزییات تابع ببینید.

Parameters

  1. methods
    Object
    : ضمیمه کردن شی با آرایه ای از متدها اشیا را به صورت زیر توصیف می کند :
    • property
      String
      : (اختیاری) نام ویژگی که باید به ماژول اضافه شود. اگر هیچ خاصیتی تنظیم نشده باشد، مستقیما به ماژول اضافه خواهد شد.
    • methods
      Array
      : مجموعه ای از توضیحات روش :
      • name
        String
        : نام روش اضافه کردن .
      • call
        String
        : نام روش RPC.
      • params
        Number
        : (اختیاری) تعداد پارامترهای این تابع. پیشفرض 0.
      • inputFormatter
        Array
        : (اختیاری) آرایه توابع inputFormatter. هر آیتم آرایه به یک پارامتر تابع پاسخ می دهد، بنابراین اگر می خواهید برخی پارامترها قالب بندی نشوند، به جای آن یک صفر اضافه کنید.
      • outputFormatter – “Function
        : (اختیاری) می‌تواند برای فرمت کردن خروجی روش مورد استفاده قرار گیرد.

Returns

Object: ماژول توسعه یافته.

مثال

web3.extend({
    property: 'myModule',
    methods: [{
        name: 'getBalance',
        call: 'eth_getBalance',
        params: 2,
        inputFormatter: [web3.extend.formatters.inputAddressFormatter, web3.extend.formatters.inputDefaultBlockNumberFormatter],
        outputFormatter: web3.utils.hexToNumberString
    },{
        name: 'getGasPriceSuperFunction',
        call: 'eth_gasPriceSuper',
        params: 2,
        inputFormatter: [null, web3.utils.numberToHex]
    }]
});

web3.extend({
    methods: [{
        name: 'directCall',
        call: 'eth_callForFun',
    }]
});

console.log(web3);
> Web3 {
    myModule: {
        getBalance: function(){},
        getGasPriceSuperFunction: function(){}
    },
    directCall: function(){},
    eth: Eth {...},
    ...
}
4.6/5 - (17 امتیاز)
آموزش 0 تا 100 web3.js