摘要:使用回調由于這套被設計來與本地的結點交互,所有函數(shù)默認使用同步的的請求。批量請求可以允許將多個請求放入隊列,并一次執(zhí)行。這里的批量請求主要目的是用來保證請求的串行執(zhí)行。列表本教程由登鏈學院翻譯,由深入淺出區(qū)塊鏈發(fā)布。
本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)
原文鏈接:Web3.js 0.20.x API 中文版翻譯原文已更新,請讀者前往原文閱讀
文檔原始鏈接為:https://web3.learnblockchain.cn/0.2x.x/,歡迎大家前往查閱,本文只是節(jié)選開頭部分的介紹及API列表索引,以下為翻譯正文:
為了開發(fā)一個基于以太坊的去中心化應用程序,可以使用web3.js庫提供的web3對象, 在底層實現(xiàn)上,web3通過RPC調用與本地節(jié)點通信, web3.js可以與任何暴露了RPC接口的以太坊節(jié)點連接。
web3 包含下面幾個對象:
web3.eth 用來與以太坊區(qū)塊鏈及合約的交互
web3.shh 用來與Whisper協(xié)議相關交互
web3.net 用來獲取網(wǎng)絡相關信息
web3 包含一些工具
web3使用示例:
官方示例
使用web3.js API在頁面中轉賬
多個API 使用Demo
Dapp 模式
想要學習去中心化應用(DAPP)開發(fā),這門課程不容錯過區(qū)塊鏈全棧-以太坊DAPP開發(fā)實戰(zhàn)
引入web3首先你需要將web3引入到應用工程中,可以通過如下幾個方法:
npm: npm install web3
bower: bower install web3
meteor: meteor add ethereum:web3
vanilla: link the dist./web3.min.js
然后你需要創(chuàng)建一個web3的實例,設置一個provider。為了保證你不會覆蓋一個已有的provider(Mist瀏覽器或安裝了MetaMak的瀏覽器會提供Provider),需要先檢查是否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("http://localhost:8545")); }
成功引入后,你現(xiàn)在可以使用web3對象的API了。
使用回調由于這套API被設計來與本地的RPC結點交互,所有函數(shù)默認使用同步的HTTP的請求。
如果你想發(fā)起一個異步的請求。大多數(shù)函數(shù)允許傳一個跟在參數(shù)列表后的可選的回調函數(shù)來支持異步,回調函數(shù)支持Error-first回調的風格。
web3.eth.getBlock(48, function(error, result){ if(!error) console.log(JSON.stringify(result)); else console.error(error); })批量請求
可以允許將多個請求放入隊列,并一次執(zhí)行。
注意:批量請求并不會更快,在某些情況下,同時發(fā)起多個異步請求,也許更快。這里的批量請求主要目的是用來保證請求的串行執(zhí)行。
var batch = web3.createBatch(); batch.add(https://web3.learnblockchain.cn/0.2x.x/web3.eth.getBalance.request("0x0000000000000000000000000000000000000000", "latest", callback)); batch.add(https://web3.learnblockchain.cn/0.2x.x/web3.eth.contract(abi).at(address).balance.request(address, callback2)); batch.execute();web3.js中的大數(shù)處理
如果是一個數(shù)據(jù)類型的返回結果,通常會得到一個BigNumber對象,因為Javascript不能正確的處理BigNumber,看看下面的例子:
"101010100324325345346456456456456456456" // "101010100324325345346456456456456456456" 101010100324325345346456456456456456456 // 1.0101010032432535e+38
所以web3.js依賴BigNumber Library,且已經自動引入。
var balance = new BigNumber("131242344353464564564574574567456"); // or var balance = web3.eth.getBalance(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 upto 20 digits // "13145.23443534645646666646" // your number will be truncated after the 20th digitWeb3.js API列表 web3
web3.version.api
web3.version.node
web3.version.network
web3.version.ethereum
web3.version.whisper
web3.isConnected
web3.setProvider
web3.currentProvider
web3.reset
web3.sha3
web3.toHex
web3.toAscii
web3.fromAscii
web3.toDecimal
web3.fromDecimal
web3.fromWei
web3.toWei
web3.toBigNumber
web3.isAddress
web3.netweb3.net.listening
web3.net.peerCount
web3.ethweb3.eth.defaultAccount
web3.eth.defaultBlock
web3.eth.syncing
web3.eth.isSyncing
web3.eth.coinbase
web3.eth.mining
web3.eth.hashrate
web3.eth.gasPrice
web3.eth.accounts
web3.eth.blockNumber
web3.eth.register
web3.eth.unRegister
web3.eth.getBalance
web3.eth.getStorageAt
web3.eth.getCode
web3.eth.getBlock
web3.eth.getBlockTransactionCount
web3.eth.getUncle
web3.eth.getTransaction
web3.eth.getTransactionFromBlock
web3.eth.getTransactionReceipt
web3.eth.getTransactionCount
web3.eth.sendTransaction
web3.eth.sendRawTransaction
web3.eth.sign
web3.eth.call
web3.eth.estimateGas
web3.eth.filter
web3.eth.contract
Contract Methods
Contract Events
Contract allEvents
web3.eth.getCompilers
web3.eth.compile.solidity
web3.eth.compile.lll
web3.eth.compile.serpent
web3.eth.namereg
web3.eth.sendIBANTransaction
web3.eth.iban
web3.eth.iban.fromAddress
web3.eth.iban.fromBban
web3.eth.iban.createIndirect
web3.eth.iban.isValid
web3.eth.iban.isDirect
web3.eth.iban.isIndirect
web3.eth.iban.checksum
web3.eth.iban.institution
web3.eth.iban.client
web3.eth.iban.address
web3.eth.iban.toString
web3.dbweb3.db.putString
web3.db.getString
web3.db.putHex
web3.db.getHex
web3.shhweb3.shh.post
web3.shh.newIdentity
web3.shh.hasIdentity
web3.shh.newGroup
web3.shh.addToGroup
web3.shh.filter
本教程由登鏈學院翻譯,由深入淺出區(qū)塊鏈發(fā)布。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97509.html
摘要:使用回調由于這套被設計來與本地的結點交互,所有函數(shù)默認使用同步的的請求。批量請求可以允許將多個請求放入隊列,并一次執(zhí)行。這里的批量請求主要目的是用來保證請求的串行執(zhí)行。列表本教程由登鏈學院翻譯,由深入淺出區(qū)塊鏈發(fā)布。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:Web3.js 0.20.x API 中文版翻譯原文已更新,請讀者前往原文閱讀 文檔原始鏈接為:https://web3.learn...
摘要:這些天,為了錄制以太坊開發(fā)實戰(zhàn)課程,我準備把文檔全部翻譯一下并做適當?shù)难a充,目前版本已經翻譯完成,歡迎大家前往查閱。 這些天,為了錄制以太坊DAPP開發(fā)實戰(zhàn)課程,我準備把web3文檔全部翻譯一下(并做適當?shù)难a充),目前web3.js 0.20.x 版本 已經翻譯完成,歡迎大家前往查閱。 這里還幾個實用DEMO,供大家參考: 使用web3.js API在頁面中轉賬 web3.js 0....
摘要:這些天,為了錄制以太坊開發(fā)實戰(zhàn)課程,我準備把文檔全部翻譯一下并做適當?shù)难a充,目前版本已經翻譯完成,歡迎大家前往查閱。 這些天,為了錄制以太坊DAPP開發(fā)實戰(zhàn)課程,我準備把web3文檔全部翻譯一下(并做適當?shù)难a充),目前web3.js 0.20.x 版本 已經翻譯完成,歡迎大家前往查閱。 這里還幾個實用DEMO,供大家參考: 使用web3.js API在頁面中轉賬 web3.js 0....
摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接如何使用在頁面中進行轉賬原文已更新,請讀者前往原文閱讀本文介紹如何使用在頁面中進行轉賬,是我翻譯的文檔中文版及區(qū)塊鏈全棧以太坊開發(fā)實戰(zhàn)中的文章說明。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:如何使用Web3.js API 在頁面中進行轉賬原文已更新,請讀者前往原文閱讀 本文介紹如何使用Web3.js API 在頁面中進行轉賬,是我翻譯的文檔Web3.j...
摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接如何使用在頁面中進行轉賬原文已更新,請讀者前往原文閱讀本文介紹如何使用在頁面中進行轉賬,是我翻譯的文檔中文版及區(qū)塊鏈全棧以太坊開發(fā)實戰(zhàn)中的文章說明。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:如何使用Web3.js API 在頁面中進行轉賬原文已更新,請讀者前往原文閱讀 本文介紹如何使用Web3.js API 在頁面中進行轉賬,是我翻譯的文檔Web3.j...
閱讀 3620·2021-11-22 09:34
閱讀 3192·2021-11-15 11:38
閱讀 3059·2021-10-27 14:16
閱讀 1243·2021-10-18 13:35
閱讀 2434·2021-09-30 09:48
閱讀 3435·2021-09-29 09:34
閱讀 1645·2019-08-30 15:54
閱讀 1826·2019-08-26 11:57