之前使用ethers.js加上前端和metamask的配合能正常和合约交互。但这样太麻烦了,我想直接用纯ethers.js和合约交互,这样可能10几秒就能做完需要前端几分钟才能完成的操作。研究了很久后写了以下代码,但执行起来仍然报错。不管是注释了的写法还是没注释的写法都报错。所以请问怎么修改才能让其正常呢?最好是使用wallet2这个账号,而不是系统默认的账号来交互。
async function main() {
const { ethers } = require("ethers");
//hardhat默认的前两位账户
const wallet1 = await new ethers.Wallet(
"0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"
);
const wallet2 = await new ethers.Wallet(
"0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d"
);
const provider = new ethers.providers.JsonRpcProvider();
const marketaddress = "0x5FbDB2315678afecb367f032d93F642f64180aa3";
const Market = require("./artifacts/contracts/Market.sol/Market.json");
const signer = provider.getSigner();
let marketContract = new ethers.Contract(marketaddress, Market.abi, signer);
// let transaction = await marketContract.connect(wallet2).setPriceRateAll(1);
let transaction = await marketContract.setPriceRateAll(1);
console.log(transaction);
}
main();
图中报错信息第一个是未注释那段的报错,第二个是没注释的报错。