Cocos Creator v3.7.1 引入 ethers v6.10 可以正常链接钱包,但是用了下面这段代码就报错
let provider = new ethers.JsonRpcProvider(ethereum);
代码报错:
Error: Error: Can not load module node:http. Cause: Node.js builtin modules are not provided by Cocos Creator.
```typescript
import { _decorator, Component, log, Node } from 'cc';
import { ethers } from 'ethers';
const { ccclass, property } = _decorator;
export let ChainParams = {
ChainId : 97,
ChainName:"BSC Test",
RpcUrl :"https://data-seed-prebsc-1-s3.binance.org:8545/",
ExplorerUrl:"https://testnet.bscscan.com/",
Token_USDTAddress : "0xd2925Bda030510E906799a053e21172bA1D60e94"
}
@ccclass('ConnectWallet')
export class ConnectWallet extends Component {
// start() {
// }
public static showAccount(account: string) {
if (account) {
return account.substring(0, 4) + "..." + account.substring(account.length - 4, account.length);
}
return "";
}
static async initAccount() {
let ethereum = window['ethereum']
let account = ''
let provider = null
console.log('111' );
if (ethereum) {
try {
let accounts = await ethereum.request({ method: 'eth_requestAccounts' });
account = accounts[0]
//-------下面这段代码报错------
let provider = new ethers.JsonRpcProvider(ethereum);
console.log(provider);
//----------------------------
await ethereum.request({
method: 'wallet_switchEthereumChain',
params: [{ chainId: '0x61' }],
});
return account
} catch (switchError) {
if (switchError.code === 4902) {
console.log(switchError.message);
try {
await ethereum.request({
"method": 'wallet_addEthereumChain',
"params": [
{
chainId: ChainParams.ChainId,
chainName: ChainParams.ChainName,
rpcUrls: [ChainParams.RpcUrl],
blockExplorerUrls: [ChainParams.ExplorerUrl],
},
],
});
} catch (addError) {
console.log(addError.code);
}
}
}
} else {
// Need install MetaMask
}
// Verify Accounts!
}
// update(deltaTime: number) {
// }
}
```