본문 바로가기
프로그래밍/solidity

[220516] Remix와 연결해서 민팅하는 방법 / 오픈제플린, 솔리디티

by 한코코 2022. 5. 16.

민팅하는법

솔리디티(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번을 부여하려고하면 오류가 생긴다.

댓글