지난 번 BatchTransfer 오버플로워 오류 원인을 분석하면서 이더리움에서 사용하는 Solidity라는 언어가 궁금하던 차에 아래 글을 보게되었다.
그래!! 이번 기회에 솔리디티를 공부해보자!!
내친김에 Level 2까지 달려보았다.
Level2를 마치고 만들어진 나의 좀비는
Solidity에 몇 가지 재미있는 개념이 포함되어 있다.
- uint256
wallet 주소를 다루기 위한 256bits짜리 변수명. 32바이트짜리 양의 정수 값을 가지는 변수이다. - address
우리가 자주 보는 이더주소를 변수로 가질 수 있다.
address myAddress = 0x06012c5cf67B7aD58eAe237070F9587f8E7A266d; - mapping
데이터를 저장하고 검색하는 방법이다.
이더이룸 계좌에 잔고가 얼마인지 확인하기 위하여 사용할 수 있다.
예를들어 accountBalance라는 변수의 key는 이더주소이고, 값은 잔고인 경우에는 아래와 같이 사용할 수 있다.
mapping (address => uint) public accountBalance;
accountBalance[0x...., 10] = 100; - storage와 memory
storage : 블럭체인에 영구히 저장될 변수들
memory : 임시적으로 사용되는 변수들 - internal과 external
기존 C++의 private 형의 확장
기존 C++나 자바의 class만 이해하고 있으면 큰 문제없이 따라 갈 수 있는 언어로 보인다. 이번 연휴에 공부하면서 배운 내용들 포스팅할 예정이다.
smart contract에 대한 전체적인 흐름 파악이 아직 안되고 있다. 기회가 된다면 token을 만들어서 전송하는 전 과정을 공부해 볼 예정이다.