首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在类型记录任务中使用hardhat.ethers?

如何在类型记录任务中使用hardhat.ethers?
EN

Stack Overflow用户
提问于 2022-08-03 15:07:28
回答 1查看 391关注 0票数 0

以下代码找不到“以太”

代码语言:javascript
复制
import { HardhatUserConfig, task } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";

task('read',async () => {
    const contract = ethers.getContractFactory('AwesomeContract');
    // ...
})

const config: HardhatUserConfig = {
  solidity: "0.8.15",
};

export default config;

当然,开发人员不能这样做:

代码语言:javascript
复制
import { ethers } from 'hardhat';

因为它抛出了HH9

是否可以在类型记录任务中使用hardhat.ethers?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-06 14:14:20

在运行任务之前,Hardhat会将Hardhad运行时环境注入全局范围,因此您需要从其中获取ethers

检查文档示例

代码语言:javascript
复制
task(
  "hello",
  "Prints 'Hello, World!'",
  async function (taskArguments, hre, runSuper) {
    console.log("Hello, World!");
  }
);

还有另一个更真实的例子:

hardhat.config.ts

代码语言:javascript
复制
import { HardhatUserConfig, task } from "hardhat/config"

import { updateItem } from "./scripts"

task("updateItem", "Update a listed NFT price")
  .addParam("id", "token ID")
  .addParam("price", "token new listing price")
  .setAction(async (args, hre) => {
    const tokenId = Number(args.id)
    const newPrice = String(args.price)
    await updateItem(hre, tokenId, newPrice)
  })

...

updateItem.ts

代码语言:javascript
复制
import { HardhatRuntimeEnvironment } from "hardhat/types"
import { NFTMarketplace } from "../typechain"

async function updateItem(hre: HardhatRuntimeEnvironment, tokenId: number, newPrice: string) {
  const nftMarketplace = (await hre.ethers.getContract("NFTMarketplace")) as NFTMarketplace
  ...
}

export default updateItem
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73223712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档