반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- localserver
- unittest
- MAC
- VirtualBox
- 개발
- centos
- xcode
- Chrome
- IOS
- qunit
- linux
- Android
- MachineLearning
- 센토스
- build
- picker
- avds
- androidstudio
- react
- node
- PYTHON
- ReactNative
- jest
- TensorFlow
- vsCode
- webpack
- 리눅스
- 네트워크
- 맥
Archives
- Today
- Total
로메오의 블로그
[DApp] 후보자 등록, 확인하기 본문
반응형
/constracts/Election.sol
pragma solidity ^0.5.0;
contract Election {
// 후보자 모델
struct Candidate {
uint id;
string name;
uint voteCount;
}
// 후보자 기호 변수
uint public candidatesCount;
// 후보자 반환하기
mapping(uint => Candidate) public candidates;
// 후보자 등록하기
function addCandidate (string memory _name) public {
candidatesCount++;
candidates[candidatesCount] = Candidate(candidatesCount, _name, 0);
}
// constructor
constructor() public {
}
}
/migrations/2_deploy_contracts.js
var Election = artifacts.require("./Election.sol");
module.exports = function(deployer) {
deployer.deploy(Election);
};
truffle migrate
$ truffle migrate --reset
--reset 옵션을 붙여주면 개발용 local 블록체인에서 데이터를 초기화 할 수 있습니다.
migrate 할때마다 Gas Price로 소모된 비용을 확인 할 수 있고,
이것은 Ganache에서 ETH가 소진된것을 확인 할 수 있습니다.
truffle console
$ truffle console
truffle(development)> Election.deployed().then(i => app = i)
Election을 deploy하고 app 변수에 할당합니다.
후보자 등록하기
truffle(development)> app.addCandidate('romeoh')
romeoh 라는 후보자를 등록했습니다.
truffle(development)> app.candidates(1)
등록된 후보자를 확인할 수 있습니다.
몇 명 더 등록해보겠습니다.
truffle(development)> app.addCandidate('doraemong')
truffle(development)> app.addCandidate('pororo')
truffle(development)> app.candidates(2)
truffle(development)> app.candidates(3)
truffle(development)> app.candidates(99)
99번에는 데이터가 없는것도 알 수 있습니다.
후보자 갯수 읽어오기
truffle(development)> app.candidatesCount()
3명이 등록된것을 알 수 있습니다.
후보자 정보 확인하기
truffle(development)> app.candidates(1).then(c => romeoh = c)
truffle(development)> romeoh
romeoh 라는 변수에 1번 후보자를 할당했습니다.
truffle(development)> romeoh[0]
truffle(development)> romeoh[1]
truffle(development)> romeoh[2]
truffle(development)> romeoh.id
truffle(development)> romeoh.voteCount
truffle(development)> romeoh.voteCount.toNumber()
후보자의 정보를 확인 할 수 있습니다. (struct model)
Web3
블록체인에 배포할때 마다 우리는 가스를 소모하게 됩니다.
이 정보는 web3 명령으로 확인 할 수 있습니다.
truffle(development)> web3
truffle(development)> web3.eth
truffle(development)> web3.eth.getAccounts()
계정 정보를 확인할 수 있습니다.
반응형
'Backend > Python & Blockchain' 카테고리의 다른 글
[DApp] Solidity Front-end 구동하기 (0) | 2019.07.07 |
---|---|
[DApp] Solidity test 코드 작성하기 (0) | 2019.07.06 |
[DApp] Solidity 맛보기 [Smoke Test] (0) | 2019.07.06 |
[DApp] Truffle, Ganache, MetaMask 설치 (0) | 2019.07.06 |
[Ethereum] 나만의 코인 발행하기 ETH - ICO (0) | 2019.07.03 |
Comments