如何用 hardhat 去测试fallback函数?

salic salic 提出于 2022-07-19 05:05 4056 浏览

合约代码:

//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

import "hardhat/console.sol";

contract Greeter {

    string private greeting;

    event Log(uint gas);

    constructor() {

    }


    fallback() external payable {
        console.log("hello", "");
        emit Log(gasleft());
    }

    receive() external payable {
    }


}


js调用的代码:

const Greeter = await ethers.getContractFactory("Greeter");
    const greeter = await Greeter.deploy();
    await greeter.deployed();

    const tx = await greeter.abc();

错误提示:greeter.abc is not a function

反正就是我调用了智能合约里面没有的函数,就会报错的。

最佳答案

2022-07-19 11:54

提示 abc 不是一个函数是因为 abi 里不包含abc 函数。

你可以在 abi 里添加 abc 函数,然后用 abi 去构造合约对象,再调用。

Tiny熊

擅长:智能合约,以太坊 · 采纳率 33% · 回答于 2022-07-19 09:44

其它 2 个回答

663 合约 2022-07-19 10:38
xiang 2022-07-20 16:23

写回答

你需要登录后才可以回答问题,登录