簡體   English   中英

Web3 庫 Javascript - getAccounts 與 accounts.wallet[0]

[英]Web3 Library Javascript - getAccounts vs accounts.wallet[0]

我有以下代碼:

const web3 = new Web3(window.ethereum);

console.log('Accounts:', await web3.eth.getAccounts()); 

console.log('Wallet Account:', web3.eth.accounts.wallet[0]);

這返回給我 2 個不同的東西。 第一個返回給我“Accounts: 0xEF..42a3”,這是我的錢包地址,而另一個返回“undefined”

如果這兩種方式適用於同一個領域,為什么會如此不同呢?

web3.eth.getAccounts()的文檔如下:

返回節點控制的帳戶列表。

退貨:

Promise返回Array - 由節點控制的地址數組。

web3.eth.accounts的文檔如下所示:

web3.eth.accounts [對象] 包含生成以太坊賬戶以及簽署交易和數據的功能。

所以,它們指的不是同一個東西,而web.eth.getAccounts()就是你要找的東西 web3.eth.getAccounts()返回一個賬戶數組,但是web.eth.accounts是一個 object 充滿了一般操作的函數。

您可能對web.eth.accounts.wallet[0]返回undefined而不是錯誤感到困惑。 這只是一個奇怪的 JS 事情。 在JS中,arrays實際上是帶有數字鍵的對象。 因此, wallet[0]實際上意味着“從 object wallet中獲取密鑰0的值”。 因為wallet是一個object,所以沒有返回錯誤。 但是, wallet沒有密鑰0 ,因此返回undefined

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM