如何通过 HardHat 与界面进行交互?

How to interact with interfaces through HardHat?

如何通过安全帽与界面交互。

例如,在 brownie 中,您可以像这样从接口调用函数:

def main():
    weth = interface.IWeth("weth_address")
    tx = weth.deposit({"from": account, "value": "value"})

就是这样。

有没有办法在安全帽中做同样的事情?几个小时以来,我一直在解决这个问题,但我终其一生都不知道该怎么做。

如果不可能,我如何通过坚固获得财富。

在安全帽中,您可以使用附件实现它。

  1. 转到 hardhat 控制台:npx hardhat console
  2. 获取合约工厂:factory = await ethers.getContractFactory('YourContractName')
  3. 附加到地址 weth = await factory.attach('weth_address')
  4. 执行函数调用,例如:
signer = await ethers.getSigner();
await signer.sendTransaction({ to: tokenAddress, value: ethers.utils.parseEther("5.0") });

是的,您可以使用 ethers.getContractAt

import { ethers } from "hardhat";
...
// Assume `ISetup` is an interface of the contract.
const setup = await ethers.getContractAt("ISetup", contractAddress);