solidity14 [Solidity] receive 함수 이전 포스트에서 fallback 함수에 대해 알아보았다. 이번 포스트에서는 fallback 함수와 관련된 receive 함수를 알아보자. Receive 함수 솔리디티 0.6.0 버전 이후 fallback 함수는 fallback과 receive로 나뉘어졌다. 본래 하나였던 기능이 세분화되어 두개로 분리되었다고 이해하면 된다. 해당 버전 이후 fallback 함수는 컨트렉트의 호출 함수가 확인되지 않을 때, 함수에서 이더를 보낼 때(transfer) 디폴트 함수로 동작한다. 그리고 receive 함수는 오직 이더를 받을 때 디폴트 함수로 실행된다. Receive 함수의 특징 receive() external payable { // ... } 해당 함수의 구성은 위와 같으며 특징은 다음과 같다. externa.. 2022. 3. 12. [Solidity] fallback 함수 들어가기 앞서 참고해야할 사항이 있다. Solidity는 0.6.0 버전 이후로 fallback 함수가 receive와 fallback으로 나뉘어졌다. 하나의 기능을 세분화시켜 두가지로 나누어 놓은 것이다. 본문은 0.6.0 이후의 fallback 함수에 대해 소개하는 글임을 알린다. Fallback 함수 컨트렉트에서 fallback 함수란 하나의 디폴트 함수와 같다. 이 함수가 실행되는 케이스는 두 가지가 있다. 첫 번째는 호출한 함수가 컨트렉트 내에서 조회되지 않을 경우다. 외부에서 특정 컨트렉트를 호출했을 때, 해당 호출 주소(function identifier)가 확인되지 않으면 디폴트로 fallback 함수가 실행된다. 두 번째는 이더(ETH, ether)를 보낼 때 자동으로 실행된다. 쉽게 말.. 2022. 3. 12. [Solidity] 함수 제어자 view & pure 함수 제어자(State Modifier) view, pure 함수 제어자란 컨트렉트 내에 선언된 변수의 상태를 변경시키는지 그렇지 않는지 나타낸다. view 와 pure 두가지가 있으며, 두 함수 제어자 모두 컨트렉트를 변경시키지 않는 함수 선언에 함께 붙는다. 차이점은 반환하는 데이터가 함수 밖의 상태 변수(State Variable)인지 아닌지에 있다. 아래 예제들을 보며 살펴보자. string greeting = "Hello"; function sayHello() public view returns (string) { return greeting; } 위에서 살펴 본 함수 sayHello()는 솔리디티에서 상태를 변화시키지 않는다. 즉, 어떤 값에 대한 변경이나 수정이 없다. 이 경우에는 함수를 v.. 2022. 3. 11. [Solidity] string memory와 bytes 이번 시간에서 솔리디티 문법 중, 문자열(string)과 바이트(bytes) 코드에 대해 알아보자. 솔리디티 코드에는 가스(Gas)라는 비용이 포함된다. 개발자가 솔리디티 코드를 작성하는 목적은 이더리움 스마트 컨트렉트 구현에 있는데, 스마트 컨트렉트는 곧 블록체인을 수정(Update)하는 것으로 이더리움 네트워크에서 가스(Gas)라는 비용을 청구받게 된다. 달리 표현하면, 솔리디티 코드로 스마트 컨트렉트를 구현할 때, 해당 컨트렉트가 얼마만큼 이더리움 블록체인에 개입하는지에 따라 요금을 내야하는 것이다. (= 트렌젝션(Transaction) 복잡성과 가스(Gas)는 비례한다.) 왜 가스가 발생하는지, 트렌젝션 복잡성은 무엇인지에 대한 설명이 궁금하다면, Ethereum 카테고리를 참고하면 된다. 이번에.. 2022. 3. 10. 이전 1 2 3 4 다음