Remix_01

atesi·2022년 10월 13일
0

blockchain

목록 보기
3/12

Setting Up

Remix

contracts/
	SimpleStorage.sol

Remix에서 모든 폴더와 파일을 삭제하고 위와 같이 구성하자.

contracts/SimpleStorage.sol

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

...

사용할 solidity 버전을 입력 해준다.
^0.8.8은 0.8.8이상의 버전이 사용가능
>=0.8.7 <0.9.0 0.8.7을 포함하고 0.9.0미만의 버전 사용가능

계약을 정의한다. 좌측아래 compile SimpleStorage.sol버튼을 누르거나 command+s를 이용해 컴파일을 해주면 성공적으로 첫 계약을 작성한것이다.

Arrays & Structs

contracts/SimpleStorage.sol

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

contract SimpleStorage {
    uint256 public favoriteNumber;
 
    struct People {
        uint256 favoriteNumber;
        string name;
    }
	
    People[] public people;
    
    function store(uint256 _favoriteNumber) public {
        favoriteNumber = _favoriteNumber;
        retrieve();
    }
    
    function retrieve() public view returns(uint256){
        return favoriteNumber;
    }
    
	function addPerson(string memory _name, uint256 _favoriteNumber) public {
        people.push(People(_favoriteNumber, _name));

}

People이라는 구조체를 만들었다. 구조체 안에는 favoriteNumber, name 변수들이 들어 있다.
구조체를 이용해서 배열을 생성해준다.

Map

contracts/SimpleStorage.sol

// SPDX-License-Identifier: MIT

pragma solidity 0.8.8;

contract SimpleStorage {

    uint256 favoriteNumber;

    mapping(string => uint256) public nameToFavoriteNumber; <- here

    struct People {
        uint256 favoriteNumber;
        string name;
    }
    People[] public people;
    
    function store(uint256 _favoriteNumber) public {
        favoriteNumber = _favoriteNumber;
    }
    
    function retrieve() public view returns (uint256){
        return favoriteNumber;
    }

    function addPerson(string memory _name, uint256 _favoriteNumber) public {
        people.push(People(_favoriteNumber, _name));
        nameToFavoriteNumber[_name] = _favoriteNumber; 
    }
}

key값의 타입은 string이고 value값의 타입은 uint256이다. 접근제한자는 public 매핑의 이름은 nameToFavoriteNumber이다.값을 확인 해 보자.

Depoloying your First Contract


Environment를 Remix VM에서 Injected Provider - Metamask로 바꿔준다.


배포를 누르면 Metamask 창이 뜨고 비용을 확인할 수 있다.
확인을 누르고 조금 기다리면 녹색 체크가 뜨면 배포에 성공이다. etherscan에서 상세 내역을 확인할 수 있다.




이 시리즈는 freeCodeCamp.org의 강의를 들으면서 공부한 내용을 정리하기 위해 작성했습니다.

profile
Action!

0개의 댓글