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 사용법

로 접속하면 다음과 같습니다. 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
https://remix.ethereum.org
Remix 초기 화면
예제 코드 작성
예제 코드 컴파일
예제 코드