solidity

    Solidity : assert, revert, require 그리고 modifier

    Solidity : assert, revert, require 그리고 modifier

    시작하며 오늘은 assert, revert, require와 midifier에 대해서 설명하겠다. assert와 revert, require는 모두 특정 조건을 만족시키지 않아 트랜잭션을 실패로 만들어야 할 때, 오류를 발생시키는 기능을 한다. modifier는 이들을 보다 체계적으로 이용할 수 있도록 도와주는 키워드이다. 각각의 특징을 확인하고, 코드로 살펴보자. 1. assert, revert, require 먼저 서로의 차이에 대해 짚어보자. 1. assert : gas를 모두 소비한 후, 조건이 충족되지 않을 경우(false일 경우) 에러를 발생시킨다. 2. revert : 조건 없이 에러를 발생시키고 gas를 환불시켜준다. 3. require : 조건이 만족하지 않으면(false일 경우) 에러를..

    Solidity : 생성자, 인스턴스화, 상속, overriding

    Solidity : 생성자, 인스턴스화, 상속, overriding

    시작하며 오늘은 솔리디티에서 클래스를 다루는 것처럼 contract를 다루는 기능들에 대해 설명하겠다. 사실상 이해를 쉽게하면 contract는 다른 객체지향언어에서 클래스라고 부르는 것과 거의 똑같다고 봐도 무방하다. 때문에 생성자나 상속과 같은 기능을 제공하며 오늘은 예시를 통해 이러한 요소들에 대해 알아보겠다. 1. 생성자 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 =0.7.0 =0.7.0 =0.7.0

    Solidity : Event

    Solidity : Event

    시작하며 오늘은 솔리디티에서 이벤트에 대해 다뤄보겠다. 솔리디티에서 이벤트는 스마트 컨트랙트 또는 유정의 특정한 상태를 출력하며 그 상태를 블록체인에 저장한다. 스토리지에 저장한 것은 변경 가능하나 이벤트로 기록된 것은 수정이 불가하다. 또 이벤트는 검색이 가능하다. 즉 이벤트는 기록을 원하는 로그를 블록체인에 기록하는 것이라고 보면 된다. 코드로 살펴보자. Event 예시 코드 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0

    Solidity : 배열 다루기

    Solidity : 배열 다루기

    시작하며 오늘은 간단하게 배열을 다루는 법에 대해 다루겠다. 사실 다른 언어와 비슷하게 작동하나 조금 헷갈리는 것들이 있어서 이 글에서 정리해보려고 한다. 코드를 확인해보자. 1. 배열 선언 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 =0.7.0 솔리디티 강좌 18강 Array 배열 안녕하세요 지난 시간에 이어, array를 다뤄 보려고 합니다. 배열은 타입 [] 접근제한자 변수명 이런식 으로 정의 됩니다 // SPDX-License-Identifier:GPL-30 pragma solidity >= 0.7.0 < 0.9.0; contract lec18{ uint256[] publ dayone.tistory.com

    Solidity : memory와 storage, 그리고 문자열 비교하기

    Solidity : memory와 storage, 그리고 문자열 비교하기

    1. Memory와 Storage 이번 글은 약간 아 그렇구나 하고 넘어가는 정도의 글이다. 솔리디티에서 데이터 저장공간은 memory와 storage로 나뉜다. Storage는 블록체인에 영구적으로 저장되고 memory는 일시적으로, 외부에서 함수 호출이 일어날때마다 초기화된다. 아래 글에 알기 쉽게 잘 설명되어있어 링크를 가져왔다. https://merrily-code.tistory.com/102 솔리디티 - 05. Storage와 Memory 솔리디티에는 변수를 저장할 수 있는 Storage와 Memory 라는 공간이 존재합니다. Storage는 블록체인 상에 영구적으로 저장되며, Memory는 임시적으로 저장되는 변수로 함수의 외부 호출이 일어날 때마 merrily-code.tistory.com ..

    Solidity : 함수 및 Modifier

    시작하며 지난 글에서 가시성 지정자에 대해 다루며 변수에 대해 가시성 지정자를 지정하였을 때 어떤 차이가 있는지 간단하게 알아보았다. 함수에도 가시성 지정자가 붙는데, 이를 포함해 전체적으로 컨트랙트 안에서 함수는 어떻게 정의하고, modifier가 무엇인지 알아보자. 여기서 modifier는 function modifier에 대한 개념이다. 함수 작성법 및 function modifier // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0