안녕하세요. 이번 포스팅은 스마트 컨트랙트의 fallback, receivce 함수를 알아보겠습니다. fallback 함수 fallback은 '대비책'이라는 사전적 의미를 가집니다. 솔리디티에서도 fallback 함수는 '대비책' 함수라고 보시면 생각하시면 되는데요. 어떤 행동을 취하게 하는 함수라고 보시면 될 것 같습니다. fallback 함수를 사용하는 이유는 아래와 같습니다. 1. 스마트 컨트랙트가 이더를 받을 수 있다. 2. 이더를 받고 난 이후 어떠한 행동을 취할 수 있다. 3. call 함수로 없는 함수가 불려질 때, 어떠한 행동을 취하게 할 수 있다. fallback 함수는 솔리디티 0.6 이전과 이후로 의미가 다릅니다. 자세한 건 아래서 살펴보겠습니다. 우선 버전에 상관없이 공통적인 fal..
Language/Solidity
// SPDX-License-Identifier: GPL-3.0 pragma solidity >= 0.7.0 < 0.9.0; contract hello { address owner; constructor() payable { // payable 키워드는 컨트랙트를 생성할 때 이더를 보낼 수 있다는 의미 owner = msg.sender; } // 해당 스마트컨트랙은 컨트랙을 생성한 주소만 이더를 보낼 수 있다. modifier onlyOwner { require(msg.sender == owner, "Only Owner"); _; } event SendInfo(address _msgSender, uint256 _currentValue); event MyCurrentValue(address _msgSend..
// SPDX-License-Identifier: GPL-3.0 pragma solidity >= 0.7.0 < 0.9.0; contract hello { /** 1. payable: 이더/토큰과 상호작용 시 필요한 키워드 send, call, transfer를 이용하여 이더를 보낼 때 payable이라는 키워드가 필요하다. payable은 주로 함수, 주소, 생성자에 붙여서 사용된다. 2. msg.value: 송금보낸 코인의 값 **/ /** 이더를 보내는 3가지 방법 1. send: 2300gas 소비, 성공 여부를 true or false로 리턴받음. 에러메시지를 알 수 없다는 단점 존재. 2. call: 가변적인 gas 소비(gas값 지정가능), 성공 여부를 true or false로 리턴받음. ..
data type // SPDX-License-Identifier: GPL-3.0 pragma solidity >= 0.7.0 < 0.9.0; contract datatype { // boolean: true/false bool public b = false; // bytes bytes4 public bt1 = 0x12345678; // 4바이트를 넣을 수 있도록 타입을 지정할 수 있다. bytes public bt2 = "STRING"; // 솔리디티에서 자동으로 바이트화되어 저장된다. // address address public addr = 0xABC...... (총 20바이트) // int vs uint int8 public it = 4; // int8범위: -2^7 ~ 2^7 - 1 uint25..