[CloseSea] NFT거래 권한 이슈

2022. 12. 28. 12:14·팀프로젝트/close_sea
728x90
반응형

개인끼리 거래를 할때 NFT소유자가 구매자에게 직접 보내주는건 approve에 상관없이 가능하다.

하지만 거래소를 이용하여 거래를 하려고 하면 거래소에게 NFT를 옮길 권한을 줘야 한다.

나는 NFT 민팅 컨트랙트와 거래 컨트랙트를 따로 만들어 사용했다.

하지만 ERC721에 있는 setApprovalForAll 함수를 통해 거래컨트랙트에 권한을 줘도 거래가 되지 않았다.

이유는 msg.sender에 있었다.

 

msg.sender는 그 함수를 호출한 주소가 들어간다.

NFT거래 컨트랙트에서 NFT민팅 컨트랙트에 있는 setApprovalForAll 함수를 실행하면

msg.sender로 NFT컨트랙트가 들어간다.

이를 수정하기 위해 front에서 client가 바로 setApprovalForAll 함수를 호출하도록 수정했더니 정상적으로 거래가 되었다.

출처 : https://intrepidgeeks.com/tutorial/learn-about-setapprovalforall-in-erc721

 

출처 : https://intrepidgeeks.com/tutorial/learn-about-setapprovalforall-in-erc721

결론 : setApprovalForAll을 승인하면 승인한 주소에서 내 NFT를 마음대로 보낼수 있다.

728x90
반응형

'팀프로젝트 > close_sea' 카테고리의 다른 글

[CloseSea] aws 배포 이슈  (0) 2022.12.28
[CloseSea] ERC721 tokenURI 연결 이슈  (0) 2022.12.28
[CloseSea] 지갑연결 버튼  (0) 2022.12.28
[CloseSea] 스마트 컨트랙트  (1) 2022.12.27
[CloseSea] swap페이지 만들기  (0) 2022.12.27
'팀프로젝트/close_sea' 카테고리의 다른 글
  • [CloseSea] aws 배포 이슈
  • [CloseSea] ERC721 tokenURI 연결 이슈
  • [CloseSea] 지갑연결 버튼
  • [CloseSea] 스마트 컨트랙트
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    mysql
    html
    node
    30일 챌린지
    블록체인
    하이퍼레저
    js
    30일챌린지
    CSS
    명령어
    프로그래머스
    go
    컨테이너
    nodejs
    node.js
    ERC721
    도커
    erc20
    go언어
    React
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[CloseSea] NFT거래 권한 이슈
상단으로

티스토리툴바