스마트컨트랙트로 클레이를 보낼 경우 처리 방법이 궁금합니다

안녕하세요.

스마트컨트랙트를 배포하면 주소로 나오고 카이카스로 이 주소로 클레이를 보내면 전송이 되고
트랜젝션도 잘 나오더군요.

다시 보면 그 다음부턴 에러가 나면서 전송은 안되지만요.

이처럼 사용자가 전송 실수로 스마트컨트랙트로 전송할 경우 환불 또는 그에 해당하는 처리를 어떻게 하는게 좋을찌 궁금합니다.

해당 방식은 fallback 함수를 이용해 로직을 설계가 가능하십니다.

fallback 함수는, 솔리디티 버젼에따라 구현방식이 상이하시기때문에, 이는 솔리디티 문서를 참고하시는방법밖에 없을것같고요.

0.5.7 버젼의 경우에서는 아래와 같이 fallback 함수를 만드시면.됩니다.

예를들어, 컨트랙트에 송금가능한 상황을 require나 if 문으로 구현하시면, 일반사용자의 “클레이” 송금을 막으실수있구요.

기타 다른 토큰에 대한부분은 관리자용 긴급인출 메소드를 구현하시는 방법밖에 없을것같습니다. KIP7 토큰의 전송은 해당 토큰의 컨트랙트에서 행해지는 부분이라, 이 부분은 막기에는 좀 어려움이 있을거라생각해요.

‘’’
function () external payable {
// 컨트랙트에 미정의된 payable 트랜잭션이 발생한경우 수행될 코드
}
‘’’

답변되셨길 바랍니다. 감사합니다.

1 Like

답변 감사합니다 작업에 많은 도움이 되었습니다!