1703877112
区块链项目开发指南 4.1.3 API结构
1703877113
1703877114
web3包含一个eth对象(web3.eth),专门用于以太坊区块链交互;还包含一个shh对象(web3.shh),用于whisper交互。web3.js的大部分API都在这两个对象中。
1703877115
1703877116
所有API都是默认同步的。如果想发出异步请求,可以把一个可选回调函数作为最后的参数传送给大多数函数。所有回调函数都采用错误优先(error-first)回调方式。
1703877117
1703877118
一些API对于异步请求采用别名。例如web3.eth.coinbase()是同步的,web3.eth.getCoinbase()是异步的。示例如下:
1703877119
1703877120
1703877121
1703877122
1703877123
getBlock使用区块序号或者哈希值获取区块信息。或者,它可以使用一个字符串,例如”earliest”(创世区块)、“latest”(区块链最上面的区块)或者”pending”(正在挖的区块)。如果不传送实参,则默认是web3.eth.defaultBlock,默认分配”latest”。
1703877124
1703877125
所有需要区块身份证明作为输入的API可以用序号、哈希值或者一个可读字符串作为输入。如果值未通过,则这些API默认使用web3.eth.defaultBlock。
1703877126
1703877127
1703877128
1703877129
1703877131
区块链项目开发指南 4.1.4 BigNumber.js
1703877132
1703877133
JavaScript本质上对于正确处理大数字不在行。因此,需要处理大数字和进行完美计算的应用会使用BigNumber.js库。
1703877134
1703877135
web3.js还依赖于BigNumber.js,且自动进行加载。web3.js总是对序号值返回BigNumber对象。它可以用JavaScript数字、数字字符串和BigNumber实例作为输入,示例如下:
1703877136
1703877137
1703877138
1703877139
1703877140
这里使用web3.eth.getBalance()方法获取地址余额,该方法返回一个BigNumber对象。需要在BigNumber对象上调用toString(),把它转换成数字字符串。
1703877141
1703877142
BigNumber.js不能正确处理有超过20个浮点数位的大数字,因此推荐以wei为单位存储余额,在显示时再转换成其他单位。web3.js自身总是以wei为单位返回和调取余额。例如,getBalance()方法以wei为单位返回该地址的余额。
1703877143
1703877144
1703877145
1703877146
1703877148
区块链项目开发指南 4.1.5 单位转换
1703877149
1703877150
web3.js提供了把wei余额转换成任何其他单位和把任何其他单位余额转换成wei的API。
1703877151
1703877152
web3.fromWei()方法用于将wei转换成其他单位,而web3.toWei()方法用于将以其他单位表示的数字转化成以wei为单位的数字。示例如下:
1703877153
1703877154
1703877155
1703877156
1703877157
第一行代码将wei转换为ether;第二行代码将ether转换为wei。方法中的第二个实参可以是以下字符串之一:
1703877158
1703877159
·kwei/ada
1703877160
[
上一页 ]
[ :1.703877111e+09 ]
[
下一页 ]