일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 클로저
- 변수
- 백준
- Interview
- nft
- Javascript
- Queue
- Python
- git pull
- let
- 딥다이브
- 알고리즘
- frontend
- react
- 리액트
- 자바스크립트
- Deep Dive
- 블록체인
- 실행 컨텍스트
- 파이썬
- solidity
- Execution context
- BOJ
- var
- 프로퍼티
- Algorithm
- blockchain
- 정렬
- 함수
- 솔리디티
Archives
- Today
- Total
공부하자
Solidity 기초 문법 - event 본문
event
블록체인 네트워크의 블록에 특정값을 기록하는 것
정의하는 방법 : event 이벤트 이름(쓰고자 하는 타입과 이름);
contract A{
event info(string name, uint256 money);
}
출력하는 방법 : emit 이벤트 이름(이벤트 파라미터 값 넣어주기);
contract A {
event info(string name, uint256 money);
function sendMoney() public {
emit info("KimDaeJin", 1000);
}
}
Remix에서 위의 sendMoney()라는 함수를 실행했을 때, "KimDaeJin"이라는 이름과 1000 이라는 금액이 logs에 info 이벤트가 출력이 되는 것을 확인할 수 있습니다. 즉, 블록체인 네트워크 안에 기록이 남습니다. 이렇게 블록에 각인 시키는 것이 일반적으로 string이나 스마트 컨트랙에 저장하는 것보다 효율적입니다. 그리고 블록안에 이벤트가 저장이 되어 있기 때문에 언제든지 들고 와서 사용할 수 있습니다.
indexed
indexed를 사용해서 블록들안에 다양한 이벤트들을 필터링하여 우리가 원하는 이벤트만을 가지고 올 수 있음.
contract A {
event numberTracker(uint256 indexed num, string str);
uint256 num =0;
function PushEvent(string memory _str) public {
emit numberTracker(num,_str);
num ++;
}
}
이벤트 정의 부분에서 원하는 파라미터 값에 indexed만 붙여주면 된다.
도움 받은 곳 : https://dayone.tistory.com/
개인 공부를 위해 위의 강의를 정리한 내용입니다.
'Solidity' 카테고리의 다른 글
Solidity 기초 문법 - 상속 (0) | 2022.03.22 |
---|---|
Solidity 기초 문법 - instance (0) | 2022.03.17 |
Solidity 기초 문법 - function (0) | 2022.03.09 |
Solidity 기초 문법 - 변수만들기 (0) | 2022.03.09 |
Comments