钱包地址被用于多种场景,包括作为标识符和用于签名交易。
以以太坊为例,以太坊地址是账户的唯一公开标识符,每个账户都有一个对应的地址,地址用于在网络上进行交互和识别,而账户则包含了与该地址相关的所有状态信息和功能。
如果想请求用户的签名或让用户批准一笔交易,DApp 必须使用 eth_requestAccounts RPC 方法来访问用户的账户。
此处建议提供一个按钮,允许用户将欧易 Web3 钱包连接到 DApp。选择此按钮可调用 eth_requestAccounts
方法来访问用户帐户地址。
在下方的示例项目代码中,JavaScript 代码在用户点击连接按钮时访问用户的帐户地址,HTML 代码显示按钮和当前帐户地址:
<button class="connectEthereumButton">Connect to Ethereum</button>
const connectEthereumButton = document.querySelector('.connectEthereumButton');
connectEthereumButton.addEventListener('click', () => {
//Will Start the OKX extension
okxwallet.request({ method: 'eth_requestAccounts' });
});
您可以使用事件来监听变化:
okxwallet.on('accountsChanged', handler: (accounts: Array<string>) => void);
每当 eth_accounts
RPC 方法的返回值发生变化时,欧易都会发出对应事件提醒。
eth_accounts
会返回一个为空或包含单个账户地址的数组,返回的账户地址如果存在,即为允许调用者访问的最近使用的账户地址。
由于调用者由其 URL origin 标识,所以具有相同来源(origin)的站点会持有相同的权限。只要用户公开的账户地址发生变化,就会发出 accountsChanged
。
更多链的账户获取方法见 Injected providers。