问题描述
我有一个使用电子钱包发送 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 (将#修改为@)