Happyberrysboy's Blog

안녕하세요, 햅뽀이입니다.

오늘은 어제 말씀드렸던대로 IDE(개발 툴)을 이용하여 실제로 클레이튼 스마트 컨트랙트를 작성하는 것에 대해서 포스팅을 합니다.
개발 내용은 얼마전에 먹튀로 유명했던 매직다이스의 룰을 이용하여, 특정 숫자와 up/down을 선택하여 맞으면 클레이를 전송하는 기능을 만들어 보도록 하겠습니다.

1. 필요한 기능 정의(함수 정의)

  • 제가 개발하려고 하는 것에는 아래와 같이 3개의 기능이 필요합니다.
  • 스마트컨트랙트로 클레이를 송금하는 기능
  • 스마트컨트랙트로 잔액을 불러 오는 기능
  • 스마트컨트랙트로에서 사용자 계정으로 클레이를 보내는 기능

2. IDE로 접속

  • https://ide.klaytn.com/ 사이트에 들어가보면 바로 개발을 할 수 있는 환경이 갖추어져 있습니다.(화면에 보이는 코드 내용은 아래 캡쳐화면가 다를 수 있으나 첨부터 다 다시 코딩을 할 예정이기 때문에 상관 없습니다.!)


## 3. Code - 저희는 새로운 기능을 만들 것이기 때문에, 최초 상단의 ```pragma solidity >=0.4.24 <=0.5.6;``` 을 남겨두고 아래쪽은 모두 삭제를 합니다.(날짜에 따라 버전은 달라질 수 있습니다.) - address 는 주소를 입력 할 수 있는 변수입니다. - constructor 명령어는 생성자 역할을 합니다. 최초 1회만 불러 오기 때문에, 컨트랙트를 생성한 사람의 주소를 owner로 입력합니다. - msg.sender 는 컨트랙트를 호출하는 계정을 불러오도록 되어 있습니다. - 일반 기본 컨트랙트 구조와 배포테스트를 위해 소스는 여기까지만 작성을 해봅니다.
1
2
3
4
5
6
7
8
9
10
pragma solidity >=0.4.24 <=0.5.6;

contract UpDownGame{
address public owner;

constructor() public {
// msg.sender은 컨트랙트를 호출하는 사람
owner = msg.sender;




4. 컴파일(Compile)

  • 작성한 코드를 컴퓨터 언어로 변경시켜 주는 작업입니다.

  • 우측에서 Solidity 버전을 선택한 후 (자동 컴파일을 원할 경우 Auto Compile 체크) Start to Compile를 클릭합니다.

  • Solidity 버전은, 저희는 아주 간단한 기능만 사용 할 예정이므로 어느 버전을 사용해도 문제가 없을 겁니다.


  • 정상적으로 컴파일이 되면 아래그림처럼 UpDownGame이 생성됩니다.


5. 배포(deploy)

  • 우측의 Run 탭으로 이동합니다.
  • Enviroment는 현재 클레이튼의 네트워크 종류를 말합니다. 현재 Mainnet은 존재하지 않고, 테스트 넷인 바오밥을 선택하시면 됩니다.



  • Account에는 지난 시간에 만들었던 계정을 등록하시면 됩니다.

  • 지난 시간에 만든 Private Key나 Ketstore를 이용하여 등록 할 수 있습니다.


  • 그리고 아래 쪽에 Deploy를 클릭하시면 블록체인에 배포가 완료 됩니다.


  • 정상적으로 배포가 되면 아래쪽에 이렇게 표시가 됩니다.

  • 이렇게 저희는 블록체인위에 스마트 컨트랙트를 만들어서 배포를 완료하였습니다.!!!!!!(물론 아직 기능은 하나도 없습니다.)

  • 추가 로직에 대해서는 다음편에 계속 진행하도록 하겠습니다.

  • 음.. 그런데… 개발을 모르는 분들도 따라 할 수 있게 해보려고 하였으나, 결국 Solidity 문법에서 설명이 불가능한 상황이 되어 버렸습니다. 생성자라던지, 함수라던지, 등등 말이지요. 하지만 앞으로는 어떤 코드들이 컨트랙트에 들어가 있는지, 왜 컨트랙트에다가 이러한 기능들을 입력해야 하는지 등에 대한 이해를 최대한 해드리는 방향으로 진행하도록 하겠습니다.

여기까지 읽어 주셔서 대단히 감사합니다.

지난 글

[Klaytn, 클레이튼] 클레이튼에 대해서 알아보자 1편(클레이튼 특성, 합의)
[Klaytn, 클레이튼] 클레이튼에 대해서 알아보자 2편(블럭생성 및 전파, 네트워크 구조)
[3편][Klaytn, 클레이튼] 클레이튼에 대해서 알아보자(코어셀, 서비스체인)
[Klaytn 4편] 클레이튼에 대해서 알아보자-실습편1(계정,지갑생성)