메인 콘텐츠로 건너뛰기

사전 요구 사항

컨트랙트 준비

이 가이드 전반에서 다음 예시 컨트랙트를 사용합니다:

Foundry로 배포하기

Foundry는 Rust 기반의 빠른 Ethereum 개발 툴킷입니다.
  1. Foundry를 설치합니다:
    .bashrc 또는 .zshrc 파일을 source 해야 할 수도 있습니다.
  2. 새 Foundry 프로젝트를 설정합니다:
  3. Plasma 테스트넷 설정으로 foundry.toml을 업데이트합니다:
  4. 프로젝트 루트에 .env 파일을 생성합니다:
  5. 환경 변수를 로드합니다:
  6. 컨트랙트 코드src/SimpleStorage.sol로 저장한 후 배포합니다:
    Foundry는 배포 트랜잭션 해시와 컨트랙트 주소를 출력합니다:
  7. Foundry의 cast 도구를 사용하여 배포된 컨트랙트를 테스트합니다. 먼저 저장된 데이터를 읽습니다:
  8. 그런 다음 데이터를 업데이트하고 다시 읽습니다:
    다음과 같은 출력이 표시됩니다:

Hardhat으로 배포하기

Hardhat은 풍부한 플러그인을 지원하는 완전한 기능의 개발 프레임워크입니다.
  1. 다음 사항을 확인합니다:
Node.js 18 이하는 더 이상 Hardhat에서 지원되지 않으며 ES 모듈 호환성 문제를 일으킬 수 있습니다.
  1. Node.js 버전을 확인합니다:
    Node.js 18 이하를 사용하고 있다면 Node.js 20+로 업그레이드합니다:
  2. 새 Hardhat 프로젝트를 초기화합니다:
    호환성 문제가 발생하면 Hardhat 문서에서 최신 지원 버전을 확인하세요.
    프롬프트가 나타나면 Create a JavaScript project를 선택합니다.
  3. hardhat.config.js를 업데이트합니다:
  4. 프로젝트 루트에 .env 파일을 생성합니다:
  5. scripts 디렉터리와 배포 스크립트를 생성합니다:
  6. scripts/deploy.js를 생성합니다:
  7. 컨트랙트 코드contracts/SimpleStorage.sol로 저장한 후 배포합니다:
  8. 완료되었습니다!

Ethers.js로 배포하기

Ethers.js는 최소한의 프로그램 방식 배포 흐름을 제공합니다.
  1. 새 프로젝트를 생성합니다:
  2. 프로젝트 루트에 .env 파일을 생성합니다:
  3. Solidity 컨트랙트를 컴파일하기 위한 compile.js를 생성합니다:
  4. 컨트랙트를 SimpleStorage.sol로 저장한 후 컴파일합니다:
    다음과 같이 출력됩니다:
  5. deploy.js를 생성합니다:
  6. 배포 스크립트를 실행합니다:
    다음과 같이 출력됩니다:

배포 검증

위의 방법 중 하나로 배포한 후 컨트랙트 배포를 검증하세요.

문제 해결

ES 모듈 호환성 문제

Error [ERR_REQUIRE_ESM]: require() of ES Module과 같은 오류가 발생한다면 일반적으로 다음을 의미합니다:
  1. Node.js 버전이 너무 오래됨: 사전 요구 사항에 명시된 대로 Node.js 20+로 업그레이드하세요.
  2. 종속성 버전 불일치: Node.js 업그레이드가 불가능하다면 문제가 되는 종속성을 다운그레이드할 수 있습니다:

Node.js 버전 경고

지원되지 않는 Node.js 버전에 대한 경고가 표시되는 경우:
사전 요구 사항 섹션의 단계를 따라 Node.js 20+로 업그레이드하세요.

자금 부족

지갑에 충분한 테스트넷 토큰이 있는지 확인하세요. 테스트넷 포셋을 방문하세요.

잘못된 네트워크 구성

네트워크 구성이 테스트넷 체인 상세 정보와 일치하는지 확인하세요.

가스 추정 실패

배포 구성에 명시적인 가스 한도를 설정하세요: