• 카테고리

    질문 & 답변
  • 세부 분야

    블록체인

  • 해결 여부

    해결됨

SnowmenSales.sol 파일의 buyItem 함수에 대해 질문이 있습니다.

23.05.29 15:52 작성 23.05.29 15:53 수정 조회수 217

0

token 을 transfer 할 때,
address(this) 와 owner() 의 개념이 혼란스럽습니다.

buyer 가 amount 를 지불 할 때 owner() 를 쓴 것은 이해가 됩니다만,

snowmenToken.safeTransferFrom(buyer, owner(), amount);

아래처럼 snowmenGame 에서 token 을 transfer 할 때는 address(this) 를 사용하는 이유는 무엇인가요?

snowmenGame.safeTransferFrom(address(this), buyer, tokenId, quantity, "");

owner() 와 address(this) 가 각각 주소값이 다른데,
snowmenGame.safeTransferFrom 을 할 때, address(this) 대신에 owner() 를 하면 안되는 걸까요?

답변 2

·

답변을 작성해보세요.

1

안영수님의 프로필

안영수

질문자

2023.05.29

감사합니다. 바로 다음 강의에서 관련 내용이 있었네요;

앞의 강의에서 놓친 게 있는지 찾아 보다가 혼란을 느낀 것 같습니다.

1

안녕하세요 :)

address(this)는 snowmenSales 스마트 컨트랙이 배포된 "주소"입니다. 그래서 address(this)즉 snowmenSales 컨트랙이 소유하고 있는 erc1155 토큰을 buyer계정으로 전송하는 과정이에요.

우리가 snowmenGame 컨트랙에서 민팅할 때 snowmenSales 컨트랙으로 전송했기 때문에 토큰의 소유자가 컨트랙이므로address(this)를 쓰는겁니다.