본문 바로가기

Blockchain

Essence of Solidity in Depth

컨트랙트 외부에 있는 사람들은 2종류가 있음

  1. 일반 유저 - 트랜잭션을 만들어서 보낼 수 있음
  2. 컨트랙트 - 컨트랙트의 함수를 호출할 수 있음

조건? Public 키워드로 외부에 노출되어 있어야 함

(Public 말고 다른 키워드도 있음 -> external)

 

Getter 함수 생성

-> 그 값을 반환하는 함수

변수가 있고

변수의 값을 반환

 

Visibility?

Private -> 상속받은 애가 함수를 사용 못함

Internal -> 바깥에선 못 쓰는데 안에선 쓸 수 있다. 상속받은 애가 쓸 수 있다.

 

함수는 바깥에서 트랜잭션을 보내서 실행할 수 있다

꼭 트랜잭션이 아니어도 되지만

상태를 변경하는 함수를 쓸 땐 트랜잭션 필요

 

 chairperson = Msg.sender

이 컨트랙트를 배포한 사람의 주소를 저 변수에 기록해놔라

Why? require이 true값이면 아무 문제 없이 진행됨

false면 뒤에 메시지를 보여줌

require문으로 condition을 강제할 수 있다

 

뒤에 giveRightToVote = 투표권을 줄 수 있는 살마은

OnlyChair 된다로 강제

클라이언트가 이벤트를 리스닝할 수 있어

노드에 계속 물어봄

어떤 이벤트 발생했어?

 

블록에서 내가 리스닝하는 이벤트가 발생하면

= 내가 리스닝하고 있는 컨트랙트의 이벤트가 발생하면 

무언가 할 수 있는 메커니즘이 있음

 

어떤 사건이 발생했을 때

그때 일을 처리하는 게 중요

(언제 발생할지 모르니까 기다리는거)

큐가 이벤트

 

Voted란 이벤트가 발생하면

이벤트 발생한게 누구인지, 어느 안건에 투표한건지 알고 싶다

그런 이벤트 정의한 다음에

vote란 함수 안에서

msg.sender 어느 proposal 투표했다 이벤트 발생함

 

- address payable?

address에 직접 클레이를 보내거나

컨트랙트 내에서 어느 어드레스에서 다른 어드레스로 클레이 보냄

실제 클레이가 오고갈 수 있는 기능은

-> address payable만 가능

 

- Reference Types

Unit -> 밸류 타입

그 하나로 값이기 때문에 사이즈 영역 정해져있음 (고정)

메모리 할당하기가 편하니까

 

사이즈가 정해져있지 않고 늘어날 수 있는 경우

Reference type 씀

Why? 데이타 사이즈 바뀔 수 있으니까

 

- 함수의 종류와 함께 사라지는 => 메모리로 만듦

 

https://www.inflearn.com/course/klaytn-스마트계약과-탈중앙앱/dashboard

 

[무료] Klaytn 클레이튼 스마트계약과 탈중앙앱 - 인프런 | 강의

이 수업은 카카오 자회사인 그라운드엑스 (Ground X)가 만든 클레이튼(Klaytn) 블록체인을 사용하는 수업입니다. 클레이튼으로 탈중앙앱을 만들기 위해 필요한 내용들을 담고 있으며 클레이튼이 제

www.inflearn.com

5강.pdf
2.40MB

 

'Blockchain' 카테고리의 다른 글

Crypto Travel Rule  (0) 2022.04.25
블록체인의 문제  (0) 2022.04.10
멀티체인(MultiChain)  (0) 2022.04.07
메인체인(main chain)  (0) 2022.04.05
Transactions  (0) 2022.04.05