技術指南 | Web3.js基於以太坊的Javascript API
web3.js是一個庫集合,你可以使用HTTP或IPC連線本地或遠端以太它節點進行互動。 web3的JavaScript庫能夠與以太坊區塊鏈互動。 它可以檢索使用者帳戶,傳送交易,與智慧合約互動等。
Version : 1.0.0-beta.36
Web3.js API型別
- eth: Etherum區塊鏈相關方法;
- net: 節點的網路狀態;
- personal: 帳戶功能和傳送;
- db: 獲取/放置本地LevelDB;
- shh: 使用Whisper的P2P訊息傳遞;
node
例項化web3
首先,我們檢查是否使用的dapp瀏覽器或更新版本的MetaMask,將以太坊提供程式注入到window object中。 如果是這樣,我們使用它來建立我們的web3 object,但我們還需要使用ethereum.enable()顯式請求訪問帳戶。
如果以ethereum object不存在,我們將檢查注入的web3例項。 如果它存在,則表示我們正在使用較舊的dapp瀏覽器(如Mist或較舊版本的MetaMask)。 如果是這樣,我們可以獲取到它的提供者並使用它來建立我們的web3 object。
如果沒有注入web3例項,我們將根據本地提供程式建立web3物件。 (這種後備適用於開發環境,但不安全且不適合生產環境。)
Web3.js的例子
PS:不推薦使用web3.version.getNode。
餘額
檢查使用者的餘額
- web3.eth.getAccounts:從以太坊節點獲取帳戶,不推薦使用web3.eth.accounts。
- web3.eth.getBalance:獲取帳戶的餘額。
- web3.utils.fromWei:將wei轉換為ether,不推薦使用web3.fromWei。

轉移
將乙太網從“A”轉移到“B”
txnObject(事務物件)是web3.eth.sendTransaction的第一個引數。 txnObject由JSON組成。
from:String - 傳送帳戶的地址。
to:String - 目標錢包地址。
value:Number | String | BigNumber- (可選)您希望傳送到目標地址的乙太網的數量。
gas:Number | String | BigNumber - (可選,預設:待定)用於交易的gas量(未使用的gas將被退還)。
gasPrice:Number | String | BigNumber- (可選,預設:待定)wei中此交易的gas價格,預設為平均網路gas價格。
data:String- (可選)包含訊息的關聯資料的位元組字串,或者在合同建立事務的情況下,初始化程式碼。
nonce:Number - (可選)nonce的整數。 這允許覆蓋使用相同nonce的自己的掛起事務。
實踐練習
我使用上面的方法制作了一個網頁。- 獲取以太坊節點資訊
- 獲得使用者的餘額
- 轉移以太幣

您將使用MetaMask或Ganache。 我建議你使用Ganache,這是一個用於以太坊開發的個人區塊鏈,可用於部署合同,開發應用程式和執行測試。 如果您還沒有安裝,請下載Ganache並雙擊該圖示安裝應用程式。 這將生成在埠7545上本地執行的區塊鏈同時將埠更改為8545。
(來源:公眾號:區塊鏈研究實驗室)