web3.js 中文文档 Web3

web3.js 中文文档

v1.3.4

Web3

这篇讲的是web3.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与网络属性交互的网络模块( web3.eth.net).
  • Personal-Constructor:与以太坊帐户交互的个人模块( web3.eth.personal ).
  • Shh-Constructor:与whisper协议交互的Shh模块( web3.shh ).
  • Bzz-Constructor与swarm交互的网络模块( web3.bzz ).
举例:
Web3.modules
> {
    Eth: Eth(provider),
    Net: Net(provider),
    Personal: Personal(provider),
    Shh: Shh(provider),
    Bzz: Bzz(provider),
}

Web3实例(Instance)

Web3类是一个包含所有以太坊相关模块的伞形包。

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.shh
web3.bzz
web3.utils
web3.version
版本
Web3类的静态可访问属性以及实例的属性。

Web3.version
web3.version
包含web3.js库的当前包版本。

退换商品
String:当前版本

例子
web3.version;

“1.2.3”
效用
Web3类的静态可访问属性以及实例的属性。

Web3.utils
web3.utils
实用程序函数也公开在Web3直接类对象

看到了吗 网站3.util更多

设置提供程序
web3.setProvider(myProvider)
web3.eth.setProvider(myProvider)
web3.shh.setProvider(myProvider)
web3.bzz.setProvider(myProvider)

将更改其模块的提供程序。

注意

当被要求提供雨伞包裹时web3它还将为所有子模块设置提供程序 网络3.eth ,web3.shh等等,除了 网站3.bzz它需要一个单独的提供者。

参数
Object - 我的提供者 :有效的提供者 .
退换商品
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”
供应商
web3.providers
web3.eth.providers
web3.shh.providers
web3.bzz.providers

包含当前可用的供应商 .

价值
Object与以下提供商:

Object -HTTP提供程序:HTTP提供程序是已弃用,因为它对订阅无效
Object - WebsocketProvider:Websocket提供程序是旧版浏览器中使用的标准。
Object - IpcProvider公司:运行本地节点时使用node.js 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提供程序模块的更多信息,请访问:

HTTP提供程序
WebsocketProvider
提供程序
web3.givenProvider
web3.eth.givenProvider
web3.shh.givenProvider
web3.bzz.givenProvider

在与以太坊兼容的浏览器中使用web3.js时,它将通过该浏览器设置为当前本机提供程序。将通过(浏览器)环境返回给定的提供程序,否则null .

退换商品
Object:给定的提供程序集或无效的 ;

例子
供应商
web3.currentProvider
web3.eth.currentProvider
web3.shh.currentProvider
web3.bzz.currentProvider

将返回当前提供程序,否则null .

退换商品
Object:当前提供程序集或无效的 .

例子

new web3.BatchRequest()
new web3.eth.BatchRequest()
new web3.shh.BatchRequest()
new web3.bzz.BatchRequest()
类来创建和执行批处理请求。

参数
没有人

退换商品
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();
延伸
web3.extend(methods)
web3.eth.extend(methods)
web3.shh.extend(methods)
web3.bzz.extend(methods)

允许扩展web3模块。

注意

你也有*.extend.formatters作为用于输入和输出格式化的附加格式化程序函数。请看源文件功能详细信息

参数
methods -对象:包含方法数组的扩展对象描述对象如下:
property -字符串:(可选)要添加到模块中的属性的名称。如果没有设置任何属性,它将直接添加到模块中。
methods -阵列:方法描述的数组:
name -字符串:要添加的方法的名称。
call -字符串:RPC方法名称
params -数量:(可选)该函数的参数数。默认值为0。
inputFormatter -阵列:(可选)inputformatter函数数组。每个数组项都响应一个函数参数,因此如果不希望某些参数格式化,请添加一个null相反
outputFormatter - ``Function:(可选)可用于格式化方法的输出。
退换商品
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 {…},
bzz: Bzz {…},

}

上一篇:MXC抹茶:杠杆通证如何调仓?价格如何变化?


下一篇:Windows 7 搭建前端(JavaScript)开发环境