WEMIX3.0
WEMIX3.0 (KOR)
WEMIX3.0 (KOR)
  • Introduction
    • Blockchain Basics
      • What is Blockchain?
      • Consensus Algorithm
      • Transactions
      • Gas
      • Account
  • Design
    • Architecture
    • Consensus
    • Governance
    • Minting
    • EIP1559
    • Fee Delegation
    • Eco Fund
    • Roadmap
  • Quick Start
    • Start Node
      • Use Binary
        • Command-line Option
      • Use Public API Server(RPC)
    • Connect Node
    • Account
      • Use MetaMask
    • Testnet Faucet
  • Install & Operation
    • End Node
      • System Requirements
      • Firewall Setting
      • Install Guide
    • Block Producer Node
      • System Requirements
      • Firewall Setting
      • Install Guide
    • Download
    • Operation Guide
  • dApp Developer
    • Smart Contract
      • Solidity
      • Precompiled Contracts
      • Sample Contracts
    • JSON-RPC
    • API Reference
      • Account APIs
      • Block APIs
      • Contract APIs
      • Transaction APIs
      • Event logs APIs
      • Tokens APIs
  • Tutorial
    • Wallet 생성하기
    • Test Coin 받기
    • Smart Contract 생성하기
      • Remix에서 개발하기
      • Truffle 사용하기
      • Hardhat 사용하기
    • ERC-20 Token
      • ERC-20 Contract 만들기
      • ERC-20 Token 확인하기
      • ERC-20 Token 보내기
      • ERC-20 Token API 조회하기
      • ERC-20 Token 소각하기
    • ERC-721 Token
      • ERC-721 Contract 만들기
      • ERC-721 Minting하기
      • ERC-721 Token API 조회하기
      • ERC-721 Token 소각하기
    • Fee Delegation 사용하기
  • Manual
    • Explorer
    • Wallet
  • FAQ
Powered by GitBook
On this page
  1. dApp Developer
  2. Smart Contract

Solidity

이 장에서는 Solidity 언어와 개발환경에 대해서 설명합니다.

PreviousSmart ContractNextPrecompiled Contracts

Solidity는 이더리움 상태 내에서 계정의 동작을 제어하는 ​​프로그램인 스마트 컨트랙트를 구현하기 위한 객체 지향 고급 언어입니다. Solidity는 EVM(Ethereum Virtual Machine)에서 동작하도록 설계된 C++, Python 및 JavaScript의 영향을 받은 중괄호 타입의 언어입니다. Solidity는 정적으로 유형이 지정되며 다른 기능 중에서 상속, 라이브러리 및 복잡한 사용자 정의 유형을 지원합니다.

Solidity를 사용하면 투표, 크라우드 펀딩, 블라인드 경매 및 다중 서명 지갑과 같은 용도의 계약을 생성할 수 있습니다.

개발환경 (IDE)

Solidity를 지원하는 환경은 다양합니다. 브라우저 기반의 Remix부터 많이 사용되는 IDE 도구인 IntelliJ, Visual Studio 등에서 Solidity Plugin을 설치하면 사용이 가능합니다.

Remix 사용법

https://remix.ethereum.org 로 접속하면 다음과 같습니다. contracts 디렉터리에 Storage.sol, Owner.sol, Ballot.sol 세가지의 예제 스마트 컨트랙트가 보여지게 되며, 새로 작성하려면 이를 선택하여 지우고 새 파일을 생성하면 됩니다.

다음과 같은 예제 스마트 컨트랙트를 작성할 수 있습니다. 예제 스마트 컨트랙트는 get()함수를 통해 count 값을 읽어올 수 있고, inc(), dec() 함수를 통해 count 값을 올리거나 내리는 기능을 제공합니다.

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.11;

contract Counter {
    uint256 count;
    
    constructor(uint256 _count) {
        count = _count;
    }
    
    function get() public view returns (uint256) {
        return count;
    }
    
    function inc() public {
        count += 1;
    }
    
    function dec() public {
        count -= 1;
    }
}

코드가 작성되면 솔리디티 컴파일러 화면에서 맞는 컴파일러 버전을 선택한 후 컴파일을 할 수 있습니다.

Deploy & Run Transactions 화면에서 배포하려고 하는 환경을 선택하고 스마트 컨트랙트를 배포하여 테스트를 해볼 수 있습니다. 아래 그림은 Remix에서 제공하는 "Injected Provider - Metamask"를 사용하여 WEMIX3.0 테스트넷에 배포하는 예입니다.

MetaMask를 사용하는 경우 다음과 같이 WEMIX3.0 테스트넷을 추가하여야 합니다. WEMIX3.0 테스트넷의 Gas fee가 이더리움과 다르므로 전송할 때 변경해주어야 합니다. Max fee를 100 GWEI로 Max priority fee를 100.000000001 GWEI로 변경해주면 됩니다.

네트워크 추가와 가스비 설정과 관련한 자세한 내용은 Use MetaMask를 참고하십시오.

Remix 초기 화면
예제 코드 작성
예제 코드 컴파일
예제 코드