For the complete documentation index, see llms.txt. This page is also available as Markdown.

4. Write Smart Contract

  1. Background

  2. Define the variable

  3. Define functions

  4. 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 버전을 사용할게요.

 solidity 0.5.6; // 솔리디티 버전을 지정합니다.

그런 다음 컨트랙트의 이름을 "Count"로 지정합니다.

pragma solidity 0.5.6;

contract Count { // 컨트랙트의 이름을 "Count"로 합니다.

}

count 변수를 uint(unsigned integer) 자료형으로 선언하고 0으로 초기화하세요.

3) 함수 정의

plusminus 두 개의 함수가 필요해요. 각 함수의 역할은 다음과 같습니다: 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

Was this helpful?