【问题标题】:WalletConnect Session Handling (with Metamsk) - No Metamask Confirm Dialog after first transactionWalletConnect 会话处理(使用 Metamask) - 首次交易后到 Metamask 确认对话框
【发布时间】:2021-06-13 16:09:05
【问题描述】:

我有一个使用 Wallet 发送 ERC20 交易的网络应用程序(合约交互 -> 转账)。我正在使用 Metamask(主网)与 Web 应用程序进行交互。对于登录(连接),我在 Metamask 中得到确认对话框,对于第一笔交易也是如此。但是,从第二笔交易开始,我没有收到确认对话框。有谁知道可能是什么问题?

我有一个使用 Wallet 发送 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'
}

【问题讨论】:

    标签: ethereum wallet metamask


    【解决方案1】:

    Metamask 在首次登录后触发断开事件,交易确认也是如此。它应该是某种错误或缓存的凭据。我测试了很多库,它们都有同样的问题,当你多次断开插件时,应用程序只会第一次收到事件通知

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 2021-11-19
      • 2023-02-01
      • 1970-01-01
      • 2018-11-10
      • 2021-04-15
      • 2018-07-07
      • 1970-01-01
      • 2011-02-13
      相关资源
      最近更新 更多