بسته Web3-eth به شما امکان تعامل با بلاک چین اتریوم و قراردادهای هوشمند اتریوم را می دهد.
var Eth = require('web3-eth');
// "Eth.providers.givenProvider" will be set if in an Ethereum supported browser.
var eth = new Eth(Eth.givenProvider || 'ws://some.local-or-remote.node:8546');
// or using the web3 umbrella package
var Web3 = require('web3');
var web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8546');
// -> web3.eth
تمام آدرسهای اتریوم توسط توابع این بسته به عنوان آدرس checksum بازگردانده میشوند . این به این معنی است که برخی حروف بزرگ هستند و برخی از حروف کوچک هستند . براساس آن , مجموع checksum برای این آدرس را محاسبه کرده و درستی آن را اثبات میکند . آدرسهای نادرست checksum در هنگام عبور به توابع خطایی را نشان خواهند داد . اگر میخواهید مجموع checksum را کنترل کنید , میتوانید یک آدرس را با حروف کوچک یا بزرگ در نظر بگیرید .
web3.eth.getAccounts(console.log);
> ["0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe" ,"0x85F43D8a49eeB85d32Cf465507DD71d507100C1d"]
برای web3.eth.subscribe به مستندات مرجع subscribe مراجعه کنید.
برای web3.eth.Contract به مستندات مرجع Contract مراجعه کنید.
برای web3.eth.Iban به مستندات مرجع Iban مراجعه کنید.
برای web3.eth.personal به مستندات مرجع personal مراجعه کنید.
برای web3.eth.accounts به مستندات مرجع accounts مراجعه کنید.
برای web3.eth.ens به مستندات مرجع ENS مراجعه کنید.
برای web3.eth.abi به مستندات مرجع ABI مراجعه کنید.
برای web3.eth.net به مستندات مرجع net مراجعه کنید.
web3.setProvider(myProvider)
web3.eth.setProvider(myProvider)
...
ارائه دهنده ماژول خود را تغییر خواهد داد.
توجه
زمانی که بسته چتری web۳ فراخوانی می شود، ارائه دهنده را برای تمام ماژول های فرعی نیز تنظیم می کند.
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");
web3.providers
web3.eth.providers
...
ارائه دهندگان فعلی را در بر می گیرد.
شی با ارائه دهندگان زیر:
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 را می توانید در اینجا مشاهده کنید:
web3.givenProvider
web3.eth.givenProvider
...
هنگام استفاده از web۳.js در یک مرورگر سازگار با اتریوم ، با ارائه دهنده بومی فعلی توسط آن مرورگر تنظیم خواهد شد. ارائه دهنده داده را توسط مرورگر برمی گرداند، در غیر این صورت null است.
Object: ارائه دهنده تنظیم شده است یا null است.
web3.currentProvider
web3.eth.currentProvider
...
ارائه دهنده فعلی را برمی گرداند، در غیر این صورت null است.
Object: ارائه دهنده فعلی تنظیم شده است یا null است.
new web3.BatchRequest()
new web3.eth.BatchRequest()
کلاسی برای ایجاد و اجرای درخواست های دسته ای.
none
Object: با روش های زیر:
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();
web3.extend(methods)
web3.eth.extend(methods)
...
امکان گسترش ماژول های وب۳.
توجه
همچنین *.extend.formatters به عنوان توابع قالب بندی اضافی برای قالب بندی ورودی و خروجی استفاده می شوند.لطفا فایل منبع را برای جزئیات تابع ببینید.
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 {...},
...
}
web3.eth.defaultAccount
این آدرس پیشفرض بهعنوان ویژگی پیشفرض «from» استفاده میشود، در صورتی که برای روشهای زیر ویژگی «from» مشخص نشده باشد:
String – 20 Bytes: هرگونه آدرس اتریوم. شما باید کلید خصوصی مربوط به آن آدرس را در نود یا keystore کلید خود داشته باشید. (به صورت پیشقرض undefined)
web3.eth.defaultAccount;
> undefined
// set the default account
web3.eth.defaultAccount = '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe';
web3.eth.defaultBlock
بلوک پیش فرض برای روش های خاصی استفاده می شود. شما می توانید با عبور از بلوک پیش فرض به عنوان آخرین پارامتر، آن را نادیده بگیرید. مقدار پیش فرض “latest” است.
پارامترهای بلوک پیش فرض می توانند یکی از موارد زیر باشند:
بصورت پیشفرض “latest”
web3.eth.defaultBlock;
> "latest"
// set the default block
web3.eth.defaultBlock = 231;
web3.eth.defaultHardfork
ویژگی پیش فرض هاردفورک برای امضای محلی تراکنش ها استفاده می شود.
ویژگی هاردفورک پیش فرض می تواند یکی از موارد زیر باشد:
به صورت پیشفرض "petersburg"
web3.eth.defaultHardfork;
> "petersburg"
// set the default block
web3.eth.defaultHardfork = 'istanbul';
کليه حقوق آموزش های اين سایت متعلق به وایت وال می باشد و هر گونه کپی برداری از محتوا این وبسایت غیر مجاز و می باشد.