- 저번에 이어 구매 컨트랙트를 작성해 볼 것이다.
- payable을 붙여야 MATIC을 거래할 수 있는 메소드를 사용할 수 있다(폴리곤 네트워크).
- safeTransferFrom(보내는사람, 받는사람, 무엇을 보낼것인가) 와 같이 사용한다.
- 코드 작성을 완료하였으면 테스트를 해보자.
- 우선 판매 컨트랙트 테스트와 똑같이 mint 컨트랙트를 deploy해서 나온 주소를 sale 컨트랙트에 붙여서 deploy한다.
- 이후 mintSlimeToken을 하나 발행해 주고
- sale 컨트랙트의 주소를 복사하여 mint 컨트랙트의 setApprovalForAll의 operator에 입력하고 approved를 true로 하여 판매 승인을 하고
- 1번토큰의 가격을 10으로 설정하여 판매 등록을 한다.
- 확인을 위해 onSaleSlimeTokenArray의 0번을 인덱스를 조회하면 tokenId 1번이 0번 인덱스에 들어와 있고
tokenId 1번 토큰의 가격을 조회하면 10으로 등록되어 있는 것을 확인할 수 있다.
- 이제 구매를 위해 토큰번호 1을 넣고 구매를 눌렀더니 오류가 뜬다. Caller sent lower than price 메시지가 떴으므로 아래 오류는 value값이 10보다 작아서 뜨는 오류이다.
- 이번엔 토큰가격인 10을 입력하여 실행해 보았지만 다른 오류가 뜬다. Caller is slime token owner는 토큰 소유자가
구매자 여서 뜨는 것임을 알 수 있다.
- 정상적인 구매를 위해 계정을 교체하고 다시 시도하면
- 정상적으로 구매가 완료되었음을 알 수 있다.
- 슬라임 토큰이 두번째 계정으로 정상적으로 전송되었는지 확인하기 위해 mint 컨트랙트에서 Ownerof로 토큰 id를
조회하면 정상적으로 전송이 완료되었음을 알 수 있다.
ref) https://www.inflearn.com/course/%EB%94%94%EC%95%B1-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8/dashboard
'Block Chain Development' 카테고리의 다른 글
NFT Dapp 개발 연습 #5(프론트엔드 세팅2) (0) | 2022.05.11 |
---|---|
NFT Dapp 개발 연습 #4(프론트엔드 세팅1) (0) | 2022.05.09 |
NFT Dapp 개발 연습 #2(판매 스마트 컨트랙트) (0) | 2022.04.07 |
NFT Dapp 개발 연습 #1(개발환경 세팅 및 스마트 컨트랙트) (0) | 2022.04.07 |
이더리움 기반 Dapp 개발 연습 #12 (기타 정리) (0) | 2022.02.27 |