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 {…},
…
}
标签:web3,providers,js,Web3,var,new,eth 来源: https://blog.csdn.net/weixin_46020624/article/details/114576556