Solidity (솔리디티)란?
이더리움의 스마트 컨트랙트를 구현하기 위해 사용되는 계약 지향 프로그래밍 언어이다...
pragma solidity ^0.8.7; // ^ 이걸 넣어주면 0.8.7 버전 이후로는 다 실행 가능
or
pragma solidity >=0.4.0 < 0.6.0; // 범위내에 버전만 실행 가능
solc 버전을 꼭 적어줘야한다.
import "filename";
import * as SymbolName from "filename";
import 는 가져와서 쓸거 가져다 쓰면 된다.
// or /* */ 을 통해 주석을 작성할 수 있다.
contract example {
uint exam_number; // 전역 변수
contract example {
function simplefunc { // 함수
// ...
function 함수 선언할 때 사용된다.
contract example {
address public seller;
modifire onlySeller() { // modifier 선언
require(msg.sender == seler, "only seller can call this.");
_;
}
function abort() public view onlySeller { // modifier 사용
//...
}
}
modifier 는 함수 변경자로 ; 을 만나기 전, ; 을 만났을 때 modifier 실행, _; 이후 실행된다.
contract example {
event HighestBidIncreased(address bid, uint amount); // event 선언
function bid() public payable {
// ...
emit HighestBidIncreased(msg.sender, msg.value); // event 트리거
}
}
기록남기기로 emit 을 만나면 event가 실행된다.
contract Ballot {
struct Voter { // struct
uint weight;
bool voted;
address delegate;
uint vote;
}
}
구조체다.
contract Purchase {
enum State { Created, Locked, Inactive } // Enum
}
열거형이다.