Solidity의 모든 코드들은 컨트랙트를 통해 클라이언트(앱)와 통신한다.
가령 메타마스크를 통해 다른 누군가에게 1 ether를 보낸다고 가정해보자.
이 때, 금액을 전송한는 행위는 '전송'버튼을 누름과 동시에 진행될 것이다.
즉 이 전송 버튼이 눌려졌을 때 컨트랙트의 실행 내용이 일어나는 것이고,
전송버튼은 항상 클라이언트의 요청에 '귀 기울이고 있는' 이벤트에 해당한다고 볼 수 있다.
다음 코드는 크립토좀비의 참고 예시이다.
// 이벤트를 선언
event IntegersAdded(uint x, uint y, uint result);
function add(uint _x, uint _y) public {
uint result = _x + _y;
// 이벤트를 실행하여 앱에게 add 함수가 실행되었음을 알린다:
IntegersAdded(_x, _y, result);
return result;
}
이벤트 발생에 대한 클라이언트 측 결과 :
YourContract.IntegersAdded(function(error, result) {
// 결과와 관련된 행동을 취한다
})