BlockChain

(BlockChain) IERC721 구현

JJeongHyun 2023. 3. 11. 14:09
반응형

https://developerjjh.tistory.com/171

 

(BlockChain) IERC721Metadata 구현

interface IERC721Metadata.sol 전체 코드 // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; interface IERC721Metadata { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenU

developerjjh.tistory.com

interface IERC721 코드

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

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

  function balanceOf(address _owner) external view returns (uint balance);

  function ownerOf(uint _tokenId) external view returns (address owner);

  function transferFrom(address _from, address _to, uint _tokenId) external;

  function approve(address _to, uint _tokenId) external;

  function setApprovalForAll(address _operator, bool _approved) external;

  function getApproved(uint _tokenId) external view returns (address _operator);

  function isApprovedForAll(
    address _owner,
    address _operator
  ) external view returns (bool);
}
  • function balanceOf(address _owner) : 소유자(_owner)의 토큰 총개수를 조회하는 함수

  • function ownerOf(uint _tokenId) : 토큰 소유자 조회, _tokenId를 소유하고 있는 주소를 반환

  • function transferFrom(address _from, address _to, uint _tokenId) : 토큰을 전송하는 함수
    • _from에서 _to로 _tokenId를 전송
  • function approve(address _to, uint _tokenId) : 토큰 하나에 대한 권한 위임, 토큰 하나에 대해 대리인을 선정(위임)하는 함수

  • function setApprovalForAll(address _operator, bool _approved) : 모든 토큰에 대한 권한을 위임 설정(취소할 수도 있다)
    • _operator에게 모든 토큰에 대한 위임을 받을 대리인, bool 값에 따라 대리인을 시키거나 취소할 수 있다
  • function getApporved(uint _tokenId) view returns (address _operator)  :   토큰에 대한 권한을 위임받은 계정 (대리인)
    • _tokenId에 대한 권한을 위임 받은 계정(대리인)을 반환한다
  • function isApporvedForAll(address _owner, address _operator) external view returns (bool) : 모든 토큰에 대해 권한을 위임했는지 bool 값을 반환
    • 소유자 계정(_owner)이 소유하고 있는 모든 토큰의 대리이(_operator)인지 bool값으로 확인하는 용도로 사용