扫一扫分享
web3.js 是一个JavaScript api库。要使 DApp 在以太坊上运行,我们可以使用web3.js库提供的web3对象。web3.js 通过RPC调用与本地节点通信,它可以用于任何暴露了RPC层的以太坊节点。web3 包含 eth 对象 - web3.eth(专门与以太坊区块链交互)和 shh 对象 - web3.shh(用于与 Whisper 交互)
将 web3 引入到你的工程中,其实跟我们现有的引用方式基本一致:
npm:
npm install web3
bower:
bower install web3
metor:
meteor add ethereum:web3
vanilla:
dist./web3.min.js
然后你需要创建一个web3的实例,设置一个provider。为了保证你不会覆盖一个已有的provider,比如使用Mist时有内置,需要先检查是否web3实例已存在
if (!web3) {
web3 = new Web3(web3.currentProvider);
} else {
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
由于这套API被设计来与本地的RPC结点交互,所有函数默认使用同步的HTTP的请求。如果你想发起一个异步的请求。大多数函数允许传一个跟在参数列表后的可选的回调函数来支持异步
web3.eth.getBlock(48, function(error, result){
if(!error)
console.log(result)
else
console.error(error);
})
我们支持 repo 本身的类型。如果您发现任何错误的类型,请在这里打开一个问题。您可以web3.js按如下方式使用:
import Web3 from 'web3';
import { BlockHeader, Block } from 'web3-eth' // ex. package types
const web3 = new Web3('ws://localhost:8546');
如果你在commonjs模块中使用类型,比如在 Node 应用程序中,你只需要在你的类型系统兼容性中启用esModuleInterop和:allowSyntheticDefaultImportstsconfig
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
....
手机预览