[NeoX 튜토리얼] Hardhat을 사용하여 NeoX에서 스마트 계약 검증하기

네오 블록체인·2025년 5월 16일

NeoX

목록 보기
8/12

Neox에서 Hello World 스마트 컨트랙트를 배포하는 첫 번째 튜토리얼을 따라 했으며, 이제 NeoX 탐색기에서 이를 검증하는 방법을 궁금해한다면 이 가이드가 당신을 위한 것입니다.

단계 1: 이전 작업 가져오기

이전 튜토리얼을 따랐다면, 사용했던 동일한 폴더로 이동하면 됩니다.

이 부분을 건너뛰고 싶다면 이 저장소를 끌어와 작업을 가져올 수 있습니다. 그런 다음 7단계 및 8단계를 완료하여 NeoX에 이 Hello World 스마트 컨트랙트를 배포하면 됩니다.

이제 NeoX에 배포한 Hello World 컨트랙트의 컨트랙트 해시를 보관해야 합니다. 이 해시는 다음 단계에서 사용할 것입니다. 이 예제에서는 0x769427b5A043b4aB2f4c31A7Da819526F3B0d181을 사용하겠습니다.

단계 2: 플래튼 코드로 검증하기

이를 위해 컨트랙트 검증 페이지로 이동하여 다음 명령어로 생성한 플래튼 코드를 사용합니다: npx hardhat flatten.

그런 다음 hardhat.config.js 파일에 있는 모든 정보(컴파일러 버전, 최적화 매개변수 등)를 채웁니다. 이는 다음과 같이 보일 것입니다:

작업이 완료되면 컨트랙트가 검증되어야 하지만, 이 방법이 항상 작동하지 않을 수 있으므로 다른 방법을 살펴보겠습니다.

단계 3: hardhat-verify로 검증하기

이 방법에서는 다음 명령어로 새로운 의존성을 설치해야 합니다: npm install --save-dev @nomicfoundation/hardhat-verify. 의존성을 추가한 후, hardhat.config.js 파일 상단에 다음 가져오기를 추가합니다.

require("@nomicfoundation/hardhat-verify");

작업이 완료되면 매우 간단합니다. 컨트랙트 해시만 있으면 다음 명령어를 실행하면 됩니다:

npx hardhat verify --network neox-t4 0x769427b5A043b4aB2f4c31A7Da819526F3B0d181 "Hello World!"

검증이 성공했다는 비슷한 출력이 표시될 것입니다:

컨트랙트 소스 코드 제출 성공
contracts/HelloWorld.sol:HelloWorld at 0x769427b5A043b4aB2f4c31A7Da819526F3B0d181
블록 탐색기에서 검증을 위해. 검증 결과 대기 중...

블록 탐색기에서 HelloWorld 컨트랙트 검증 성공.
https://neoxt4scan.ngd.network/address/0x769427b5A043b4aB2f4c31A7Da819526F3B0d181#code

명령어 끝에 배포 중 컨트랙트 초기화에 사용한 인수를 추가했습니다. 생성자 인수가 여러 개라면 Javascript 파일에 이를 넣고 --constructor-args 매개변수를 사용할 수 있습니다. 이 예제에서는 npx hardhat verify --constructor-args arguments.js --network neox-t4 0x769427b5A043b4aB2f4c31A7Da819526F3B0d181와 같이 실행하며, arguments.js 파일에는 다음 코드가 포함됩니다:

module.exports = [
  "Hello World!"
];

단계 4: 검증된 컨트랙트와 상호작용하기

이제 컨트랙트가 검증되었으므로 탐색기의 컨트랙트 탭은 다음과 같이 보일 것입니다:

이제 컨트랙트 읽기컨트랙트 쓰기 두 개의 탭이 표시됩니다.

읽기 부분에서는 컨트랙트에 저장된 현재 메시지를 확인할 수 있습니다. 이는 이전 튜토리얼 끝에 넣은 NeoX는 최고의 체인입니다.입니다.

쓰기 부분에서는 메시지를 입력하고 쓰기 버튼을 클릭하여 탐색기가 Metamask 지갑에서 서명할 트랜잭션을 생성하도록 할 수 있습니다.

읽기 부분으로 돌아가면 메시지가 변경된 것을 확인할 수 있습니다.

이제 컨트랙트를 탐색기에서 검증하는 것이 왜 중요한지 알 수 있습니다. 이는 사람들이 컨트랙트를 더 신뢰할 수 있게 하며, 코드를 작성하지 않고도 누구나 쉽게 상호작용할 수 있게 합니다.

단계 5: 메인넷으로 전환하기

메인넷에서 컨트랙트에 대해 동일한 작업을 하려면 구성에 NeoX 메인넷 체인을 추가해야 합니다. 다음과 같이 설정합니다:

require("dotenv").config();
require("@nomicfoundation/hardhat-toolbox");
require("@nomicfoundation/hardhat-verify");

const { NEOX_PK, NEOX_MAINNET_PK } = process.env;

module.exports = {
    solidity: {
      version: "0.8.26",
      settings: {
        optimizer: {
          enabled: true,
          runs: 200,
          details: {
            yul: false,
          },
        },
      }
    },
    networks: {
        'neox-t4': {
            url: 'https://neoxt4seed1.ngd.network',
            accounts: [${NEOX_PK}],
            gasPrice: 40e9,
            gas: 50e6,
        },
        'neox': {

이 구성에서는 메인넷에 다른 개인 키를 사용하므로 .env 파일에도 이를 추가해야 합니다. 테스트넷과 메인넷에 다른 지갑을 사용하면 잘못된 체인을 선택하는 실수를 피할 수 있습니다.

이제 테스트넷에서 했던 모든 작업을 동일하게 수행하되, 네트워크 매개변수를 neox-t4(테스트넷 체인)에서 neox(메인넷 체인)로 변경하면 됩니다:

npx hardhat verify --network neox 0x769427b5A043b4aB2f4c31A7Da819526F3B0d181 "Hello World!"

결론

축하합니다! NeoX 체인에서 Hello World 컨트랙트를 성공적으로 검증했습니다. 요약하자면, 다음을 배웠습니다:

  • 컨트랙트의 플래튼 코드 생성 방법
  • 탐색기를 사용하여 컨트랙트 검증 방법
  • hardhat-verify 플러그인을 사용하여 컨트랙트 검증 방법
  • 검증된 컨트랙트와 탐색기에서 상호작용하는 방법
  • 메인넷 구성 추가 방법
profile
스마트 이코노미를 위한 퍼블릭 블록체인, 네오에 대한 모든것

0개의 댓글