[강의정리] D.P. 디앱 프로젝트(NFT 생성,민팅)

김재만·2022년 7월 19일
0

NFT프로젝트

목록 보기
1/3

사내 프로젝트에서 데이터를 NFT화하여 일반 유저에게 데이터를 판매할 기회를 제공하고, 데이터가 필요한 곳에 구매할 기회를 제공하는 것으로 방향이 잡혔다. 블록체인 관련 기술을 작성한 개발자는 없으니, 클론코딩부터 시작해 맨땅에 헤딩 시작이다.

Dapp이란?

탈중앙화 애플리케이션(Decentralized Application)의 약자로 블록체인 플랫폼을 기반으로 작동하는 앱을 말한다.

사용할 기술

SOLIDITY - 블록체인 스마트 컨트랙트 작성
openZeppelin - 블록체인 필요 기능 보조
React - 프론트엔드 작성
chakra - 간단한 UI 생성
W3.JS - SOLIDITY와 React 연결

토큰 생성과 민트

  • 강의에 없던 내용

    • Soldity 확장 설치하기

    • 오픈제플린 내부 경로 차이 있음

    • remixd 설치 CLI 오류

    • yarn global add @remix-project/remixd으로 하면 이상 없음!

ERC721

ERC(Ethereum Request for Comment)란, 새로운 이더리움 기술을 제시하고 비평을 기다리기 위해 공개된 문서이다. ERC721은 대체 불가한 토큰(NFT)의 표준을 정의한 문서다.

ERC721의 표준 소스코드

pragma solidity ^0.4.20;

interface ERC721 {
  event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
  event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
  event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

  function balanceOf(address _owner) external view returns (uint256); // 해당 주소가 보유하고있는 nft갯수를 리턴
  function ownerOf(uint256 _tokenId) external view returns (address); // nft를 소유하고 있는 주소를 리턴
  function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
  function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; // 전송받는 to 주소가 erc721토큰을 받을수 있는지 체크하고 전달
  function transferFrom(address _from, address _to, uint256 _tokenId) external payable; // nft 소유자로부터 해당 nft를 다른 주소로 전송 
  function approve(address _approved, uint256 _tokenId) external payable; // 해당 주소에 nft 전송 권한을 부여
  function setApprovalForAll(address _operator, bool _approved) external; // nft 소유자가 해당 주소에게 모든 nft 에 대한 전송 권한 부여 및 해제
  function getApproved(uint256 _tokenId) external view returns (address); // 해당 토큰의 전송 권한을 갖고 있는 주소를 리턴
  function isApprovedForAll(address _owner, address _operator) external view returns (bool); // setApprovealForAll 의 권한이 있는지 true, false 리턴
}

interface ERC165 {
  function supportsInterface(bytes4 interfaceID) external view returns (bool);
}

Remix

구동코드 경로설정 및 로컬호스팅 : remixd -s . --remix-ide https://remix.ethereum.org


오류가 났다..? 뭐지


배포는 정상적으로 이루어진듯..

마무리

NFT로 대박 가즈아

profile
듣는 것을 좋아하는 개발자입니다

0개의 댓글