4. Write Smart Contract
Background
Define the variable
Define functions
Let's do something more 4.1. Add a variable \ 4.2. Update functions
1) 배경지식
"Count"라는 매우 간단한 컨트랙트를 만들 거에요.
a. count
라는 스토리지 변수가 하나만 있습니다.
b. 사용자는 count
변수를 1씩 늘리거나 줄일 수 있습니다. 따라서 count
변수를 1만큼 증가시키는 plus
함수와 count
변수를 1만큼 감소시키는 minus
함수, 총 2개의 함수가 있습니다. 참 쉽죠?
2) 변수 정의
변수를 설정하기 전에 솔리디티 버전을 지정해야 합니다. 0.5.6 stable 버전을 사용할게요.
그런 다음 컨트랙트의 이름을 "Count"로 지정합니다.
count
변수를 uint
(unsigned integer) 자료형으로 선언하고 0으로 초기화하세요.
3) 함수 정의
plus
와 minus
두 개의 함수가 필요해요. 각 함수의 역할은 다음과 같습니다:
plus
- count
변수를 1만큼 증가. (count = count + 1)
minus
- count
변수를 1만큼 감소. (count = count - 1)
NOTE
컨트랙트 외부에서 함수를 호출하려면 public
으로 선언해야 합니다.
4) Let's do something more
기능 하나만 더 추가해볼까요? 마지막 참가자의 지갑 주소를 기억하는 기능은 어때요?
4-1) 변수 추가
lastParticipant
변수를 address
자료형으로 선언해주세요:
address public lastParticipant;
4-2) 업데이트 함수
마지막 참가자의 주소를 추적하기 위해 lastParticipant
에 다음과 같이 주소를 저장합니다.
참고
1) public
변수 또는 함수를 public
으로 선언했다면 블록체인 외부에서 접근할 수 있습니다. 즉 프론트엔드 어플리케이션에서 해당 변수 또는 함수에 접근할 수 있습니다. 나중에 Count 컴포넌트 장에서 어떻게 프론트엔드 애플리케이션으로부터 컨트랙트의 public 메서드 및 변수와 상호작용할 수 있는지 볼게요.
2) msg.sender
msg.sender
는 현재 트랜잭션을 시작한 주소입니다.
msg.sender
변수를 통해 트랜잭션 발신자의 주소를 얻을 수 있습니다.
이 줄은 lastParticipant
변수가 msg.sender
의 주소 값을 갖도록 합니다.
Last updated