[英]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”
如果這兩種方式適用於同一個領域,為什么會如此不同呢?
返回節點控制的帳戶列表。
退貨:
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.