티스토리 뷰

Foundry 프로젝트에 Hardhat 프로젝트 초기화

 다음과 같이 이미 Foundry 프로젝트가 생성되어 있는 디렉터리 안에서 진행합니다.

 

1. npx hardhat init 명령어를 사용해 hardhat.config.js 파일과 package.json 파만 생성을 해줍니다.

$ npx hardhat init
888    888                      888 888               888
888    888                      888 888               888
888    888                      888 888               888
8888888888  8888b.  888d888 .d88888 88888b.   8888b.  888888
888    888     "88b 888P"  d88" 888 888 "88b     "88b 888
888    888 .d888888 888    888  888 888  888 .d888888 888
888    888 888  888 888    Y88b 888 888  888 888  888 Y88b.
888    888 "Y888888 888     "Y88888 888  888 "Y888888  "Y888

Welcome to Hardhat v2.22.3

✔ What do you want to do? · Create an empty hardhat.config.js
Config file created

You need to install hardhat locally to use it. Please run:

npm install --save-dev "hardhat@^2.22.3"


Give Hardhat a star on Github if you're enjoying it!

     https://github.com/NomicFoundation/hardhat

2. npm install --save-dev "hardhat@^2.22.3" 명령어를 입력하여 hardhat 라이브러리를 설치합니다.

$ npm install --save-dev "hardhat@^2.22.3"

added 264 packages, and audited 265 packages in 32s

53 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

3. 이 상태에서 hardhat을 사용해 컨트랙트를 컴파일해도 컴파일할 것이 없다고만 뜹니다. 이는 hardhat과 foundry의 src 디렉터리 경로가 다르기 때문에 발생하는 현상입니다.

$ npx hardhat compile
Nothing to compile

4. hardhat 설정값을 수정해서 src 디렉터리를 변경할 수도 있지만, @nomicfoundation/hardhat-foundry 플러그인을  설치하여 간단하게 사용할 수도 있습니다.

$ npm i -D @nomicfoundation/hardhat-foundry

added 1 package, and audited 266 packages in 3s

53 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

 설치한 플러그인은 hardhat.config.js 파일에서 불러와줘야 합니다.

/** @type import('hardhat/config').HardhatUserConfig */
require("@nomicfoundation/hardhat-foundry"); // 플러그인 불러오기
module.exports = {
  solidity: "0.8.24",
};

5. 다시 hardhat을 사용해 컴파일을 해보면 이번에는 정상적으로 컴파일이 되는 것을 확인할 수 있습니다.

$ npx hardhat compile
Compiled 1 Solidity file successfully (evm target: paris).

6. hardhat 프로젝트와 관련된 일부 디렉터리/파일들을 무시하도록 .gitignore 파일을 수정해 줍니다.

# Hardhat
node_modules/
artifacts/
cache_hardhat

Hardhat 프로젝트에 Foundry 프로젝트 초기화

1. foundry 프로젝트와 마찬가지로, @nomicfoundation/hardhat-foundry 플러그인을 설치해 줍니다.

$ npm i -D @nomicfoundation/hardhat-foundry

added 8 packages, and audited 584 packages in 5s

94 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

 설치한 플러그인은 hardhat.config.ts 파일에서 불러와줘야 합니다.

 

import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
import "@nomicfoundation/hardhat-foundry"; // 플러그인 불러오기

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

export default config;

2. git 저장소를 초기화합니다. 그리고 npx hardhat init-foundry 명령어를 실행하여 foundry 프로젝트를 초기화합니다.

$ git init
$ npx hardhat init-foundry
Creating foundry.toml file...
Running 'forge install --no-commit foundry-rs/forge-std'

3. foundry 명령어를 사용해 컴파일/빌드를 실행하면 정상적으로 실행되는 것을 확인할 수 있습니다.

$ forge build
[⠊] Compiling...
[⠢] Compiling 1 files with 0.8.24
[⠆] Solc 0.8.24 finished in 30.98ms
Compiler run successful!
최근에 올라온 글
최근에 달린 댓글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday
글 보관함