solidity 2022.09.04

스터디 2022. 9. 4. 13:30

 

 

ganache-cli 명령을 통해서 이더리움 노드를 시작할 수 있습니다.

아래와 같이 10개의 계정이 생성이 되며, 각 계정은 100이더의 잔고를 보유하고 있습니다. 

물론 이건 내 PC에만 존재하는 이더리움이므로 실제가치는 없습니다. 내 PC에서 이 이더리움 계정과 잔고를 가지고 스마트계약이나 다양한 것들을 실험해볼 수 있습니다.

 

아래와 같이 ganache-cli --host 0.0.0.0 을 실행합니다.

 

 

 

이후에 진행될 테스트에서는 첫번째 지갑주소 및 PrivateKey를 사용합니다.

Ganache가 설치된 사용자마다 이 지갑주소와 PirvateKey는 다릅니다.

 

5. MyEtherWallet 연결하기

마지막으로 블록체인과 통신을 위해서 MyEtherWallet을 연결하여 사용합니다.

스마트컨트랙트와 통신하는 기능이 있기때문에 유용하게 사용할 수 있습니다.

 

www.myetherwallet.com/

 

MyEtherWallet.com: Your Key to Ethereum

Free, open-source, client-side Ethereum wallet. Enabling you to interact with the blockchain easily & securely.

www.myetherwallet.com

 

npm init

npm init -y

 

 openzeppelin라이브러리는 기본적이고 많이 사용되는 smartcontract코드를 모아놓은 라이브러리입니다.

 이미 잘 짜여진 코드가 있는데 힘겹게 다시 코딩할 필요는 없습니다. 항상 최신의 문제 없는 라이브러리를 잘 찾아서 사용하는 방법을 아는게 중요합니다.

 

간략하게 설명을 하면,

 - contracts : 실제 우리가 solidity언어로 스마트컨트랙트를 작성하는 공간입니다.

 - mgrations : contracts 폴더에서 작업한 코드를 블록체인에 deploy하기 위한 코드

 - node_modules : 스마트컨트랙트 개발에 필요한 라이브러리

 - test : 테스트를 위한 폴더

 - truffle-config.js 통신을 위한 설정부분.

 

통신을 위해서 truffle-config.js 부분의 소스를 아래와 같이 수정해줍니다.

     development: {
      host: "127.0.0.1",     // Localhost (default: none)
      port: 8545,            // Standard Ethereum port (default: none)
      network_id: "*",       // Any network (default: none)
     },

 

 

그리고 아래에 컴파일 버전도 아래와 같이 수정해줍니다.

 

 

 

pragma solidity ^0.5.2; // solidity 0.5.2 버전을 사용

contract TEST {  // contract 이름을 TEST로 지정
  string public constant name = "TEST token"; // 토큰의 이름은 TEST token
  string public constant symbol = "TEST"; // TEST라는 이름을 사용
  uint public constant decimals = 18; // 소수점 18자리까지 사용하겠음
  uint public constant INITIAL_SUPPLY = 1000 * 10 ** decimals; // 초기 발행량은 1000.000000000000000000 (소수점 18자리까지사용)
  string constant test = "You can not see this"; // public 표시가 없는 경우 해당 문구 볼 수 없음.
}

- 변수 선언시 public를 하지 않으면 외부에서 해당 변수를 찾을 수 없음.

- constant : 변하지 않는 변수 선언.

- public : 누구나 확인 할 수 있는 변수 선언.

- string : 문자열

- uint : unsigned integer (부호(+,-) 없는 정수- 양수 범위를 2배로 늘리게 됨, 즉 이진수와 같은 십진수가 됨)

 

그리고 아톰에디터를 보면, build폴더에 TETS.json 파일이 생성된걸 확인할 수 있습니다.

이 코드파일에서 "abi": 라고 되어 있는 부분이 있습니다.

ABI는 애플리케이션 바이너리 인터페이스(Application Binary Interface)라고 부릅니다.

모든 외부, 공개 함수의 선언 및 파라미터, 반환유형으로 구성된 인터페이스인데요.

ABI에서 계약을 정의하고, 계약함수를 호출하고자 하는 호출자는 ABI를 사용할 수 있습니다.

 

 

'스터디' 카테고리의 다른 글

solidity 2022/10/02  (0) 2022.10.02
Smartcontract Openzeppelin 22.09.18  (0) 2022.09.18
Solidity 2022.09.03  (0) 2022.09.03
이더 GAS 개념  (0) 2022.05.13
블록체인 공부블록체인 공부하기 : ERC Standards (펌)  (0) 2022.05.13
블로그 이미지

wtdsoul

,