區塊鏈研究實驗室 | Web3 .js基於乙太坊的Javascript API

區塊鏈研究實驗室 | Web3 .js基於乙太坊的Javascript API

web3.js是一個庫集合,你可以使用HTTP或IPC連接本地或遠端乙太它節點進行交互。 web3的JavaScript庫能夠與乙太坊區塊鏈交互。 它可以檢索用戶帳戶,發送交易,與智慧合約交互等。

Version : 1.0.0-beta.36

Web3.js API類型

  1. eth: Etherum區塊鏈相關方法;
  2. net:節點的網路狀態;
  3. personal:帳戶功能和發送;
  4. db:獲取/放置本地LevelDB;
  5. shh:使用Whisper的P2P消息傳遞;

實例化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。

餘額

檢查用戶的餘額

  1. web3.eth.getAccounts:從乙太坊節點獲取帳戶,不推薦使用web3.eth.accounts。
  2. web3.eth.getBalance:獲取帳戶的餘額。
  3. 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。

本文轉載公眾號:區塊鏈研究實驗室

Flutter3 for Web,寫了個博客網站,已上線

NFT現在確實是一個泡沫,但是它是一個必須要有的泡沫