Deploy NFTs

NFT 배포

이 문서는 이 블로그를 참고하여 작성되었습니다.

이 튜토리얼에서는 NFT(Non-Fungible Token)를 생성하고 공개 테스트넷에 배포할 것입니다.

ERC721은 부동산이나 수집품과 같이 각 토큰이 고유한 대체 불가능한 토큰 의 소유권을 나타내는 표준입니다 .

OpenZeppelin 계약에서 Presets을 사용 하여 ERC721을 만들고 Truffle을 사용하여 배포합니다.

환경 설정

우리는 새로운 프로젝트를 만드는 것으로 시작합니다.

$ mkdir mynft && cd mynft
$ npm init -y

그런 다음 ERC721 이 구현된 OpenZeppelin Contracts를 설치합니다.

$ npm i --save-dev @openzeppelin/contracts

다음으로 배포용 개발 도구를 설치합니다. 이 자습서에서는 Truffle 하용하지만 Remix 또는 OpenZeppelin CLI 와 같은 다른 도구를 사용할 수도 있습니다 .

$ npm i truffle

스마트 컨트랙트 Artifacts 가져오기

명령어 truffle init 이것을 사용하여 프로젝트를 구성할 것입니다.

$ npx truffle init
Starting init...
================

> Copying project files to

Init successful, sweet!

우리는 Preset ERC721PresetMinterPauserAutoId를 사용할 것입니다. 이것은 발행, 일시 중지, 소각기능이 포함되어있는 ERC721입니다. Preset 계약은 이미 컴파일되었으므로 아티팩트만 build/contracts 디렉터리에 복사하면 됩니다.

migrations 폴더안에 편집기를 사용 하여 다음 내용으로 파일 2_deploy.js를 생성합니다.

로컬 블록체인에 컨트랙트 배포

개발을 위해 truffle develop를 사용합니다.

마이그레이션을 사용하여 새로운 NFT를 개발 블록체인에 배포할 수 있습니다.

그런 다음 배포된 계약을 사용할 수 있습니다.

토큰과 상호 작용

truffle develop를 시작할 때 사용할 수 있는 계정이 표시되었습니다

토큰 메타데이터

name, symbol, baseURI 와 같은 토큰 메타데이터를 읽기 위해 계약을 호출할 수 있습니다

민트

발행자 역할이 있는 계정에서 지정된 계정으로 토큰을 발행하는 트랜잭션을 보낼 수 있습니다. 우리의 경우 발행자 역할이 부여된 토큰을 배포한 계정에서 발행합니다.

토큰 ID가 0인 NFT 1개를 발행합니다.

토큰의 소유자와 메타데이터에 대한 토큰 URI를 확인할 수 있습니다.

메타데이터

EIP-721 각 tokenID에 대하여 name, symbol, tokenURI가 포함된 메타데이터 확장이 있으며 tokenURI는 name, description, image 가 포함된 JSON 파일을 가리킵니다.

이 메타데이터를 만들고 호스팅하는 방법은 사용자에게 달려 있습니다. 필요에 따라 이동할 수 있도록 데이터를 호스팅하는 위치를 가리키도록 제어하는 도메인을 사용하는 것이 좋습니다.

이 자습서에서는 가짜 JSON 서버를 통해 액세스할 수 있는 GitHub 리포지토리에 단일 JSON 파일을 저장할 수 있는 My JSON Server 를 사용합니다.

경고 프로덕션을 위해 토큰 수명 동안 존재할 수 있는 영구 위치에 메타데이터를 저장해야 합니다.

A sample JSON for tokenID 1 is: http://my-json-server.typicode.com/huangsuyu/nft/tokens/1

테스넷에 배포하기

다음으로 우리는 BizNet testnet에 배포할 것입니다. 배포하기 위해 Truffle을 사용하여 공개 테스트 네트워크에 연결하기 위한 지침을 사용합니다.

다음이 필요합니다.

  • 테스트넷의 RPC URL

  • @truffle/hdwallet-provider installed

  • truffle-config.js를 테스트넷용으로 설정하기

  • 자금 지원 테스트넷 계정 및 니모닉

  • secrets.json 또는 다른 비밀 관리 솔루션입니다. 이것을 GitHub에 커밋하지 않았는지 확인하십시오!

truffle-config.js는 다음과 같습니다.

BizNet 테스트넷에 배포

민트

발행자 역할이 있는 계정에서 지정된 계정으로 토큰을 발행하는 트랜잭션을 보낼 수 있습니다.

우리의 경우 발행자 역할이 부여된 토큰을 배포한 계정에서 발행합니다. 구성된 계정을 보려면 명령 accounts 을 실행하십시오

토큰 ID가 1인 NFT 1개를 발행합니다. 토큰 보유자가 될 주소를 지정합니다 ("0xc7e4bBc4269fdC62F879834E363173aeE7895F45")내 테스트 계정 중 하나임.

Last updated