티스토리 뷰
opensea 및 NFT market 매매 흐름(setApprovalForAll, safeTransferFrom)
_April 2022. 7. 22. 17:271. 매도자가 매도 신청을함.
오픈씨는 이때 setApprovalForAll 에 대한 허가를 매도자에게 받음
https://etherscan.io/tx/0x89b6b30c30f05a56daeb1d499ce8e57ffec1522cc9cfdf138453154066a316c5
2. 시간이 지나 매수자가 매수 신청을함.
이때 opensea의 Seaport contract와 상호작용을 하게된다. opensea에 이더리움을 보내고, 수수료를 떼고, 대금을 매도자에게 보내는것을 볼 수 있다.
대금지불이 완료되면 오픈씨는 Transfer() 함수를 통해 매도자의 NFT 를 매수자에게 보낸다.
리스팅을 올렸다고 NFT를 오픈씨가 가져가거나 사용을 제한하지 않는다
setApprovalForAll 하나만 활성화할뿐..
오픈씨에 등록이 되어있는건 그냥 웹2.0적인 리스팅이기 때문에
매도자는 그 NFT를 팔겠다고 해놓고 실제로는 burn 할수도있고 transfer 도 할수있다.
물론 이런 invalid 한 NFT 는 매수시 당연히 실패할것이고,
오픈씨가 서버상황이 원활하다면 금방 매도 리스팅에서 제거되기 때문에
실제로 큰문제는 생기지 않는다.
https://etherscan.io/tx/0x7110f12c3a13f039affb946b14c29c4b0b3a44c8689278f6885c5f30f2b0791b
트랜젝션을 일으킨것은 매수자이므로 매수자의 지갑에 nonce 가 생성된다.(Nonce: 2455)
정리해보니 단순한데 이해하기 힘들었음..
'dev > Solidity' 카테고리의 다른 글
solidity 에러 - stack too deep (0) | 2022.08.24 |
---|---|
[Solidity]String 과 용량, 가스비 (0) | 2022.07.29 |
Storing Structs is costing you gas (0) | 2022.06.20 |
interact with existing deployed contracts, raw calls (0) | 2022.06.16 |
Hardhat vs Truffle (0) | 2022.06.02 |