在安全帽上测试一些代码时,我发现抛出了一个无法解释的异常。我在不和谐频道以及 etherjs 文档中都找不到任何解决方案。
这是我的测试套件:
import {ethers} from "hardhat";
import {loadFixture} from "ethereum-waffle";
describe.only("Images", async function () {
let result;
it("Creates images", async function () {
const {Decentragram} = await loadFixture(fixture);
const [owner, address2] = await ethers.getSigners();
result = await Decentragram.connect(owner).uploadImage();
let test = await Decentragram.connect(owner).test("test");
console.log(test);
});
});
这是我的合同:
pragma solidity 0.8.6;
contract Decentragram {
string public name = "Decentragram";
// Store Images
mapping(uint256 => Image) public images;
mapping(string => uint256) public test;
struct Image {
uint256 id;
string hashImg;
string description;
uint256 tipAmount;
address payable author;
}
// Create Images
function uploadImage() public {
images[1] = Image({
id: 1,
hashImg: "abcd",
description: "description",
tipAmount: 0,
author: payable(address(0x0))
});
}
function getImage(uint256 id) public view returns (Image memory) {
Image memory img = images[id];
return img;
}
// Tip Images
}
这是我在运行“npx hardhat test”时遇到的错误:
Error: call revert exception (method="test(string)", errorArgs=null, errorName=null, errorSignature=null, reason=null, code=CALL_EXCEPTION, version=abi/5.4.0)
at Logger.makeError (node_modules\@ethersproject\logger\src.ts\index.ts:213:28)
at Logger.throwError (node_modules\@ethersproject\logger\src.ts\index.ts:225:20)
at Interface.decodeFunctionResult (node_modules\@ethersproject\abi\src.ts\interface.ts:425:23)
at Contract.<anonymous> (node_modules\@ethersproject\contracts\src.ts\index.ts:332:44)
at step (node_modules\@ethersproject\contracts\lib\index.js:48:23)
at Object.next (node_modules\@ethersproject\contracts\lib\index.js:29:53)
at fulfilled (node_modules\@ethersproject\contracts\lib\index.js:20:58)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at runNextTicks (internal/process/task_queues.js:64:3)
at listOnTimeout (internal/timers.js:526:9)
at processTimers (internal/timers.js:500:7)