BlockChain(45)
-
Solidity 문법 - (26) enum
목차 1. enum 2. enum 예제코드 1. enum enum을 사용하는 방법에 대해서 간단하게 알아보도록 하자. enum을 사용하는 이유는 특정한 상태의 조건을 나타내기 위해서 사용한다. enum 안에 여러가지 상태를 기술해놓고, 그 상태일 경우 어떤 동작을 할지 조건문을 써주는 식으로 활용이 가능하다. 선언 방법 enum [변수명] { [enum 변수명], [enum 변수명], [enum 변수명], ... } 사용 방법 // 선언된 enum 사용 [변수명] 접근제한자 [enum 변수명] // enum안의 값 사용법 [변수명].[enum 변수명] 2. enum 예제코드 다음의 코드는 각 함수를 실행할 때 enum을 이용해 상태를 변경해주는 컨트랙트이다. 차의 상태에 따라 시동걸기, 시동끄기, 운전중..
2023.06.04 -
Solidity 문법 - (25) Call과 DelegateCall
목차 1. Call 2. DelegateCall 1. Call 전에도 몇 번 예제 코드에 나온 call에 대해서 살펴보자. call 메서드 1. 이더리움의 송금 2. 외부 스마트 컨트랙트의 호출 3. send, transfer와 다르게 가변적으로 가스를 소모 4. 3의 이유로, 이스탄불 하드포크 이후에 call의 사용을 권장 (※ 가스의 가격이 올랐으므로 2300 gas로는 발동 X) 5. re-entrancy(재진입) 공격위험으로 인해서 *특정 패턴*을 사용해야한다. (*특정 패턴* : Checks_Effects_Interactions_pattern) 여기서 2번에 대해서 살펴보도록 하자. 이전의 예제 코드에서 (bool sent, ) = _to.call{ value : ... }(" "); 과 같은 ..
2023.06.04 -
Solidity 문법 - (24) fallback
목차 1. fallback 2. fallback 예제코드 1. fallback 솔리디티에는 fallback 이라는 함수가 존재한다. fallback은 아래의 뜻을 가지고 있다. fallback[ˈfɔːlbæk]명사 1.후퇴(retreat) 2.의지(가 되는 것), 여축(餘蓄), 예비물[금]; [컴퓨터] (고장시의) 대체 시스템 우리가 사용할 때는 대체 시스템이라는 뜻으로 사용을 하게된다. fallback의 특징 익명 함수이기에 함수의 이름을 짓지 않아도 된다. 외부에서 사용하기 때문에 external을 붙여야한다. 이더를 받을 수 있기 때문에 payable을 붙여야한다. fallback의 용도 스마트 컨트랙트가 이더를 받을 수 있게 한다. 이더를 받고난 후에 어떤 동작을 실행할지 정의할 수 있다. cal..
2023.06.04 -
Solidity 문법 - (23) msg.balance (사용자 잔액)
목차 1.msg.balance 2. msg.balance 예제코드 1. msg.balance 솔리디티에서 제공하는 msg의 속성 balance에 대해서 알아보자. 솔리디티에서는 다양한 변수 및 함수를 제공하는데 아래의 포스팅에 목록이 있으며, 공식문서에서도 확인이 가능하다. https://char1ey.tistory.com/152 Ethereum - Solidity의 단위, 변수 및 함수 솔리디티 문서를 참고해서 작성하였다. https://solidity-kr.readthedocs.io/ko/latest/units-and-global-variables.html#id5 단위 및 전역 변수 — Solidity 0.5.10 documentation 이더 단위 Ether를 더 작은 단위로 변환하기 위해 char..
2023.06.04 -
Solidity 문법 - (22) payable 키워드
목차 1. Payable 2. Payable 예제코드 1. Payable payable은 주로 이더/토큰과 상호작용을 할 때에 적어주어야하는 키워드이다. payable을 적어줌으로써 함수, 변수 등등은 이더를 보내거나 받는 기능과 상호작용이 가능해진다. payable은 보통 send, transfer, call 등과 함께 사용하고, payable은 주로 함수(function), 주소(address), 생성자(construct)에 붙여서 사용한다. send, transfer, call은 아래 포스팅의 5번쨰 항목에 목록에 설명이 되어있다. https://char1ey.tistory.com/152 Ethereum - Solidity의 단위, 변수 및 함수 솔리디티 문서를 참고해서 작성하였다. https://..
2023.06.04 -
Solidity 문법 - (21) modifier
목차 1. modifier 2. modifier 예제코드 1. modifier 여러 곳에 코드를 반복적으로 적어야하는 경우 사용한다. modifier에서 지정한 자리( _ )에 함수를 끼워넣어서 사용하는 느낌이다. 선언은 다음과 같이 한다. modifier [ 변수명 ] (인자) { -; // 함수를 실행할 위치 지정 // 코드 내용 } 함수를 실행할 위치를 지정해야하며, 사용자가 임의로 지정해주면 된다. 함수에 적용시키는 방법은 함수의 접근제한자 뒤쪽에 선언한 modifier의 이름을 적어주면된다. function 함수명 ( ) 접근제한자 [ modifier 이름 ] ( modifier 인자 ) ... { ... } modifier의 인자는 함수의 인자에서 받아온다. 2. modifier 예제코드 아래..
2023.06.04