[英]cannot disconnect or close or clear accounts from web3model or web3
我正在嘗試與提供商斷開連接,以便在未連接時顯示帶有連接按鈕的屏幕,並在已連接時顯示顯示屏幕。
示例代碼不起作用:
public resetApp = async () => {
const { web3 } = this.state;
if (web3 && web3.currentProvider && web3.currentProvider.close) {
await web3.currentProvider.close();
}
await this.web3Modal.clearCachedProvider();
this.setState({ ...INITIAL_STATE });
};
web3.currentProvider.close();
不是 function。 條件從未滿足。 web 上的所有示例都不起作用。
下面的這段代碼總是返回一個地址,除了手動禁用元掩碼並從 chrome 擴展設置再次啟用它之外,我沒有嘗試過清除它。
const accounts = await web3.eth.getAccounts();
if (accounts[0] != null) {
// connected
resolve(true);
} else {
// not connected
resolve(false);
}
請任何人都可以提供幫助。
找到解決方案:我的情況是測試錯誤的東西(不知道怎么說)。 如果你調用 await web3Modal.clearCachedProvider();
然后web3Modal.cachedProvider
返回一個空字符串。
// test if wallet is connected
if (web3Modal.cachedProvider) {
// connected now you can get accounts
const accounts = await web3.eth.getAccounts();
}
// disconnect wallet
const disconnectWallet = async (web3Modal: any) => {
await web3Modal.clearCachedProvider();
}
這將起作用;
async onDisconnect() {
await web3Modal.clearCachedProvider();
window.localStorage.clear();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.