Language/Solidity

안녕하세요. 이번 포스팅은 스마트 컨트랙트의 fallback, receivce 함수를 알아보겠습니다. fallback 함수 fallback은 '대비책'이라는 사전적 의미를 가집니다. 솔리디티에서도 fallback 함수는 '대비책' 함수라고 보시면 생각하시면 되는데요. 어떤 행동을 취하게 하는 함수라고 보시면 될 것 같습니다. fallback 함수를 사용하는 이유는 아래와 같습니다. 1. 스마트 컨트랙트가 이더를 받을 수 있다. 2. 이더를 받고 난 이후 어떠한 행동을 취할 수 있다. 3. call 함수로 없는 함수가 불려질 때, 어떠한 행동을 취하게 할 수 있다. fallback 함수는 솔리디티 0.6 이전과 이후로 의미가 다릅니다. 자세한 건 아래서 살펴보겠습니다. 우선 버전에 상관없이 공통적인 fal..
// 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..
ctp102
'Language/Solidity' 카테고리의 글 목록