기본적인 hardhat 사용하기
- 로컬넷에서 컨트렉트를 테스트 하는 목적으로 사용.
- 배포전에 오류나 테스트를 위해서 사용되어진다.

hardhat 기본 자습서를 읽으면서 생각하는 작동순서는 다음과 같다.
hardhat은 작업 및 플러그인 개념을 중심으로 설계되었으며 toolbox을 통해서 ethers.js / chai-matchers 등을 지원해주며
디버그에 강력함을 가지고 있다.
node를 실행시키면 기본적으로는 로컬환경에서 돌아가며 자동채굴모드 (이벤트 발생마다 블록이 증가하는 방식)과
주기적 간격 채굴 방식을 선택할 수 있다.
폴더구조
- root
- 프로젝트폴더
- artifacts (컴파일된 contract etc)
- cache
- contracts (여기에 컨트렉트를 작성한다)
- my1.sol (예시)
- my2.sol (예시)
- node_modules
- scripts (배포관련)
- deploy.js
- test (chai를 통한 테스트)
- test.js
- hardhat.config.js (task, event 추가가능)
- packge-lock.js
- package.js
- 프로젝트폴더
ethers : provider / signer / contract 3가지로 나누어서 생각하기 가능.
사용 시 꿀팁
- openzeppelin 사용, 기본적인 erc20 토큰 제작 등에 관하여 매우 유용함.
- ethers.getSigners() : 현재 hardhat network에 있는 signer들의 주소를 반환해줌.
- ethers.getContractFactory("컨트렉트이름") : 컴파일되어있는 컨트렉트를 들고옴
- "contract".deploy("매개변수") : 컨트렉트 배포. 위의 get에서 return 되는 값이 "contract"
- "contract".connect("signer address") : 해당 컨트렉트와 상호작용을 위해 연결
const { anyValue } = require("@nomicfoundation/hardhat-chai-matchers/withArgs");
const { expect } = require("chai");
const { ethers, hardhatArguments } = require("hardhat");
describe("tokenmake",function() {
it("make token test", async function() {
const [owner,acc1,acc2] = await ethers.getSigners();
const makets = await ethers.getContractFactory("flashtoken1");
const dtoken = await makets.deploy(10000);
await dtoken.connect(owner);
const ownerBalance = await dtoken.balanceOf(owner.address);
expect(await dtoken.totalSupply()).to.equal(ownerBalance);
});
});
- 중간에 약간 헷갈렸던 것은 getContractFactory를 사용할 때 sol파일의 제목으로 호출하였는데
알고보니 contract 이름으로 호출해야하는 것이였다.
- expect(함수.to.equal("값")) : test에서 사용함. 함수를 실행하면 값과 같은가? 를 계산. 초기 테스트용
번외. 설치
윈도우에서 설치를 진행하였다.
a. WSL 설치하기
https://learn.microsoft.com/en-us/windows/wsl/install
Install WSL
Install Windows Subsystem for Linux with the command, wsl --install. Use a Bash terminal on your Windows machine run by your preferred Linux distribution - Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine, and more are available.
learn.microsoft.com
해당 페이지를 참고해서 설치하기.
윈도우 상에서 리눅스 운영체제를 사용할 수 있도록 해준다.
hardhat에서는 해당 방법을 통해서 권장하고 있어서 그대로 하였다.
b. 패키지 업그레이드
$sudo apt update && apt upgrade
c. nvm, node 설치
d. vscode에서 wsl 연결하기

설치하고


이렇게 하면 vscode 세팅 끝.
추가적으로 js와 hardhat 확장프로그램도 깔아주기.

다음에는 유니스왑 컨트렉트에 대해 공부해보겠다.
'날것 그대로의 공부기록 > solidity' 카테고리의 다른 글
| 크립토 좀비(1) (0) | 2023.03.29 |
|---|