본문 바로가기
BlockChain

스마트 컨트랙트(SmartContract) 개발 설정을 해보자 [1]

by parkjp 2023. 8. 24.

 

시작하기 앞서

개발하기 앞서 프로젝트 설정을 시작하려한다. 그 이후 ERC20, ERC721, ERC1155, 그리고 Upgradeable Proxy를 간단하게 예시로 만들어 보려고 한다. 2년전에 해봤지만 복기하면서 현재 버전에 맞춰 진행해 보도록 하겠다. 우선 로컬부터 테스트넷 deploy까지 차근차근 진행해 보겠다.

 

 

프로젝트 설정

우선 nodejs와 truffle 설치가 필요하다.

 

https://trufflesuite.com/docs/truffle/how-to/install/

 

Installation - Truffle Suite

Installation Requirements Install Node.js Note: to install the latest version of npm, run npm i -g npm Node Package Manager (NPM) recommends installing Node.js and npm with a Node version manager to avoid permission errors when installing globally. To do s

trufflesuite.com

위 문서를 보고 nodejs와 truffle을 설치해주자.

 

설치가 완료되었으면 프로젝트 폴더부터 생성하겠다. 나는 ethtest라고 폴더를 만들었다.

 

mkdir ethtest
cd ethtest

 

해당 폴더에서 커맨드 명령어 npm init을 하자.

 

npm init

 

패키지 이름이라던지 버전이라던지 각자 진행하고나면 폴더 하위에 package.json 파일이 생길 것이다.

 

 

 

 

그 다음 truffle init을 진행하자.

 

truffle init

 

성공적으로 진행이 되었다면 현재 프로젝트 폴더 하위에는

  • contracts
  • migrations
  • test

3개의 폴더가 있을 것이고 package.json파일과 truffle-config.js 파일이 있을 것이다.

여기서 중요한 것은 truffle-config.js 파일이다. 일단은 development로 로컬에서만 진행을 해보겠다.

// require('dotenv').config();
// const { MNEMONIC, PROJECT_ID } = process.env;

// const HDWalletProvider = require('@truffle/hdwallet-provider');

module.exports = {

  networks: {
    development: {
      host: "127.0.0.1",     // Localhost (default: none)
      port: 7545,            // Standard Ethereum port (default: none)
      network_id: "5777"       // Any network (default: none)
    }
  },
  
  compilers: {
    solc: {
      version: "0.8.19"
    }
  }
};

 

그 다음 Ganache라는 것을 설치해주고 실행하자.

https://trufflesuite.com/ganache/

 

Ganache - Truffle Suite

Features VISUAL MNEMONIC & ACCOUNT INFO Quickly see the current status of all accounts, including their addresses, private keys, transactions and balances.

trufflesuite.com

 

QuickStart로 ethereum을 선택하면 된다.

여기까지 진행을 했다면 RPC server 127.0.0.1과 포트번호 그리고 네트워크 id가 보일 것이다.

해당 정보를 위 truffle-config.js에 development에 설정해주면 된다.

 

 

다음 글에는..

간단하다.

여기까지 되었다면 이제 컨트랙트를 만들고 migration 설정을하고 배포만한다면 내 로컬에서 내가 만든 컨트랙트를 테스트해볼 수 있다. 다음에는 ERC20 컨트랙트를 간단하게 개발해보고 로컬에 배포를 진행해 보겠다.

 

 

https://developer-jp.tistory.com/102

 

ERC20 스마트 컨트랙트 (SmartContract) 개발 및 배포해보자 [2]

시작하기 앞서 앞선 편에서 프로젝트 설정을 진행해 보았다. 이번 편에서는 ERC-20 스마트컨트랙트를 solidity라는 언어로 개발해보고 로컬에 배포해보겠다. 물론 solidity에 대해 모르시는 분들은 어

developer-jp.tistory.com

 

반응형