circle-chevron-rightHardhat을 이용한 컨트랙트 배포

하드햇 (Hardhat)은 이더리움 소프트웨어를 위한 개발 프레임워크입니다. 컨트랙트 디앱 개발, 컴파일, 디버깅, 배포 등 이더리움을 개발하기 위한 다양한 기능이 구성되어 있습니다.

디카르고는 이더리움의 EVM과 상호 작용을 할 수 있기에, 디카르고 네트워크에 컨트랙트를 배포할 수 있습니다.

하드햇과 디카르고 웨어하우스를 사용하여 지갑 디앱 (Wallet dApp)을 구축하는 방법을 살펴보겠습니다.

circle-info

모든 블록체인에 컨트랙트를 배포할 때는 해당 체인의 네이티브 토큰을 사용하여 배포 가스 수수료를 지불해야 하며, 이는 디카르고도 마찬가지입니다. 디카르고 웨어하우스에 배포하기 전에 포우셋 (faucet)을 통해 $DKA 테스트넷 토큰을 획득할 수 있습니다.

개발 환경

사전 준비 사항 (Prerequisites)

  • Node.js & npm/yarn:

  • Hardhat: Development environment for Ethereum.

    • Install with:

    npm install --save-dev hardhat

Step 1 - 하드햇 프로젝트 설정

  1. 하드햇 프로젝트를 새로 초기화합니다.

  1. 추가로 개발에 필요한 dotenvarrow-up-right 를 설치합니다.

  1. 다음은 하드햇 프로젝트의 폴더 구조에 대한 예시입니다.

Step 2 - Counter.sol 컨트랙트 작성

contracts 폴더 안에 Counter.sol 파일을 생성한 다음 아래 코드를 복사하여 붙여 넣습니다.

해당 코드는 변수 Number를 설정할 수 있는 간단한 기능이 구현되어 있습니다.

Step 3 - 이그니션 파일 업데이트

./ignition/modules 폴더 안에 Counter.js 파일을 생성한 다음 아래 코드를 복사하여 붙혀 넣습니다.

해당 코드는 하드햇 이그니션(hardhat ignition) arrow-up-right표준 코드이며, 컨트랙트 배포를 수행합니다.

Step 4 - 하드햇 설정

  1. 필요한 플러그인 및 구성을 hardhat.config.js에 작성합니다.

    • require('dotenv').config() : .env를 불러옵니다.

    • accounts: [process.env.PRIVATE_KEY] : .env 에 작성된 개인키를 전달합니다.

  1. .env 파일 안에 다음을 추가합니다. gitignore 파일에 .env가 추가되었는지 확인합니다.

Step 5 - 컴파일과 배포

  1. counter.sol 을 컴파일합니다.

  1. counter.sol 코드를 디카르고 웨어하우스에 배포합니다.

Step 6 - 배포 트랜잭션 확인

  1. 배포된 컨트랙트의 트랜잭션 정보를 조회합니다.

  1. dScannerarrow-up-right에서 트랜잭션 정보 검색할 수 있습니다.

컨트랙트 검증

이더리움이나 EVM 기반 블록체인에서 스마트 컨트랙트를 개발해 보셨다면, 아마 하드햇의 검증 (verify) 기능을 사용해 보셨을 겁니다.

하지만 저희 디카르고 체인은 물류 서비스에 최적화된 블록 익스플로러 (Explorer)인 dScannerarrow-up-right를 자체적으로 개발했기 때문에, 하드햇의 검증 기능과는 호환되지 않습니다.

대신, 여러분이 개발한 컨트랙트의 투명성을 보장하기 위해 dScannerarrow-up-right에서 제공하는 Verify Contractarrow-up-right를 활용할 수 있습니다.

Last updated