안녕하세요. 현재 기초적인 민팅 코드를 클레이튼 IDE를 이용해서 배포하였습니다.
contract Test is KIP17Full, Ownable {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
constructor() public KIP17Full("test", "ttt") {}
function mintNFT(string memory tokenURI)
public
onlyOwner
returns (uint256)
{
_tokenIds.increment();
uint256 newItemId = _tokenIds.current();
_mint(msg.sender, newItemId);
_setTokenURI(newItemId, tokenURI);
return newItemId;
}
}
이런식으로 배포를 하였는데 공부를 하다보니 해당 컨트랙트를 외부의 누구든 사용할수 있다고하네요…
가스비를 제가 대납할 예정인데 이렇게 되면 누구든지 제 컨트랙트를 이용하여 민팅을 시도하고 가스비를 제가 대납하게되버리는데 보통 이를 막는 방법이 따로 있나요?
onlyOwer는 제거하여 외부에서 접근을 막을려하였지만 이렇게되면
민팅 버튼을 누르면 연결된 klip주소로 민팅을 할 예정이였는데 해당 유저들이 컨트랙트를 실행할수가 없으니까 고민입니다.
요약하자면
- 스마트 컨트랙의 외부 접근 차단
- 1번의 내용이 사실이맞는지
- 만약 맞다면 외부에서 해당 컨트랙트를 이용하여 NFT를 해당 발행자로 무분별한 민팅이 가능해지는데 이를 막는방법은?
이제막 공부 시작한 학생입니다… 미리 답변감사합니다.