안녕하세요!^^
오늘은 BNB Challengers 강의 3일차, 실습강의로
PFP 프로젝트를 직접 만들어 가면서 스마트 컨트랙트를 공부해보는 수업이었습니다!
h662 선생님이 멋진 강의를 진행해주셨습니다!!^^
강의 내용을 이해하며 정리해보았습니다!
스마트 컨트랙트는 계약이다!!!
하지만 이 용어때문에 비탈릭은 후회한다는 트윗을 했었다!!
EVM이란?
이더리움 가상머신!! (Ethereum Virtual Machine)
솔리디티로 스마트 컨트랙트 작성 →
이더리움이 이해할 수 있는 바이트코드로 컴파일 →
블록체인에 입력!
블록체인을 EVM vs 비 EVM으로 나눌수 있다~!!
EVM | 비 EVM |
이더리움, BNB, 폴리곤, 클레이트 등등 | 솔라나, 폴카닷 |
강의 주제인 BNB와 ETH의 차이는??
- ETH는 여전히 수수료가 비싼 단점이있다
- 게임사가 가장 좋아하는 체인이 BNB로 뽑혔다
> 안정적이고, Transaction 이 많이 발생해도 수수료가 싸다
[실습] BNB 테스트넷을 먼저 연결해보자!!
참고! : https://growingsaja.tistory.com/728
Open Zeppelin : 스마트컨트렉트에서 사용되는 Standard
Remix IDE에 들어가보아요!
에서 Online IDE로!!
실습 시작!!!
workspace에서 MintNFT.sol을 만들어준다!!
저작권 버젼, solidity 버젼을 입력하고! MintNFTcontract를 만들자
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract MintNFT { }
여기서 잠깐!! OpenZeppelin (https://www.openzeppelin.com/contracts) 에 접속해보아요!
우리는 "IERC721Enumerable" 를 사용해볼것 입니다!!
https://docs.openzeppelin.com/contracts/4.x/api/token/erc721#ERC721Enumerable
그래서 import 문을 추가해줘오!!
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
construct는 함수와 비슷한, 특별한 함수로 이해하면 된다
> 배포하는 시점에만 한번 실행되는것!!
constructor() ERC721("원숭이요트클럽", "BAYC") {}
>> 요로케!! 티커랑 설명이 들어간다!!
이제 배포가능! 그렇지만 민트함수 하나만 더 추가해보자!!
누가?? 민팅하는 사용자가~!! msg.sender
민팅할때마다 번호가 달라야하는데1! 어떻게할까~?
ERC721Enumerable에 이미 그 기능이있다!!
이렇게해서!! 결국 코드가 완성되었습니다!!
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
contract MintNFT is ERC721Enumerable {
constructor () ERC721("drfirstProject","DRF") {}
function mintNFT() public {
uint tokenId = totalSupply() + 1;
_mint(msg.sender, tokenId);
}
}
이제, 배포해볼까요!!!??
(위에서 했던 메타마스크 연결이 필수입니다!!)
배포 성공!!
이제 보면요!~~
민팅을 해보아요!!
성공!!!!
주황색 함수는 메타마스크 지갑이 게속 열리고(가스비가 사용)
남색함수는 바로 실행됨(가스비 미사용)
마지막으로 민팅한 NFT를 Opensea(testnet)에서 확인해봐요!!!
(https://testnets.opensea.io/)
'블록체인 > 블록체인' 카테고리의 다른 글
[BNB Challengers 4일차] Smart Contract에 이미지를 포함하여 NFT 민팅 + Opensea에서 확인하기! (0) | 2022.11.12 |
---|---|
간단한 스마트컨트랙트 실습!! (0) | 2022.11.11 |
분산신원과 자기주권신원(2022.09.24) (0) | 2022.09.24 |
블록체인 전문가(2급) 요점정리노트!!! (0) | 2022.09.03 |
블록체인 개발자는 어떻게 나뉠까? (0) | 2022.08.16 |
댓글