web3.eth.getAccounts() 返回节点控制的账号列表(Promise returns Array)
web3.eth.getCoinbase() 返回挖矿奖励所归集的地址(Promise returns String)
根据字面意思很难知道 两个函数 分别用在哪块,下面给出具体解释:
web3.eth.accounts[0] 用来获取 MetaMask 当前所选的账号,依据 Account List Reflects User Preference
使用时你还需要监听 MetaMask 上选择账号的变化,以便更新你页面展示的数据,依据 Listening for Selected Account Changes
web3.eth.getCoinbase 文档的意思很明确,和当前选择的账号没必然联系。
值可能等于 web3.eth.accounts[0] 或者未定义,coinbase 可配置。(What is coinbase)
Ref:MetaMask Compatibility Guide # MetaMask as a light client Supported Methods
Ref:Difference between web3.eth.getCoinbase() and web3.eth.getAccounts()[0]