如何解决WalletConnect 会话处理使用 Metamsk - 第一次交易后没有 Metamask Confirm Dialog
我有一个使用电子钱包发送 ERC20 交易(合同交互 -> 转移)的网络应用程序。我正在使用 Metamask(主网)与 Web 应用程序进行交互。对于登录(连接),我在 Metamask 中得到确认对话框,第一笔交易也是如此。但是,从第二笔交易开始,我没有收到确认对话框。有谁知道可能是什么问题?
我有一个使用电子钱包发送 ERC20 交易(合同交互 -> 转移)的网络应用程序。我正在使用 Metamask(主网)与 Web 应用程序进行交互。对于登录(连接),我在 Metamask 中得到确认对话框,第一笔交易也是如此。但是,从第二笔交易开始,我没有收到确认对话框。有谁知道可能是什么问题?
// SESSION INIT
const providerOptions = {
walletconnect: {
package: WalletConnectProvider,options: {
infuraId: INFURA_ID,}
},};
web3Modal = new Web3Modal({
cacheProvider: true,// optional
providerOptions,// required
disableInjectedProvider: false,// optional. For MetaMask / Brave / Opera.
});
console.log("Web3Modal instance is",web3Modal);
try {
provider = await web3Modal.connect();
} catch(e) {
console.log("Could not get a wallet connection",e);
return;
}
//SEND TRANSACTION
async function transferMoney(toAccountId,amount,tokenContract) {
var data = tokenContract.methods.transferByAccountId(toAccountId,amount).encodeABI()
console.log(data)
var gasPrice = await web3.eth.getGasPrice()
const tx = {
from: selectedAccount,to: tokenContract.options.address,gas: TRANSFER_GAS_ESTIMATION,gasPrice: gasPrice,data: data,};
try {
console.log(tx)
var txHash = await provider.connector.sendTransaction(tx)
console.log(txHash)
} catch (err) {
console.log(err.message);
}
}
// disCONNECT SESSION
async function ondisconnect() {
console.log("Killing the wallet connection",provider);
if(provider.close) {
await provider.close();
await web3Modal.clearCachedProvider();
provider = null;
}
selectedAccount = null;
location.href = 'login.html'
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。