以太坊系列 - Web3.js
Posted 搬砖魁首
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以太坊系列 - Web3.js相关的知识,希望对你有一定的参考价值。
Web3.js
web3.js是一组用来和本地或远程以太坊节点进行交互的js库,它可以使用HTTP或IPC建立与以太坊节点旳连接。
底层实现上,它通过RPC 调用与本地或远程节点通信。web3.js可以与任何暴露了RPC接口的以太坊节点连接。
Installation
npm install web3
Usage
// In Node.js
const Web3 = require('web3');
let web3 = new Web3('ws://localhost:8546');
console.log(web3);
> {
eth: ... ,
shh: ... ,
utils: ...,
...
}
0.20.X 与 1.X 版本的区别
这是 web3.js主要的两类版本
- 用
truffle migrate
或truffle test
时会用操作系统安装的web3js版本,可以用truffle verson
查看 - nodejs会使用package.json中指定的web3js版本号
1.x 版本的变动
if ('utils' in web3)
可用此判断web3j的版本web3.sha3
被web3.utils.sha3
取代- 要哈希的数据在调用web3.utils.sha3 前需要先判空:
if (!input || !input.length) { return; }
- 要哈希的数据在调用web3.utils.sha3 前需要先判空:
web3.eth.accounts
is deprecated. Useweb3.eth.getAccounts()
insteadweb3.fromWei
被web3.utils.fromWei
取代web3.toWei
被web3.utils.toWei
取代watch
不再支持.myContract.EventName([params]).watch([callback])
被myContract.EventName([params],[callback])
取代
- The HTTP provider is deprecated, as it won’t work for subscriptions.得改用websocket
- truffle-config.js中
websockets: true
- HttpProvider 被 WebsocketProvider 取代, 端口号不用变
- network_local.json 中的 rpcUrl 配置成
ws://127.0.0.1:9545
- truffle-config.js中
老的项目想通过编译
# package.json中配置
"web3": "^0.20.0",
# npm时
npm install --force
以上是关于以太坊系列 - Web3.js的主要内容,如果未能解决你的问题,请参考以下文章