Dreaming Deve1oper

Remix 다루기 본문

Solidity, Ethereum

Remix 다루기

주현테크 2022. 8. 5. 21:25
함수유형
public 누구나 호출 가능한 함수.
private 계약코드만 호출 가능한 함수.
view 데이터를 반환하며 계약의 데이터를 수정하지 않는 함수.
constant 데이터를 반환하며 계약의 데이터를 수정하지 않는 함수.
pure 계약 데이터를 수정하거나 읽지 않는 함수.
payable 호출되면, 이더를 함께 전송할 수 있는 함수.
set 일부 인수를 명확하게 수락하고
다음 값을 업데이트/수정하는 함수.

※ public, private 중 하나만 사용 가능

 


#Example CODE

pragma solidity ^0.4.17;

contract Inbox {
    string public message;

    function Inbox(string initialMessage) public {
        message = initialMessage;
    }

    function setMessage(string newMessage) public {
        message = newMessage;
    }

    function getMessage() public view returns (string){
        return message;
    }
}

 

 

Remix IDE

  1. Environment: 개발환경
  2. Account: 개발환경을 JavaScript VM으로 설정할 경우 표시되며 내부 가상 네트워크를 활성화하고 자동으로 100 이더를 가지고 있는 테스트 계정을 생성해준다. (이는 브라우저 내부에만 존재하는 계정이며 당연하게도 실제 가치는 없는 이더이다)
  3. GAS LIMIT:
  4. VALUE: 트랜잭션을 수행하는데 사용되며 트랜잭션과 함꼐 일정량의 이더가 전송된다.
  5. Contract: 실행 중인 로컬 테스트 네트워크에 배포하려는 계약을 선택하는 것. 

  • InitialMessage: 문자열을 입력 후 Deploy 버튼을 통해 Inbox의 인스턴스를 생성한다.

  • 테스트 네트워크에 생성된 Inbox 인스턴스.
  • X: 인스턴스 삭제

getMessage

  • 문자열의 반환값.
  • 0: 이후에는 반환된 데이터 값을 얻는다.

SetMessage

  • 콘솔 내부에서 Inbox Contract의 SetMessage 함수를 호출한다.
  • 값(Hello world!)은 자동으로 업데이트되지 않으며 해당 값을 업데이트하려면 getMessage를 눌러야한다. (string: Hello world! -> getMessage -> string: Goodbye world!)

 

 


 

 

 

#Distributed Contract Diagram

  • 스토리지엔 메시지의 변수가 존재하며 getMessage를 통해 수정/접근이 가능하다.

 

 

Remix Daiagram

  1. Remix 내에 일정 금액의 계약이 존재하며 본 계약이 솔리디티 컴파일러에 의해 자동으로 컴파일 되도록 한다.
  2. Bytecode로 컴파일.
  3. 가짜 이더리움 네트워크에 배포된다.
  4. 수신 인스턴스가 제공된다.

 


 

 

Comments