728x90
mkdir truffle
cd truffle
truffle init
contracts/SimpleStore.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
contract SimpleStore{
uint256 private value;
address public owner;
constructor(uint256 _value){ //배포됐을 때 생성
value=_value;
owner = msg.sender; //스마트컨트랜트 발동한 사람의 주소 : 누구일까? 배포자의 공개키.
}
//contructor의 인스턴스는 CA 이전에 생성된다.
function getAddress() public view returns (address){
return msg.sender;
}
}
contracts/gyulToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
contract gyulToken{
mapping(address => uint256) public balances;
string public name = "gyulToken";
string public symbol = "GTK";
uint8 public decimals = 18;
uint256 public totalSupply = 100000000 * 10 ** decimals; //wei단위
event Transfer(address _from, address _to, uint256 _value);
constructor(){
balances[msg.sender] = totalSupply;
/*
{
"0x000000000000000?":10000000
}
*/
}
function balanceOf(address _owner) public view returns(uint256 balance){
return balances[_owner];
}
function transfer(address _to, uint256 _value) public returns(bool success){
require(balances[msg.sender] >= _value); // nodejs 필요하다, 파일 가져올 때 / 솔리디티에서는? 조건문
//require(false) 꺼진다 require(true) 그대로 아래가 실행
balances[msg.sender] -= _value;
balances[_to] += _value;
emit Transfer(msg.sender, _to, _value);
return true;
}
}
/*
5개
name()
symbol()
decimals()
totalSupply()
balances()
transfer()
balanceOf() //남은 잔액 확인
*/
// 0xF6e96ba44210B9EF4a662F26408A698D3bC97453 :ca계정이디
// 가나슈 코인베이스 비밀키 메타마스크 등록 0xbef91be5ee8254e9457d68f05d7a23b2e917fdabb1aff41c3826383f764930bf
//메타마스크 토큰 가져오기: abi가 필요하지 않은 이유는, 함수가 같기때문에...
//(모두가 내장되어 있는 함수를 사용하기 때문에 ㅇㅇabi에 사용자 지정함수를 등록할 필요가없지)
새 터미널 열고
npx ganache-cli
다른 터미널에
truffle migration
CA 복사해놓기.
truffle-config.js
network부분 주석풀어놓는 거 잊지말기.
메타 private key등록후 거기서 토큰 CA주소 붙여넣으면 토큰이 등록된다.
truffle console
> SimpleStore.deployed().then(it=>instance = it)
> instance.owner()
코인 베이스 계정이 출력된다.
메타마스크에서 private key로 다른 계정 하나 더 추가해주고,
CA계정을 등록하면, 토큰을 주고 받을 수 있다!
728x90
'블록체인 > 스마트 컨트랙트' 카테고리의 다른 글
[스마트 컨트랙트] 물건 사고, 환불하는 dApp 간단히 구현 (0) | 2022.07.20 |
---|---|
[스마트 컨트랙트] 투표 dApp 만들어 보기 (0) | 2022.07.18 |
[ truffle, 스마트 컨트랙트 ] 솔리디티 event 사용해서 dApp 간단하게 구현해보기 (0) | 2022.07.14 |
[truffle, 스마트 컨트랙트] d App 간단하게 만들어보기 (0) | 2022.07.13 |
[truffle] 트러플 사용 방법 알아보기. (0) | 2022.07.12 |