solidity 문법

suhan cho·2022년 5월 23일
0
post-custom-banner

이더리움

  • 스마트 계약을 실행하는 블록체인 플렛폼
  • 즉 다운타임, 검열, 사기 또는 제3자 간섭의 가능성 없이 (탈중앙화) 프로그래밍된 대로 정확히 실행되는 응용프로그램

이더리움 가상 머신(EVM)

  • 스마트 계약을 위한 런타임 환경
  • 보안을 제공하고 신뢰할 수 없는 코드를 실행하는데 중점을 둔다.
  • 서비스 거부 공격을 방지하는데 특화되어 있으며, 프로그램이 서로의 상태에 액세스할 수 없도록 하여 잠재적인 간섭없이 통신이 설정될 수 있도록 한다
  • 이더리움 기반의 스마트 계약을 위한 런타이 환경역할 하도록 설계

스마트 계약

  • 계약의 협상이나 수행을 디지털 방식으로 확인 또는 시행 위한 프로토콜
  • 제3자없이 신뢰할 수 있는 거래를 수행할 수 있다

기본문법

SPDX라이센스 식별자

  • 스마트 계약에 대한 신뢰는 소스코드를 사용할 수 있는 경우 더 잘 확립
  • 소스코드 사용하는 것은 저작권과 법적 문제를 다루기에 spdx라이센스 식별자 사용 권장
//SPDX-License-Identifier: MIT

pragma

  • 특정 컴파일러 기능 또는 검사를 활성화하는데 사용
  • pragma 지시문은 항상 소스 파일에 대해 로컬이므로 전체 프로젝트에서 활성화하려면 모든 파일에 pragma를 추가해야 한다
pragma solidity ^0.8.0;

Contract

  • solidity계약은 이더리움 블록체인 특정 주소에 있는 코드(기능)와 데이터(상태)모음
  • 상태 변수는 저장되는 영구 데이터
  • 상태 변수를 수정할 수 있는 함수가 포함된다
  • 다른 계약에서 함수를 호출하면 EVM이 상태 변수에 접근할수 없도록 한다.
  • 이더리움은 특정 이벤트에서 자동으로 함수를 호출하는 개념이 없다

변수 및 데이터 타입

  • 상태변수: 값이 계약 저장소에 영구적으로 저장되는 변수
  • 지역변수: 함수가 실행될 때까지 값이 존재하는 변수
  • 전역변수: 블록체인에 대한 정보를 얻는데 사용되는 전역 이름 공간에는 특수 변수

상태변수

//SPDX-License-Identifier: MIT
pragma solidity^0.8.0;

contract Variable{
	uint state_variable // 상태변수

지역변수

//SPDX-License-Identifier: MIT
pragma solidity^0.8.0;

contract Variable{
	function getResult() public pure returns(uint){
    	uint local_val=1;
        uint result = local_val+1;
        
        return result; //지역
      }
}
//View 상태 변수를 수정하지 않고 상태 변수를 읽을때 사용 
//Pure 상태를 수정하거나 상태 변수를 읽지(액세스)하지 않을때 사용해야 합니다. //일반적으로 입력 매개변수를 기반으로 작업을 수행

변수 스코프

상태 변수는 범위를 public, Internal, private로 사용가능

연산자

  • 산술 연산자

  • 비교 연산자

  • 논리 연산자

  • 비트 연산자

profile
안녕하세요
post-custom-banner

0개의 댓글