Skip to content

Remix IDE 사용 가이드

접속

URL: https://remix.flutterdev.online

Private Blockchain 연결 방법

방법 1: External HTTP Provider (권장)

  1. Remix IDE 접속
  2. 왼쪽 메뉴에서 Deploy & Run Transactions 탭 클릭 (로켓 아이콘)
  3. Environment 드롭다운에서 Custom - External Http Provider 선택
  4. External HTTP Provider URL 입력: https://rpc.flutterdev.online
  5. OK 클릭

방법 2: MetaMask (Injected Provider) - 권장

External HTTP Provider 사용 시 계정(Private Key) 추가 버튼이 작동하지 않습니다. MetaMask를 사용하면 Private Key로 계정을 추가하고 트랜잭션에 서명할 수 있습니다.

Step 1: MetaMask 설치

Step 2: FlutterDev 네트워크 추가

  1. MetaMask 열기
  2. 상단 네트워크 선택 드롭다운 클릭
  3. 네트워크 추가네트워크를 수동으로 추가 클릭
  4. 다음 정보 입력:
항목
네트워크 이름FlutterDev Blockchain
새 RPC URLhttps://rpc.flutterdev.online
체인 ID3151908
통화 기호ETH
블록 탐색기 URLhttps://scan.flutterdev.online
  1. 저장 클릭

Step 3: Private Key로 계정 가져오기

  1. MetaMask 우상단 프로필 아이콘 클릭
  2. 계정 추가 또는 하드웨어 지갑 선택
  3. 계정 가져오기 클릭
  4. Admin Panel에서 복사한 Private Key 붙여넣기
  5. 가져오기 클릭

계정 Private Key 얻기

  1. https://flutterdev.online/admin 접속
  2. 지갑 목록에서 원하는 지갑의 Show 버튼 클릭
  3. Copy 버튼으로 Private Key 복사

Step 4: Remix IDE 연결

  1. Remix IDE 접속 (공식 사이트 권장)
  2. 왼쪽 메뉴에서 Deploy & Run Transactions 탭 클릭
  3. Environment 드롭다운에서 Injected Provider - MetaMask 선택
  4. MetaMask 팝업에서 연결 승인
  5. Account에 MetaMask 계정과 잔액이 표시됨

External HTTP Provider의 제한

External HTTP Provider는 RPC 노드에 직접 연결하지만, 노드가 계정 관리(personal API)를 지원하지 않으면 Private Key를 추가할 수 없습니다. 현재 FlutterDev 노드는 personal API가 비활성화되어 있어 MetaMask 사용을 권장합니다.

스마트 컨트랙트 배포 예제

1. 새 파일 생성

왼쪽 File Explorer에서 새 파일 생성: SimpleStorage.sol

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

contract SimpleStorage {
    uint256 private storedValue;
    
    event ValueChanged(uint256 newValue);
    
    function set(uint256 value) public {
        storedValue = value;
        emit ValueChanged(value);
    }
    
    function get() public view returns (uint256) {
        return storedValue;
    }
}

2. 컴파일

  1. 왼쪽 메뉴에서 Solidity Compiler 탭 클릭
  2. 컴파일러 버전 선택 (0.8.19 이상)
  3. Compile SimpleStorage.sol 클릭

3. 배포

  1. Deploy & Run Transactions 탭으로 이동
  2. Environment: Custom - External Http Provider
  3. External HTTP Provider URL: https://rpc.flutterdev.online
  4. Account 드롭다운에서 계정 선택 또는 Private Key 입력
  5. Deploy 클릭

4. 상호작용

배포된 컨트랙트가 Deployed Contracts 섹션에 표시됨

  • set: 값 저장
  • get: 값 조회

테스트 계정 사용

Admin Panel (https://flutterdev.online/admin)에서 프리펀드된 계정의 Private Key를 복사하여 사용

Private Key로 계정 추가 (MetaMask 필요)

External HTTP Provider에서는 + 버튼 작동 안함

External HTTP Provider 환경에서는 Account 옆 + 버튼이 비활성화되어 있습니다. 반드시 MetaMask를 통해 계정을 추가해야 합니다.

MetaMask로 계정 추가 방법:

  1. MetaMask에 FlutterDev 네트워크 추가 (위 가이드 참조)
  2. MetaMask에서 계정 가져오기 → Private Key 붙여넣기
  3. Remix에서 Injected Provider - MetaMask 선택
  4. 계정이 추가되고 잔액 표시됨

ERC20 토큰 배포 예제

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

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply * 10 ** decimals());
    }
}

OpenZeppelin 컨트랙트 사용 시:

  1. File Explorer에서 @openzeppelin 폴더 자동 생성됨
  2. 또는 npm에서 직접 import

NFT (ERC721) 배포 예제

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

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract MyNFT is ERC721, Ownable {
    uint256 private _tokenIdCounter;
    
    constructor() ERC721("MyNFT", "MNFT") Ownable(msg.sender) {}
    
    function mint(address to) public onlyOwner {
        _tokenIdCounter++;
        _safeMint(to, _tokenIdCounter);
    }
}

컨트랙트 검증

배포 후 Blockscout에서 컨트랙트 검증:

  1. https://scan.flutterdev.online 접속
  2. 배포된 컨트랙트 주소 검색
  3. Contract 탭 → Verify & Publish 클릭
  4. 소스 코드 및 컴파일러 정보 입력
  5. 검증 완료 후 Read/Write Contract 기능 사용 가능

Gas 설정

Private chain이므로 Gas Price가 매우 낮음 (기본값 사용 가능)

디버깅

  • Debugger 탭에서 트랜잭션 디버깅 가능
  • 트랜잭션 해시 입력 후 Step-by-step 실행

플러그인

  • SOLIDITY STATIC ANALYSIS: 코드 보안 분석
  • SOLIDITY UNIT TESTING: 단위 테스트
  • LEARNETH: Solidity 학습 튜토리얼

문제 해결

"Unable to connect to provider" 오류

  • RPC URL 확인: https://rpc.flutterdev.online
  • 네트워크 연결 상태 확인

"Insufficient funds" 오류

  • Admin Panel에서 테스트 계정 Private Key 복사
  • 해당 계정으로 전환

트랜잭션 pending 상태 지속

  • 블록체인이 정상 작동 중인지 확인
  • Block Explorer에서 최신 블록 확인

FlutterDev Private Blockchain Platform