以太坊智能合约开发,Web3.jsAPI中⽂⽂档ethereumweb3.js⼊
javascript说明
门说明
以太坊智能合约开发,Web3.js API 中⽂⽂档 ethereum web3.js⼊门说明
为了让你的Ðapp运⾏上以太坊,⼀种选择是使⽤提供的web3。对象。底层实现上,它通过与本地节点通信。web3.js可以与任何暴露了RPC 接⼝的以太坊节点连接。
web3中有eth对象 - h具体来表⽰与以太坊区块链之间的交互。shh对象 - web3.shh表⽰Whisper协议的相关交互。后续我们会继续介绍其它⼀些web3协议中的对象。可⽤的
如果你想⼀些更复杂的⽰例,可以看看这⾥.
GitHub - ethereum/web3.js at master
⼊门
添加web3
⾸先你需要将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 (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
} else {
// set the provider you want from Web3.providers
web3 = new Web3(new Web3.providers.HttpProvider("localhost:8545"));
}
成功引⼊后,你现在可以使⽤web3的相关了。
使⽤callback
由于这套API被设计来与本地的RPC结点交互,所有函数默认使⽤同步的HTTP的请求。
如果你想发起⼀个异步的请求。⼤多数函数允许传⼀个跟在参数列表后的可选的回调函数来⽀持异步。回调函数⽀持的风格。
if(!error)
console.log(result)
else
<(error);
})
批量请求
可以允许将多个请求放⼊队列,并⼀次执⾏。
注意:批量请求并不会更快,在某些情况下,同时发起多个请求,由于是异步的,会变得更快。但这⾥的批量请求主要⽬的是⽤来保证请求的串⾏执⾏。
关于web3.js中的Big Number的说明
数据类型的返回结果,你将始终会得到⼀个BigNumber对象,因为Javascript不能正确的处理BigNumber,如下⾯的例⼦:
"101010100324325345346456456456456456456"
// "101010100324325345346456456456456456456"
101010100324325345346456456456456456456
// 1.0101010032432535e+38
所以web3.js依赖,且会⾃动进⾏引⼊。
var balance = new BigNumber('131242344353464564564574574567456');
// or var balance = Balance(someAddress);
balance.plus(21).toString(10); // toString(10) converts it to a number string
// "131242344353464564564574574567477"
下⼀个例⼦中,我们会看到,如果有20位以上的浮点值,仍会导致出错。所以,我们推荐尽量让帐户余额以wei为单位,仅仅在需要向⽤户展⽰时,才转换为其它单位。
var balance = new BigNumber('13124.234435346456466666457455567456');
balance.plus(21).toString(10); // toString(10) converts it to a number string, but can only show max 20 floating points
// "13145.23443534645646666646" // you number would be cut after the 20 floating point
1. Big Number ⽂档链接:
---------------
官⽅⽹站:
Web3.js API 中⽂⽂档

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。