微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ReactJS中集成时出现WalletConnect错误-未捕获承诺TypeError:this.send不是函数

如何解决在ReactJS中集成时出现WalletConnect错误-未捕获承诺TypeError:this.send不是函数

我正在将WalletConnect集成到React DApp中,但得到 this.send不是功能错误

我已经确定问题出在WalletConnectProvider上,但是我已经按照其文档中提到的相同步骤进行操作。

请查看我的代码,让我知道如何解决此问题。谢谢。

import WalletConnectProvider from '@walletconnect/web3-provider';
import config from './config';
import Web3 from 'web3';

export const walletConnect = async (setAddr) => {
//  Create WalletConnect Provider
const provider = new WalletConnectProvider({
    infuraId: config.tokenContract.infuraKey,// required
});

//  Enable session (triggers QR Code modal)
await provider.enable();

console.log('provider',provider);
if (provider.connected) {
    console.log('wallet connect address',provider.accounts[0]);
    setAddr(provider.accounts[0]);
}

//  Create Web3
const web3 = new Web3(provider);
console.log('web3',web3);

const _contract = new web3.eth.Contract(
   config.tokenContract.contractABI,config.tokenContract.contractAddress
);
const data = await _contract.methods.hatchnest().encodeABI();
const gasPrice = 20000000000;
const gasLimit = 90000;

const tx = {
   from: '0xFF12586A1eCf65b56d828712A8d4B48D1CEC8962',to: config.tokenContract.contractAddress,data: data,gasPrice: web3.utils.toHex(gasPrice),gasLimit: web3.utils.toHex(gasLimit),};
 // Send Transaction
 const txHash = await web3.eth.sendTransaction(tx);
 console.log('sendTransaction',txHash);
};

解决方法

这是web3.js 1.3.x中的一个已知错误

https://github.com/ethereum/web3.js/issues/3790

将web3.js 1.2.x降级。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。