ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

web3.js 中文文档 Web3

2021-03-09 10:31:33  阅读:3622  来源: 互联网

标签:web3 providers js Web3 var new eth


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有