Remix에서 개발하기
Remix IDE를 사용하여 스마트 컨트랙트를 배포하고 실행한다.
Remix는 웹 브라우저 환경에서 실행되는 이더리움과 같은 EVM(Ethereum Virtual Machine) 기반 블록체인을 위한 스마트 컨트랙트를 개발, 배포, 관리할 수 있게 도와주는 통합 개발환경(Integrated Development Environment) 입니다.
Remix의 사용법을 익히기 위해 간단한 스마트 컨트랙트를 작성하고 배포해 보도록 하겠습니다.
작성할 스마트 컨트랙트는 배포 시 greeting 메시지를 설정하고 이를 greet() 함수를 통해 조회하고 setGreeting() 함수를 통해 greeting 메시지 변경하는 솔리디티 코드입니다.
Remix IDE를 방문하면 미리 생성되어 있는 컨트랙트들이 있습니다. 이 컨트랙트들을 선택하여 지우고 새로 Greeter.sol을 만든 후 위 코드를 입력합니다.
Solidity Compiler 텝을 선택한 후 'Compile Greeter.sol' 버튼을 눌러 작성한 스마트 컨트랙트를 컴파일합니다. Advanced Configurations를 선택하여 Enable Optimization 등 추가 기능을 설정할 수 있습니다.
MetaMask를 통해 WEMIX3.0 테스트넷으로 스마트 컨트랙트를 배포하기 위해서는 웹 브라우저에 설치된 MetaMask Plug-in에서 WEMIX3.0 테스트넷을 추가하고 사용하고자 하는 계정을 선택한 후에 'DEPLOY & RUN TRANSACTION' 탭의 ENVIRONMENT에서 'Injected Provider - Metamask'를 선택합니다.
만약, MetaMask가 설치 되어 있지 않다면 아래 'Use MetaMask' 링크를 통해 설치 및 설정을 할 수 있습니다. 계정이 맞게 설정 되었는지 확인하였다면 CONTRACT에서 맞는 sol 파일을 선택한 후 'Deploy' 버튼 옆에 초기 greeting 문자열을 입력한 후 버튼을 눌러 배포를 실행합니다. MetaMask가 실행되면 확인을 눌러 트랜잭션을 실행해주면 배포가 진행됩니다.
MetaMask 사용시, WEMIX는 이더리움과는 다른 Fee 정책을 가지고 있으므로 반드시 'Market' 을 선택하여 Gas fee를 변경해야 합니다.
자세한 사항은 아래 링크 참고하세요.
Use MetaMask스마트 컨트랙트가 배포되면 'Deployed Contract' 아래 배포된 컨트랙트 이름과 주소 호출 가능한 함수들이 보이게 되고, 읽기 함수의 경우 청색으로 쓰기 함수의 경우 주황색으로 보입니다.
'greet' 버튼을 누르면 배포할 때 입력한 문자열을 확인할 수 있고 읽기 함수의 경우 바로 실행이 되지만, 쓰기가 필요한 함수는 MetaMask를 이용하여 트랜잭션을 실행해야 합니다.