다시 초심으로 돌아가 솔리디티부터 해볼려고한다.
걷지도 못하는데 어떻게 뛰겠는가!
그래서 크립토좀비를 한 챕터마다 정리하면서 진행해보려고했다만
첫 챕터는 그냥 완전 기본 문법(변수형 선언, 형변환, 구조체)이런것들이라 딱히 적을게 없긴하다.
그래도! 몇 가지 기존의 프로그래밍 언어와 조금 다른 부분을 정리해보자면
1. view
function sayHello() public view returns (string) {}
이런식으로 view라는 키워드를 쓴다.
얘는 솔리디티에서 상태를 변화시키지 않는다는 의미다.
즉, 어떤 값을 쓰거나 변경하지 않는다는 의미. only view만 하는 함수라는 의미.
-> storage를 읽을 수 있지만 변경은 안됨
2. pure
function _multiply(uint a, uint b) private pure returns (uint) {
return a * b;
}
pure는 함수가 앱에서 어떤 데이터도 접근하지 않는것을 의미한다.
-> storage를 읽을수도 없고 변경도 안된다
3. 이벤트
// 이벤트를 선언한다
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) {
// 결과와 관련된 행동을 취한다
})
이벤트는 나중에 더 깊게 다뤄볼 것이고 일단 챕터1에서는 간단히 보고 넘어간다.
컨트랙트는 특정 이벤트가 일어나는지 "귀를 기울이고" 그 이벤트가 발생하면 행동을 취한다.
사용자단의 자바스크립트 코드가 IntegerAdded 이벤트를 듣고있다가 컨트랙트에서 실행되면 행동을 취한다.
https://cryptozombies.io/ko/course
'Block Chain' 카테고리의 다른 글
[BlockChain] 크립토좀비 레슨3 (0) | 2023.02.13 |
---|---|
[BlockChain] 크립토좀비 레슨2 (0) | 2023.02.11 |
[BlockChain] Move 언어 (0) | 2023.02.03 |
[Dapp 만들기] 4. 이더리움 가스비 계산 (0) | 2022.06.29 |
[Dapp 만들기] 3. 스마트 컨트랙을 테스트해보자 (0) | 2022.06.28 |