[CloseSea] NFT거래 권한 이슈
·
팀프로젝트/close_sea
개인끼리 거래를 할때 NFT소유자가 구매자에게 직접 보내주는건 approve에 상관없이 가능하다. 하지만 거래소를 이용하여 거래를 하려고 하면 거래소에게 NFT를 옮길 권한을 줘야 한다. 나는 NFT 민팅 컨트랙트와 거래 컨트랙트를 따로 만들어 사용했다. 하지만 ERC721에 있는 setApprovalForAll 함수를 통해 거래컨트랙트에 권한을 줘도 거래가 되지 않았다. 이유는 msg.sender에 있었다. msg.sender는 그 함수를 호출한 주소가 들어간다. NFT거래 컨트랙트에서 NFT민팅 컨트랙트에 있는 setApprovalForAll 함수를 실행하면 msg.sender로 NFT컨트랙트가 들어간다. 이를 수정하기 위해 front에서 client가 바로 setApprovalForAll 함수를 호..