에어드랍 전략/테스트넷

[공통] 손쉽게 토큰 컨트랙트 배포해보기

폐지맨 2023. 4. 7. 02:59

에어드랍 작업할 때, 컨트랙트도 같이 배포해보자

최근 아비트럼 에어드랍 이후 다시 한 번 에어드랍 작업 광풍이 불어닥치고 있습니다.
ZKsync, 스타크넷, 스크롤 등 많은 프로젝트들이 이러한 에어드랍 작업의 대상이 되고있는데요.

대부분은 이미 개발되어 있는 디앱들을 이용해보면서 트랜잭션을 남기는 작업들 위주입니다.
그런데 일부 프로젝트들을 보시면 트랜잭션을 남기는 것 이외에도 '컨트랙트 배포'를 권장하고
있는 모습을 볼 수 있습니다.

Taiko 테스트넷 Docs

위에서 보듯 최근 한 번 다룬 Taiko 테스트넷의 경우 Docs 가이드라인에
컨트랙트 배포에 대한 부분이 명시되어 있는데요.

이는 단순한 사용자 뿐만 아니라 해당 체인에서 디앱을 개발하는 개발자들을 모아
생태계를 구성해나가기 위함으로 추정됩니다.

이러한 기준이 정확히 에어드랍 수량을 판가름 짓는 기준이 될 확률 자체는
그리 높다고 생각하진 않지만 개인적으로는 혹시라도? 하는 생각에
최근엔 에어드랍 작업을 할 때 스마트 컨트랙트 배포도 잊지않고 진행하고 있습니다.

물론 그런 생각이 드실 수도 있습니다. "개발자들이나 할 수 있는거 아닌가?"
당연히 독창적이고 실용적인 디앱, 토큰을 배포하는 것은 당연하게도 전문 개발자들이나
가능한 것이지만 단순히 스마트 컨트랙트를 배포하는 행위는 누구나 쉽고 간편하게 가능하니
에어드랍 작업시 병행해보시길 권장드립니다.

손 쉽게 스마트 컨트랙트 배포해보기

솔리디티로 이루어진 스마트 컨트랙트를 배포하기 위한 방법은 여러가지가 있지만
가장 간편하고 직관적인 'Remix'를 이용해서 진행 될 예정입니다.
Remix는 별도의 설치 필요없이 웹에서 작동하기 때문에 쉽고 간단하게 사용할 수 있습니다.

Remix 접속 및 기본 환경만들기

우선 아래의 링크를 통해 Remix에 접속해줍니다.

▶️ remix.ethereum.org


기본적인 인터페이스가 보일텐데요. 좌측상단의 'WORKSPACES' 옆의 + 버튼을 눌러줍니다.

'Create a new workspace'를 눌러 새로운 작업환경을 생성합니다.

템플릿은 'Basic'으로 하시면 되고 워크스페이스 이름은 원하시는대로 설정하시면 됩니다.

컨트랙트 작성

다음으로 'Create new file'을 눌러 컨트랙트를 작성할 문서를 생성합니다.

이런 식으로 빈 문서가 생성되는데 이제 이 빈 문서에 컨트랙트를 작성해야합니다.

컨트랙트는 창작할 필요없이 가장 기본적인 아래의 컨트랙트를 복사 붙여넣기하시면 됩니다.

pragma solidity 0.8.17;

// SPDX-License-Identifier: MIT

contract CEKFinance {
  string public name = "CEK Finance";
  string public symbol = "CEK";
  uint8 public decimals = 18;
  uint256 public totalSupply = 10000000000;

  mapping (address => uint256) public balances;
  address public owner;

  constructor() {
    owner = msg.sender;
    balances[owner] = totalSupply;
  }

  function transfer(address recipient, uint256 amount) public {
    require(balances[msg.sender] >= amount, "Insufficient balance.");
    balances[msg.sender] -= amount;
    balances[recipient] += amount;
  }
}

컨트랙트 배포

다음으로 작성한 컨트랙트를 체인에 배포할 차례입니다.
좌측의 아이콘을 클릭하여 컴파일러에 접근합니다.

그리고 'Compile' 버튼을 눌러 컴파일을 진행해줍니다.
다음으로 좌측 메뉴에서 이더리움 모양의 아이콘을 눌러 'DEPLOY' 탭으로 갑니다.

여기서 'ENVIRONMENT'를 누르고 'Injected Provider'를 선택해줍니다.
해당 옵션은 개인지갑에 연결된 네트워크에 컨트랙트를 배포하는 옵션입니다.

저는 스크롤 테스트넷에 컨트랙트를 배포하기 위해 메타마스크에서 스크롤 알파 테스트넷
RPC를 선택했습니다.

네트워크를 선택하셨으면 'Deploy' 버튼을 눌러 컨트랙트를 배포하면 됩니다.
잠시 후 메타마스크가 팝업되고 '확인'을 눌러주시면 최종적으로 컨트랙트가 배포됩니다.
당연하게도 트랜잭션을 남기는 것이기 때문에 소정의 가스비가 필요합니다.

콘솔 창에서 위와 같이 컨트랙트가 배포되었는지 여부를 확인하시면 모든 단계가 완료되었습니다.