티스토리 뷰
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!
'Solidity > Foundry' 카테고리의 다른 글
Web3OJ 문제 풀이를 위한 Foundry 템플릿 (0) | 2024.08.07 |
---|---|
[Foundry] .env 파일 사용하지 마세요 (0) | 2024.02.23 |
Inline Assembly를 사용해 ERC-20 구현하기 & Inline Assembly 활용하기 (1) | 2024.02.17 |
Foundry 테스트 작성하기 (0) | 2023.10.28 |
Foundry 프로젝트 살펴보기 (1) | 2023.10.27 |