摘要:使用回調由于這套被設計來與本地的結點交互,所有函數默認使用同步的的請求。批量請求可以允許將多個請求放入隊列,并一次執行。這里的批量請求主要目的是用來保證請求的串行執行。列表本教程由登鏈學院翻譯,由深入淺出區塊鏈發布。
本文首發于深入淺出區塊鏈社區
原文鏈接:Web3.js 0.20.x API 中文版翻譯原文已更新,請讀者前往原文閱讀
文檔原始鏈接為:https://web3.learnblockchain.cn/0.2x.x/,歡迎大家前往查閱,本文只是節選開頭部分的介紹及API列表索引,以下為翻譯正文:
為了開發一個基于以太坊的去中心化應用程序,可以使用web3.js庫提供的web3對象, 在底層實現上,web3通過RPC調用與本地節點通信, web3.js可以與任何暴露了RPC接口的以太坊節點連接。
web3 包含下面幾個對象:
web3.eth 用來與以太坊區塊鏈及合約的交互
web3.shh 用來與Whisper協議相關交互
web3.net 用來獲取網絡相關信息
web3 包含一些工具
web3使用示例:
官方示例
使用web3.js API在頁面中轉賬
多個API 使用Demo
Dapp 模式
想要學習去中心化應用(DAPP)開發,這門課程不容錯過區塊鏈全棧-以太坊DAPP開發實戰
引入web3首先你需要將web3引入到應用工程中,可以通過如下幾個方法:
npm: npm install web3
bower: bower install web3
meteor: meteor add ethereum:web3
vanilla: link the dist./web3.min.js
然后你需要創建一個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")); }
成功引入后,你現在可以使用web3對象的API了。
使用回調由于這套API被設計來與本地的RPC結點交互,所有函數默認使用同步的HTTP的請求。
如果你想發起一個異步的請求。大多數函數允許傳一個跟在參數列表后的可選的回調函數來支持異步,回調函數支持Error-first回調的風格。
web3.eth.getBlock(48, function(error, result){ if(!error) console.log(JSON.stringify(result)); else console.error(error); })批量請求
可以允許將多個請求放入隊列,并一次執行。
注意:批量請求并不會更快,在某些情況下,同時發起多個異步請求,也許更快。這里的批量請求主要目的是用來保證請求的串行執行。
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中的大數處理
如果是一個數據類型的返回結果,通常會得到一個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
本教程由登鏈學院翻譯,由深入淺出區塊鏈發布。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24286.html
摘要:使用回調由于這套被設計來與本地的結點交互,所有函數默認使用同步的的請求。批量請求可以允許將多個請求放入隊列,并一次執行。這里的批量請求主要目的是用來保證請求的串行執行。列表本教程由登鏈學院翻譯,由深入淺出區塊鏈發布。 本文首發于深入淺出區塊鏈社區原文鏈接:Web3.js 0.20.x API 中文版翻譯原文已更新,請讀者前往原文閱讀 文檔原始鏈接為:https://web3.learn...
摘要:這些天,為了錄制以太坊開發實戰課程,我準備把文檔全部翻譯一下并做適當的補充,目前版本已經翻譯完成,歡迎大家前往查閱。 這些天,為了錄制以太坊DAPP開發實戰課程,我準備把web3文檔全部翻譯一下(并做適當的補充),目前web3.js 0.20.x 版本 已經翻譯完成,歡迎大家前往查閱。 這里還幾個實用DEMO,供大家參考: 使用web3.js API在頁面中轉賬 web3.js 0....
摘要:這些天,為了錄制以太坊開發實戰課程,我準備把文檔全部翻譯一下并做適當的補充,目前版本已經翻譯完成,歡迎大家前往查閱。 這些天,為了錄制以太坊DAPP開發實戰課程,我準備把web3文檔全部翻譯一下(并做適當的補充),目前web3.js 0.20.x 版本 已經翻譯完成,歡迎大家前往查閱。 這里還幾個實用DEMO,供大家參考: 使用web3.js API在頁面中轉賬 web3.js 0....
摘要:本文首發于深入淺出區塊鏈社區原文鏈接如何使用在頁面中進行轉賬原文已更新,請讀者前往原文閱讀本文介紹如何使用在頁面中進行轉賬,是我翻譯的文檔中文版及區塊鏈全棧以太坊開發實戰中的文章說明。 本文首發于深入淺出區塊鏈社區原文鏈接:如何使用Web3.js API 在頁面中進行轉賬原文已更新,請讀者前往原文閱讀 本文介紹如何使用Web3.js API 在頁面中進行轉賬,是我翻譯的文檔Web3.j...
摘要:本文首發于深入淺出區塊鏈社區原文鏈接如何使用在頁面中進行轉賬原文已更新,請讀者前往原文閱讀本文介紹如何使用在頁面中進行轉賬,是我翻譯的文檔中文版及區塊鏈全棧以太坊開發實戰中的文章說明。 本文首發于深入淺出區塊鏈社區原文鏈接:如何使用Web3.js API 在頁面中進行轉賬原文已更新,請讀者前往原文閱讀 本文介紹如何使用Web3.js API 在頁面中進行轉賬,是我翻譯的文檔Web3.j...
閱讀 1523·2023-04-26 02:03
閱讀 4707·2021-11-22 13:53
閱讀 4580·2021-09-09 11:40
閱讀 3782·2021-09-09 09:34
閱讀 2125·2019-08-30 13:18
閱讀 3501·2019-08-30 11:25
閱讀 3295·2019-08-26 14:06
閱讀 2545·2019-08-26 13:52