Hardhat 개발 환경 설정하기
마루 네트워크에서 스마트 계약을 컴파일, 테스트 및 배포하기 위해 Hardhat 프로젝트를 구성하는 단계별 가이드입니다.
사전 요구사항
- Node.js (18+)
- 실행 중인 로컬 마루 테스트넷 또는 공개 테스트넷에 대한 접근 권한.
1. Hardhat 프로젝트 초기화
새 프로젝트 디렉토리를 만들고 그 안에 샘플 Hardhat 프로젝트를 초기화하는 것으로 시작합니다.
mkdir maroo-project
cd maroo-project
npm init -y
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox
npx hardhat 참고: `npx hardhat` 프롬프트가 나타나면 최상의 개발 경험을 위해 'Create a TypeScript project'를 선택하세요.
2. `hardhat.config.ts` 설정
다음으로, 마루 네트워크에 연결하도록 Hardhat을 설정해야 합니다.
hardhat.config.ts 파일을 열고 로컬 테스트넷에 대한 네트워크 설정을 추가하세요. 또한 검증인의 개인 키를 안전하게 가져와야 합니다.import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
// 개인 키에는 .env 파일을 사용하는 것이 좋습니다
// npm install dotenv
import * as dotenv from 'dotenv';
dotenv.config();
const PRIVATE_KEY = process.env.PRIVATE_KEY || "";
const config: HardhatUserConfig = {
solidity: "0.8.22", // 마루는 이 버전을 권장합니다
networks: {
maroo_local: {
url: "http://127.0.0.1:8545", // marood의 기본 RPC URL
chainId: 450815, // 마루 체인 ID
accounts: [PRIVATE_KEY],
},
},
};
export default config; 주의: 절대로 개인 키를 Git에 커밋하지 마세요. 환경 변수(예: `.env` 파일)를 사용하여 안전하게 관리하세요. `marood keys export validator --unarmored-hex`를 사용하여 로컬 검증인의 개인 키를 내보낼 수 있습니다.
3. 컴파일 및 배포
설정이 완료되었으므로 이제 계약을 컴파일하고 배포할 수 있습니다. Hardhat의 샘플 프로젝트에는
Lock.sol 계약과 배포 스크립트가 함께 제공됩니다. 이를 사용해 보겠습니다.# 계약 컴파일
npx hardhat compile
# 로컬 마루 네트워크에 배포
npx hardhat run scripts/deploy.ts --network maroo_local