ganache-cli 명령을 통해서 이더리움 노드를 시작할 수 있습니다.
아래와 같이 10개의 계정이 생성이 되며, 각 계정은 100이더의 잔고를 보유하고 있습니다.
물론 이건 내 PC에만 존재하는 이더리움이므로 실제가치는 없습니다. 내 PC에서 이 이더리움 계정과 잔고를 가지고 스마트계약이나 다양한 것들을 실험해볼 수 있습니다.
아래와 같이 ganache-cli --host 0.0.0.0 을 실행합니다.
이후에 진행될 테스트에서는 첫번째 지갑주소 및 PrivateKey를 사용합니다.
Ganache가 설치된 사용자마다 이 지갑주소와 PirvateKey는 다릅니다.
5. MyEtherWallet 연결하기
마지막으로 블록체인과 통신을 위해서 MyEtherWallet을 연결하여 사용합니다.
스마트컨트랙트와 통신하는 기능이 있기때문에 유용하게 사용할 수 있습니다.
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 |