일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- npm
- 시퀄라이즈
- 리액트
- MariaDB
- Docker
- 이더리움
- 설치
- 환경변수
- 일반유저
- node.js 교과서 따라하기
- 리액트를 다루는 기술
- 우분투
- 라우터
- 벨로포터
- 솔리디티
- 노드
- 깃허브
- wget
- centos
- Sequelize
- 블록체인
- 머클루트
- 쉘스크립트
- 머클트리
- 자바스크립트
- 리눅스
- 변수
- 전역설치
- wsl
- immer
- Today
- Total
코드코코
[솔리디티] 데이터 타입, 변수, 함수 본문
Solidity Language
: smart contract 과정 중 EVM에서 byte코드로 생성됨.
: smart contract을 만들기 위한 가장 많이 쓰이는 언어
1. solidity 버전 선언 사용법 2가지
: 선호하는 방법 선택하여 사용
- pragma solidity >= 0.4.22 <0.9.0 // 0.4.22 버전 이상, 0.9.0 버전 이하를 통해서 실행이 됨.
- pragma solidity ^0.6.0 // 최소 0.6.0 이상의 버전으로 컴파일 되야 함 (0.7.0은 안 됨.)
2. 데이터 타입
- boolean : 참, 거짓
- integer : 정수형 , int8~int256 , uint8~uint256 , 일반 int = int256
- fixed point : fixed, ufixed (fixed32x2 - 전체가 32비트인 실수, 소수점 2자리까지 표현)
- address : 20바이트의 이더리움 주소
- byte array(fixed) : 정적배열, 1-32까지 고정된 사이즈로 생성 가능.
- byte array(dynamic) : 동적배열, bytes, string
- Enum : 열거형
- Arrays : 배열
- Struct : 구조체
- Mapping : key 와 value 로 구성.
- Time units : seconds, minutes, hours, days, weeks
- Ether unis : wei, Szabo, ether
3. global variable : 사전에 선언된 변수
- msg object : msg.sender(=address) / msg.value(=ether) / msg.data(=데이터 payload) / msg.sig(어떤 function을 지니고 있는지)
- tx object : tx.gasprice(=gas price) / tx.origin(=transaction을 만든 address)
- block object : block.coinbase(=miner address) / block.difficulty(=난이도) / block.gaslimit(maximum account)
- address object : address.balance / address.transfer
4. global function : 사전에 선언된 함수
- built-in function : addmod, mulmod, keccak256, sha256, sha3, ripemd160, ecrecover, this, selfdestruct
- ecrecover : 서명한 주체의 address를 요청
- this : 현재 동작하고 있는 contract의 address
- selfdestruct : 현재 동작하고 있는 contract의 address를 erasing 요청.
5. 함수
접근제어자
- public : default, 다른 EOA나 외부에서도 누구나 사용 가능.
- external : 외부의 EOA는 이 function을 사용 가능, 내부에서의 사용은 불가.
- internal : 내부에서만 사용가능. 외부에서는 사용불가. 더불어 파생된 contract들도 사용불가.
- private : 오직 자기 자신만 사용가능. 호출은 안되지만, 볼 수 있는 있음.
- view : 보기만 가능
- pure : 수정 뿐만 아니라, 상태 정보에 access 못함.
- payable : ether의 전송도 처리 가능.
함수
- receive 함수 : 이 contract에게 receive를 받아 처리함. (원형. receive () external payable{ .. } )
- fallback 함수 : 매칭이 되는 데이터나 함수가 없을 때 fallback 함수를 사용함. (원형. fallback () external [payable] )
- contract 함수 : contract을 만들었을 때 처음 실행되는 함수. 초기 state를 설정함. 필수는 아니고 옵션임.
- selfdestruct 함수 : 이더를 받을 대상의 address를 적어주고 지워줌. (원형. selfdestruct(address recipient); )
- require 함수 : if문 같은 역할을 함. (원형. require(); )
- modifier 함수 : 함수에 여러 상태를 적용시킬 수 있음.
에러를 핸들링할 때 주로 사용하는 함수
- assert()
- require()
- revert
'블록체인 > 솔리디티' 카테고리의 다른 글
[솔리디티][디앱] lottery - truffle를 활용한 스마트 컨트랙트 상호작용 (0) | 2022.02.13 |
---|---|
[솔리디티][디앱] lottery - 환경설정 (0) | 2022.02.13 |
[솔리디티] [이더리움] 디앱의 핵심 기능 및 관련 주요개념 (0) | 2022.02.10 |
[솔리디티] Geth로 이더리움 네트워크 접속하기 (0) | 2022.02.10 |
[솔리디티] 심플코인으로 솔리디티 맛보기 (0) | 2022.02.10 |