민팅하는법
솔리디티(Solidity) : 이더리움 등 블록체인 플랫폼에서 스마트 계약 작성과 구현에 사용되는 계약 지향 프로그래밍 언어
차크라(Chakra) : Microsoft가 자체적으로 사용하고 있던 JavaScript 엔진.
오픈제플린(oz) : 솔리디티 기반의 스마트 컨트렉트를 개발하는 표준 프레임워크. truffle과 유사하지만, truffle 보다 기능이 다양함.
// 제플린 설치
$ npm i @openzeppelin/contracts
// remix 라이브러리 설치
$ npm install -g @remix-project/remixd
// remix 실행
$ remixd -s . --remix-ide https://remix.ethereum.org
// remix 삭제
$ npm uninstall -g remixd
MintAnimalToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
contract MintAnimalToken is ERC721Enumerable {
constructor() ERC721("h662Animals", "HAS") {}
function mintAnimalToken() public {
uint256 animalTokenId = totalSupply() + 1;
//지금까지 민팅(발행)된 nft의 양
_mint(msg.sender, animalTokenId);
}
}
연결이 되었다면 https://remix.ethereum.org/에 접속한다.
정상적으로 연결이 되었다면 connect to localhost를 클릭하면 비쥬얼코드에서 작업한 디렉토리와 똑같은 디렉토리가 사이트에 뜬다.
코드에도 오류가 없다면 컴파일러에 초록색 체크 아이콘이 뜬다.
만약 뜨지 않는다면 Auto compile에 체크표시가 되어있는지 확인한다.
> MINTANIMALTOKEN을 클릭하면 제플린 기본설정으로 생성된 버튼들이 나타난다.
mintAnimalTo...(민팅버튼)를 클릭할때 초록색 체크표시가 나타난 코드가 나타난다면 정상적으로 작동하고있다는 뜻이다.
민팅을 한번 실행했으므로 OwnerOf을 클릭후 tokenId에 1을 입력한 후 call을 클릭하면 주소값이 밑에 뜬다.
민팅했던 account 번호와 주소가 같다는것을 알 수 있다.
즉, A계정으로 민팅한 첫번째 개체의 주인(Owner of)은 A라는 것을 알 수 있다.
이 주소값은 위 코드에서 작성했던 msg.sender 값이다.
민팅을 한번밖에 실행했으므로 개체는 한개다. (1번)
민팅을 한번 더 하지 않는한 번호 2번은 생성되지 않는다. 억지로 2번을 부여하려고하면 오류가 생긴다.
'프로그래밍 > solidity' 카테고리의 다른 글
[220517] 리액트와 메타마스크 연결하기 (0) | 2022.05.17 |
---|---|
[220517] frontend 설치 / chakra-ui (0) | 2022.05.17 |
[220516] nft 구매기능 만들기 (0) | 2022.05.16 |
[220516] nft 판매등록하기 / 오픈제플린, 솔리디티 (0) | 2022.05.16 |
[220516] 민팅에 type을 랜덤으로 생성하기 (0) | 2022.05.16 |
댓글