Web3 的模块们
– 看文档: https://web3js.readthedocs.io/en/1.0/web3.html
– 可以发现, Web3JS 分成了 web3 整体模块, web3.eth, web3.eth.subscribe
链接与快速开始
demo.js
1 | const Web3 = require('web3'); |
Web3
.version
返回当前版本
.modules
返回可用的子模块类, 可以直接进行初始化成对象, Eth, Net, Personal, Shh, Bzz.
例如: const eth = web3.modules.Eth(provider)
.utils
工具类
.setProvider(provider)
方法将给所有 modules 提供 provider 连接器.
.providers
获取当前可用的 providers, 可以是 http, ws, ipc…
.givenProvider
获取浏览器内置连接器(可用使用 MetaMask 进行设置)
.currentProvider
获取当前使用的 provider 或者 null
1 | const br = new web3.BatchRequest(); |
.extend(methods)
继承某些方法, 返回新的对象.
web3.eth
与区块链和智能合约进行交互的方法集.
其中 setProvider, providers, giventProvider, currentProvider, BatchRequest, extend 与 web3 相同.
包含子模块
- subscribe: 订阅指定事件
- Contract: 基于 abi 和部署地址获取合约实例
- lban: 交易地址格式基于 IBAN 和 BBAN 互转
- personal: 操作节点的账户
- accounts: 生成账户和给交易签名
- abi: 加密合约的方法签名, 事件签名, 方法调用; 加解密参数; 解密日志.
- net: 网络状况
web3.bzz
与区块链的 swarm 分布式文件仓库进行交互, 目前非稳定版本, 可能随时间有变化.
不会使用基于外部 web3 进行 setProvider 设置的链接, 必须使用时进行单独设置.
setProvider, giventProvider, currentProvider 与 web3 相同.
web3.shh
与区块链 whisper 协议交互, 用于消息广播.
其中 setProvider, providers, giventProvider, currentProvider, BatchRequest, extend 与 web3 相同.
web3.utils
内置的静态常用方法.