KIP7 Transfer 문의드립니다

안녕하세요. 계속 질문해서 죄송합니다.

구현하고자 하는 방향은 사용자가 토큰을 달라고 할 때 토큰을 전송해주려고 합니다.

 // 스마트 컨트랙트 코드입니다.
 // ownerAddress를 상수로 쓰고 있습니다.
 function transferToken(address _to, uint256 amount) external payable nonReentrant canTransfer(_to, amount) {
        _transfer(ownerAddress, _to, amount);
    }

위 코드로 transferToken을 호출할 시 owner 지갑의 토큰이 사용자에게 잘 전달 되지만, 혹시 다른 사람이 토큰 컨트랙트 주소와 abi파일만 있으면 언제든지 저 함수로 토큰을 빼갈수 있을거 같다는 생각이 드는데, 이걸 어떻게 해결해야 할까요?
감사합니다

안녕하세요

말씀하신대로 퍼블릭하게 발급하는 함수를 만드시면 당연히 모두 발급해버릴 수 있습니다.

특정 KIP17(NFT)을 소유한 사람에게 특정 KIP7 토큰을 리워드로 지급하는 방식으로 접근하시는게 좋아보입니다. (Staking)

또는 사용자가 별도 API로 토큰 요청을 하고 별도의 ownerOnly 함수를 직접 호출해서 지급하는 방식도 있을것같습니다.

감사합니다! 덕분에 해결 했습니다!!