我正在努力完成这个挑战: 炼金术挑战
我的脚本用于部署合约并使用不同的地址调用尝试函数: 我的脚本
const hre = require("hardhat");
require("dotenv").config();
async function main() {
const Contract = await hre.ethers.getContractFactory("Contract");
const contract = await Contract.deploy();
console.log(`Contract was deployed to ${contract.target}`);
const [owner, addr1] = await ethers.getSigners();
await contract.connect(addr1).attempt();
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
我收到此错误: ProviderError:执行已恢复:msg.sender 等于 tx.origin
请问有什么帮助吗?
创建智能合约并从 EOA 调用它。
EOA -> 智能合约 -> 你的挑战
tx.origin 将是 EOA(因为它是 tx 开始的地方),msg.sender 将是智能合约(因为它是发起挑战的地方)
您可以在这篇帖子
中阅读更多相关信息