블록체인

스마트컨트랙트 배포

orbing 2021. 7. 26. 17:55

스마트컨트랙트 배포

 

[요약]

Remix에서 솔리디티로 간단하게 

스마트컨트랙트를 작성하여

테스트넷환경 'Ropsten'에서 

스마트컨트랙트 배포하기.

 

 


 

 

1. 리믹스 접속

https://remix.ethereum.org/

 

Remix - Ethereum IDE

 

remix.ethereum.org

퍼런색 외계인 같은 녀석이 나온다.

 

 

 

 

2. 리믹스와 메타마스크 연결

2. 메타마스크(랍스텐 테스트 네트워크)와 리믹스를 연결한다.

메타마스크 - 우측 상단 땡땡땡(설정) 클릭 - 연결된 사이트 - "현재 사이트에 수동으로 연결" 클릭

그럼 리믹스와 메타마스크와 연결이된다.

 

 

 

3. 리믹스 개발환경 설정

왼쪽 탭에서 3번째

이더리움 모양의 아이콘을 누르고

ENVIRONMENT를

Injected Web3로 변경하여

메타마스크의 내 어카운트와 연결한다.

 

 

 

4. 스마트컨트랙트 파일 작성

왼쪽 탭 에서 첫번째 '파일 두개가 겹쳐진' 모양의 아이콘을 클릭.

=> 상단에서 파일 한개 모양 클릭해서 새로운 파일 생성

=> 파일명 null.sol 형태로 생성. null부분은 파일이름.

필자는 첫번째 스마트컨트랙트이니 first.sol로 생성.

 

 

5. 코드 작성

pragma solidity 0.8.4;

contract FirstContract {
    string name = "vitalick";
    
    function getName() public view returns (string memory) {
        return name;
    }
    
    function setName(string memory _name) public {
        name = _name;
    }
    
    fallback() external payable {
      
    }
   
}

first.sol에서

위와 같이 작성.

 

<스마트컨트랙트 내용>

  • getName 호출시 "vitalick" 반환. view는 볼 수 만 있다는 뜻 임.
  • setName 호출시 name 변수를 변경할 수 있음. 

 

 

6.스마트컨트랙트 배포

 

 

DEPLOY & RUN TRANSACTIONS  

(아까 그 이더리움 모양 아이콘)으로

돌아가서 Deploy 버튼 클릭.

 

메타마스크 서명후 배포.

 

스마트컨트랙트 배포시 트랜잭션이 발생하므로

소량의 가스피(GAE FEE)가 필요하다.

 

가스피는 이더리움으로 지출되며

테스트용 이더리움이 없다면

아래 포싯들에서 지원받자.

 

 

 

Test Ether Faucet

 

faucet.metamask.io

 

 

 

 

 

스마트컨트랙트를 배포하면

아래와 같은 로그가 콘솔 창에 뜬다.

5~10초 지나면 배포가 완료된다.

 

 

 

 

좌측하단에서 배포된 스마트컨트랙트 주소를

클릭하면 위와 같이 함수를 호출 할 수 있는 창이 뜬다.

 

getName 파란색 버튼을 눌러 함수 호출시

비탈릭("string:vitalick")이 반환된다.

 

setName에서 ryan이라고 설정해주면

한번 더 서명하게 되고, 펜딩 후, 

 

getName 호출 시 name변수가 위

setName함수를 통해 ryan으로 변경되었기 때문에 ryan이 반환됨.

 

이제 이 스마트 컨트랙트를 호출하고 누구든

getName 을 호출하면 ryan이 반환된다.

 

ryan말고 다른애로 바꾸고 싶다면?

setName을 호출하여 변경하면 된다.

 

 

귀여운 라이언으로 변경완료~!

 

6. 스마트컨트랙트로 이더리움 송금

fallback() external payable {
      
    }

fallback payable을 통해

스마트컨트랙에서 직접 정의한 function을 호출하지 않고

 

스마트컨트랙트에 이더리움을 송금 할 수 있다.

 

메타마스크 개인 지갑 => 스마트컨트랙트 주소로

0.1 이더리움 전송 성공.