truffle compile truffle migratetruffle compile 완료 화면 (warning 무시)truffle migrate 완료 화면
배포 된 IngToken의 contract address 값 빼놓기0x28DA734D00041840182a5dEFd6Db94bfeE363647
ABI 가져오기 /build/contracts/IngToken.json 파일 안에 3번째~65번째 줄까지 복사 텍스트나 콤마 제외하고 배열만 복사
Contract > Interact with Contract 선택 > 아래와 같이 입력 후 Interact 클릭Contract Address : 14번에서 가져온 값, ABI/JSON Interface : 15번에서 가져온 값
새로운 팝업창 뜨면서 리스트에 IngToken.sol에 적었던 변수 내용이 출력 됨 하지만 /* string text = "hello world 11"; */ 이 변수는 출력되지 않음, public 처리가 되지 않았기 때문 아래와 같이 테스트 가능 리스트DecimalsNameSymbolTotalSupply
IngToken.sol 코드 수정
// SPDX-License-Identifier: MIT
pragma solidity >= 0.4.22 < 0.9.0;
import '../node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol';
contract IngToken is ERC20 {
string public _name = "INGOO TOKEN";
string public _symbol = "ING";
// uint256 public _decimals = 18;
uint256 public _totalSupply = 10000 * (10 ** uint256(decimals())); // ** == 제곱
string text = "hello world 11";
constructor() ERC20(_name, _symbol) {
_mint(msg.sender, _totalSupply); // 토큰 생성 끝
}
}
/build/contract에 있는 기존 json 파일 삭제 후 새로 컴파일과 배포 진행 truffle comiple truffle migrate현재까지 작업한 폴더 구조
새로 배포 된 IngToken의 contract address값 빼놓기 ABI도 새로 가져오기 /build/contracts/IngToken.json 파일 안에 3번째~65번째 줄까지 복사0x80f2164E37BC92C7E79fDA3D622987ED5d607c8B
MEW에 해당 값 입력 후 Interact리스트Interact 클릭BalanceOf 테스트 // Inputs : 아래 account값 내용 입력0x3b3018d8868F22f6537Cc9Bff48534D518BDa66F
메타마스크 import token으로 새 토큰 생성토큰 계약 주소 : 새로 가져왔던 contract address새 토큰 생성 완료, 10000 ING 확인
IngToken.sol 코드 수정
// SPDX-License-Identifier: MIT
pragma solidity >= 0.4.22 < 0.9.0;
import '../node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol';
// Ownable.sol : 배포자만 실행 할 수 있게 해주는 라이브러리
import '../node_modules/openzeppelin-solidity/contracts/access/Ownable.sol';
// Pausable.sol : 메서드를 호출하면 해당 메서드를 사용 할 수 있음
// pause() : 컨트랙트 동작을 잠시 멈춤
// unpause () : 컨트랙트 동작을 잠시 실행
import '../node_modules/openzeppelin-solidity/contracts/security/Pausable.sol';
contract IngToken is ERC20, Ownable, Pausable {
string public _name = "INGOO TOKEN";
string public _symbol = "ING";
// uint256 public _decimals = 18;
uint256 public _totalSupply = 10000 * (10 ** uint256(decimals())); // ** == 제곱
string text = "hello world 11";
constructor() ERC20(_name, _symbol) {
_mint(msg.sender, _totalSupply); // 토큰 생성 끝
}
// onlyOwner로 배포자만 실행 할 수 있게 처리
function pause() public onlyOwner {
_pause();
}
function unpause() public onlyOwner {
_unpause();
}
}
/build/contract에 있는 기존 json 파일 삭제 후 새로 컴파일과 배포 진행 truffle comiple truffle migrate
새로 배포 된 IngToken의 contract address값 빼놓기 ABI도 새로 가져오기 /build/contracts/IngToken.json 파일 안에 3번째~65번째 줄까지 복사 0x83C1D984637441b6925950342c55a1bf8E736615
메타마스크에서 가나슈 1번 인덱스의 PRIAVET KEY로 계정 추가 후 테스트를 위해 추가 된 계정에 500 ING 보내기10000 ING -> 9500 ING0 ING -> 500 ING
MEW에 해당 값 입력 후 InteractInteact 클릭리스트Pause 선택 후 Write 클릭위와 같은 화면 출력, Confirm & Send 클릭
새 프로젝트 생성[ETHERUM] 탭 선택 후 CREATE A PROJECT 클릭프로젝트명 입력
프로젝트 선택 후 [SETTINGS] 탭 클릭ENDPOINTS가 Mainer으로 기본 설정 되어있는데 테스트넷인 Ropsten으로 변경 후 SAVE CHANGES 클릭변경 완료
truffle-config.js 파일 수정21~24번째 줄 주석 해제60~67번째 줄 주석 해제infura.io에 있는 KEYS의 복사 버튼 클릭61번째 줄 URL 수정 // infura.io에서 복사한 내용 붙여넣기
메타마스크 회원 가입 시 받았던 시드 문구 필요 시드문구 기억 안날 경우 아래 참고동그라미 버튼 클릭 -> 설정 클릭보안 및 개인정보 보호 클릭비밀 복구 구문 공개 클릭 후 패스워드 입력
root 디렉토리(truffle-config.js와 같은 경로)에 .secret 파일 생성 후 시드 문구 붙여넣기
/build/contract에 있는 기존 json 파일 삭제 후 새로 컴파일과 배포 진행 truffle comiple // 컴파일 오류 발생npm install @truffle/hdwallet-provider로 해결
truffle migrate // 테스트넷에 배포하기 때문에 시간 소요배포 완료 화면