작성자 : Chainlink 2023년 7월 12 일
개요
난이도: 초급/중급
예상 완료 시간: 60분
이 튜토리얼에서는 Remix를 사용하여 Polygon Mumbai 테스트넷에 스마트 계약을 배포하는 방법을 배웁니다. 이 스마트 계약은 USD로 표시된 ETH 가격을 기반으로 동적으로 업데이트되는 NFT를 생성합니다.
아래에서 이를 수행하는 방법에 대한 단계별 지침을 찾을 수 있습니다.
1. 메타마스크 지갑 생성
2. Polygon Mumbai 테스트넷에서 자금 확보
3. Chainlink VRF 구독 생성
4. Remix를 사용하여 동적 NFT(dNFT) 스마트 계약 배포
5. dNFT 스마트 계약을 VRF 소비자로 추가
6. Chainlink 자동화로 NFT 자동화
7. OpenSea에서 NFT 보기 및 상호 작용
1단계: 메타마스크 지갑 생성
참고: 이미 MetaMask 지갑(또는 다른 지갑)이 있는 경우 이 단계를 건너뛰십시오.
MetaMask 지갑을 생성하려면 https://metamask.io/를 방문하여 지침에 따라 지갑을 생성하십시오.
2단계: Polygon Mumbai 테스트넷 자금 확보
A) https://faucets.chain.link/mumbai 로 이동합니다.
B) 오른쪽 상단의 "지갑 연결"을 클릭합니다.
C) Polygon Mumbai와 처음 상호 작용하는 경우 MetaMask에서 "이 사이트에서 네트워크를 추가하도록 허용하시겠습니까?"라는 메시지가 표시되면 "승인"을 클릭하십시오.
D) "네트워크 전환"을 클릭합니다.
E) "I am human" 체크박스를 체크하고 captcha를 완성합니다.
F) "요청 보내기"를 클릭합니다.
G) 트랜잭션이 완료될 때까지 기다립니다.
축하해요! 테스트넷 Polygon Mumbai MATIC 및 테스트넷 LINK를 성공적으로 신청하고 받았습니다.
축하해요! 테스트넷 Polygon Mumbai MATIC 및 테스트넷 LINK를 성공적으로 신청하고 받았습니다.
참고: Chainlink 수도꼭지의 테스트넷 MATIC을 모두 사용한 경우 Polygon Mumbai 수도꼭지를 사용하여 테스트넷 MATIC을 받으십시오. 테스트넷 LINK를 받으려면 여전히 Chainlink 수도꼭지를 사용해야 합니다.
3 단계 : VRF 구독 생성
dNFT 스마트 계약을 배포하기 전에 먼저 VRF 구독을 생성합니다. 계약에서 난수를 생성할 때 사용하는 현금 양동이라고 생각하세요. 스마트 계약을 배포하려면 구독 ID가 필요합니다.
A) https://vrf.chain.link/mumbai 로 이동합니다.
B) 오른쪽 상단의 "지갑 연결"을 클릭합니다.
C) "구독 만들기"를 클릭합니다.
D) "구독 만들기"를 다시 클릭합니다.
E) MetaMask 프롬프트가 나타납니다. "서명"을 클릭합니다.
F) MetaMask에서 "확인"을 클릭하고 트랜잭션이 확인될 때까지 기다립니다.
G) 거래가 확인되고 구독이 생성되면 "자금 추가"를 클릭합니다.
H) "자금 추가(LINK)" 입력란에 2개의 LINK를 추가한 후 "자금 추가"를 클릭합니다.
I) MetaMask에서 트랜잭션을 확인합니다.
축하해요! VRF 구독을 성공적으로 생성하고 테스트넷 LINK로 자금을 조달했습니다. 다음 단계에서 VRF 구독에 대해 논의할 것입니다.
4 단계 : Remix 에 동적 NFT 스마트 계약 배포
Remix는 Ethereum 블록체인에서 스마트 계약을 개발하고 테스트하는 전용 온라인 통합 개발 환경(IDE)입니다. 이더리움 스마트 계약 작성, 컴파일, 배포 및 디버깅을 위한 사용자 친화적인 인터페이스와 강력한 도구 세트를 제공합니다.
이 단계에서는 새 Remix 작업 영역을 만들고 스마트 계약을 배포하는 방법을 배웁니다. 걱정하지 마십시오. 스마트 계약은 이미 작성되어 있으므로 복사하여 붙여넣기만 하면 됩니다.
이 단계에서는 새 Remix 작업 영역을 만들고 스마트 계약을 배포하는 방법을 배웁니다. 걱정하지 마십시오. 스마트 계약은 이미 작성되어 있으므로 복사하여 붙여넣기만 하면 됩니다.
A) https://remix.ethereum.org/ 로 이동합니다.
나) 화면 왼쪽 상단의 "+" 아이콘을 클릭하여 새로운 워크스페이스를 생성합니다.
C) 새 작업 공간의 이름을 입력하고 확인을 클릭합니다.
D) 왼쪽 사이드바에서 "계약"을 마우스 오른쪽 버튼으로 클릭하고 "새 파일"을 클릭합니다.
E) 파일 이름을 "demo.sol" 또는 원하는 다른 이름으로 지정하고 Enter 키를 누릅니다.
F) 이 코드를 복사합니다.
// SPDX-라이센스-식별자: MIT
// 이것은 데모용이며 프로덕션에 사용하면 안 됩니다!
pragma solidity ^0.8.10;
// 다른 계약 가져오기
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
// 다른 계약 가져오기
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URISTorage.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
import "@openzeppelin/contracts/utils/Base64.sol";
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
import "@chainlink/contracts/src/v0.8/interfaces/VRFCoordinatorV2Interface.sol";
import "@chainlink/contracts/src/v0.8/VRFConsumerBaseV2.sol";
// ERC721, ERC721URStorage 및 VRFConsumerBaseV2에서 상속되는 SuperDynamicNFT 계약 정의
계약 SuperDynamicNFT는 ERC721, ERC721URIStorage, VRFConsumerBaseV2 {
// ETH 가격 및 해당 이모티콘 추적을 위한 상태 변수
int256 이전 EthPrice = 0;
문자열 ethIndicatorUp = 유니코드"
G) Remix로 돌아가서 코드를 새로 만든 demo.sol 파일에 붙여넣습니다.
참고: 많은 코드를 붙여넣고 있다는 팝업 경고가 표시될 수 있습니다. 확인을 클릭합니다.
H) 왼쪽 사이드바에서 "Solidity Compiler" 아이콘을 클릭합니다.
I) "demo.sol 컴파일"을 클릭합니다.
I) "demo.sol 컴파일"을 클릭합니다.
J) 왼쪽 사이드바에서 "배포 및 트랜잭션 실행" 아이콘을 클릭합니다.
K) "Environment" 드롭다운 메뉴를 클릭하고 "Remix VM (Shanghai)"에서 "Injected Provider - MetaMask"로 변경한 다음 MetaMask의 안내에 따라 지갑을 연결합니다.
L) Polygon Mumbai 블록체인에 스마트 계약을 배포하기 전에 이전 단계에서 만든 VRF 구독의 구독 ID가 필요합니다. https://vrf.chain.link/mumbai 로 돌아가 방금 생성한 VRF 구독의 ID를 기록해 둡니다. 귀하의 ID는 예시에 있는 것과 다를 것입니다. 먼저 계약서에 구독에 대한 인식을 부여해야 합니다. 이후 단계에서 구독이 계약을 인식하도록 합니다.
M) Remix에서 주황색 "배포" 버튼 옆에 있는 입력 상자에 구독 ID를 입력합니다.
N) "배포"를 클릭하고 메타마스크에서 트랜잭션을 확인합니다.
O) 화면 아래 콘솔에 녹색 체크 표시가 보이면 축하합니다! 계약을 Polygon Mumbai 블록체인에 성공적으로 배포했습니다!
5 단계 : VRF 구독 에 소비자 추가
축하해요! Polygon Mumbai 블록체인에 스마트 계약을 성공적으로 배포했습니다! 스마트 계약을 성공적으로 배포했습니다. 이제 3단계에서 생성한 VRF 구독에 스마트 계약을 소비자로 추가할 차례입니다.
A) Remix에서 계약 주소를 복사합니다.
B) https://vrf.chain.link/mumbai 로 이동하여 오른쪽 상단의 "지갑 연결"을 클릭하여 지갑을 연결합니다. 지갑이 이미 연결되어 있으면 이 단계를 건너뛸 수 있습니다.
C) 3단계에서 생성한 구독 ID를 클릭합니다. "내 구독"에서 구독을 찾을 수 있습니다.
D) "소비자 추가"를 클릭합니다.
E) "소비자 주소" 입력란에 계약 주소를 붙여넣습니다. 이렇게 하면 배포하는 계약에 대해 구독에 알릴 수 있습니다.
F) "소비자 추가"를 클릭하고 MetaMask의 프롬프트를 따릅니다.
G) 거래가 확인되면 "닫기"를 클릭하고 페이지를 새로 고칩니다. 구독에 추가되는 아래 이미지와 같이 소비자가 표시되면 이 단계를 성공적으로 완료한 것입니다.
6단계: Chainlink 자동화를 사용하여 NFT 자동화
이 단계에서는 Chainlink 자동화를 사용하여 NFT의 배경색과 표현을 동적으로 업데이트하는 시간 기반 유지 관리를 생성합니다.
A) https://automation.chain.link/mumbai 로 이동하여 오른쪽 상단의 "지갑 연결"을 클릭하여 지갑을 연결합니다. 지갑이 이미 연결되어 있으면 이 단계를 건너뛸 수 있습니다.
A) https://automation.chain.link/mumbai 로 이동하여 오른쪽 상단의 "지갑 연결"을 클릭하여 지갑을 연결합니다. 지갑이 이미 연결되어 있으면 이 단계를 건너뛸 수 있습니다.
B) "새 유지보수 등록"을 클릭합니다.
C) "시간 기반"을 선택합니다.
D) 계약 주소를 붙여넣고 "다음"을 클릭합니다(계약 주소를 찾는 데 도움이 필요한 경우 5A단계 참조).
E) "ABI를 가져올 수 없습니다. 별도의 탭에서 Remix로 돌아가서 왼쪽 사이드바에서 "Solidity compiler" 탭을 선택합니다.
F) "계약" 드롭다운 메뉴에서 계약을 선택하고 "ABI 복사" 버튼을 클릭합니다.
F) "계약" 드롭다운 메뉴에서 계약을 선택하고 "ABI 복사" 버튼을 클릭합니다.
G) 유지 관리 등록으로 돌아가 입력 상자에 ABI를 붙여넣고 "다음"을 클릭합니다.
H) "Objective Function"에서 "requestRandomWords"를 선택하고 "Next"를 클릭합니다.
I) "일정 지정"에서 다음 CRON 표현식을 입력하여 2분마다 NFT의 새 배경색을 생성합니다: */2 * * * * .
J) "다음"을 클릭합니다.
K) 유지 관리에 이름을 지정하고(예: 동적 NFT 데모) 시작 잔액을 2LINK로 입력합니다.
L) "Register Upkeep"을 클릭하고 트랜잭션을 승인하여 MetaMask에서 CRON 작업 계약을 배포합니다.
L) "Register Upkeep"을 클릭하고 트랜잭션을 승인하여 MetaMask에서 CRON 작업 계약을 배포합니다.
M) 트랜잭션이 승인되면 MetaMask는 두 번째 트랜잭션 "시간 기반 유지 관리 등록 요청"을 확인하라는 메시지를 표시합니다.
N) 트랜잭션이 확인될 때까지 기다린 후 "유지 보수 보기"를 클릭합니다.
O) 새로 생성된 점검 상태에 "활성화"가 표시되면 이 단계를 성공적으로 완료한 것입니다. 축하해요!
7 단계 : OpenSea 에서 NFT 보기
A) https://testnets.opensea.io/ 로 이동하여 오른쪽 상단의 드롭다운 메뉴에서 "프로필"을 선택합니다.
B) 아래와 같이 지갑을 연결합니다. OpenSea와의 거래에 서명해야 할 수도 있습니다.
C) 프로필에서 "ETH Watching SVG"라고 표시된 NFT를 클릭합니다.
D) 오른쪽 상단 모서리에 있는 세 개의 점을 클릭하고 "Refresh Metadata"를 선택합니다.
E) 30초간 기다린 다음 페이지를 새로고침하면 새로 생성된 dNFT가 표시됩니다!
축하해요! 튜토리얼을 완료했습니다. 구독 자금이 소진될 때까지 2분마다 NFT가 ETH 가격을 확인하고 새로운 배경색을 요청합니다. 다음에 메타데이터를 새로 고치면 다른 내용이 표시됩니다.
결론적으로
여기까지 왔다면 축하합니다! Polygon Mumbai Testnet에 동적으로 업데이트되는 NFT를 성공적으로 배포했습니다. 이 NFT는 Chainlink 가격 피드를 사용하여 이더리움 가격을 추적하고, Chainlink VRF를 사용하여 임의의 배경색을 선택하고, Chainlink 자동화를 사용하여 2분마다 이미지를 업데이트합니다.
모든 댓글