일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Chrome
- 리눅스
- Android
- react
- PYTHON
- 개발
- unittest
- localserver
- centos
- vsCode
- xcode
- androidstudio
- qunit
- VirtualBox
- 티스토리챌린지
- 오블완
- 센토스
- MachineLearning
- linux
- 맥
- node
- TensorFlow
- 네트워크
- build
- jest
- webpack
- IOS
- ReactNative
- MAC
- Today
- Total
목록분류 전체보기 (490)
로메오의 블로그
[DAPP] 투표하기 테스트 코드 작성 위 포스트에 이어 계속 테스트코드를 작성합니다. /test/election.spec.js const Election = artifacts.require('./Election.sol') contract('Election', accounts => { .... it('투표 유효성 검사', () => { return Election.deployed() .then(instance => { electionInstance = instance // 유효하지 않은 후보자에게 투표한다. return electionInstance.vote(99, {from: accounts[0]}) }) .then(assert.fail) .catch(error => { assert(error.mess..
중복투표를 방지하기 위해 vote 메서드에 코드를 추가하겠습니다. /contracts/Election.sol pragma solidity ^0.5.0; contract Election { ... // 투표하기 function vote(uint _candidateId) public { // 중복투표를 하면 오류를 발생 시킨다. require(!voters[msg.sender]); // 목록에 없는 후보자에게 투표하면 오류를 발생시킨다. require(_candidateId > 0 && _candidateId Candidate) public candidates; // 투표에 참여한 ID 기록 mapping(address => bool) public voters; // 후보자 등록하기 function addC..
앞에서 작성한 투표하기 solidity 코딩에 대한 테스트 코드를 작성합니다. [DAPP] SOLIDITY TEST 코드 작성하기 위 포스트에 이어 테스트 코드를 추가합니다. /test/election.spec.js const Election = artifacts.require('./Election.sol') contract('Election', accounts => { .... it('투표하기', () => { return Election.deployed() .then(instance => { electionInstance = instance candidateId = 1 // 1번 후보자에게 투표함 return electionInstance.vote(candidateId, {from: accounts[..
/contracts/Election.sol 추가하기 pragma solidity ^0.5.0; contract Election { .... // 투표에 참여한 ID 기록 mapping(address => bool) public voters; .... // 투표하기 function vote(uint _candidateId) public { // 투표에 참여한 ID를 기록해서 두번 투표하지 못하도록 한다. voters[msg.sender] = true; // 득표수를 +1 한다. candidates[_candidateId].voteCount ++; } } 위와 같이 voters 데이터와 vote 메서드를 추가합니다. 그리고 constructor에서 3명의 후보자를 추가한 코드를 주석처리 합니다. 최종 코드는..
CANDIDATE 등록, 확인하기 Solidate로 작성한 Back-end 코드는 위 포스트를 그대로 사용합니다. 다만 constructor에 후보자를 미리 3명 정도 등록하는 코드를 추가하겠습니다. /contracts/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 _n..
Truffle로 프로젝트를 생성하면 기본적으로 제공하는 Front-end 소스가 포함되어 있습니다. SOLIDITY 맛보기 [SMOKE TEST] src 폴더가 Front-end 소스를 구현한 코드입니다. 크롬 브라우저에서 구동해보겠습니다. MetaMask 로그인 브라우저로 구동하기 전에 먼저 크롬 브라우저에 MetaMask에 로그인되어 있어야 합니다. 메타마스크 설치 [METAMASK - 여우지갑] 위 포스트에서 크롬용 MetaMask를 설치하시고 로그인까지 하시기 바랍니다. Truffle Migrate $ truffle migrate --reset back-end를 구동합니다. 터미널을 그대로 두시고 + 아이콘을 눌러서 터미널을 새로 엽니다. $ npm run dev 1: bash는 truffle로 ..
CANDIDATE 등록, 확인하기 위 포스트에서 작성한 코드를 그대로 사용하겠습니다. 테스트파일 생성 touch test/election.spec.js test/election.spec.js const Election = artifacts.require('./Election.sol') contract('Election', accounts => { it('후보자 두 명 등록하면 candidatesCount는 2명 이다.', () => { return Election.deployed() .then(instance => { // 두명의 후보자를 등록합니다. instance.addCandidate('romeoh') instance.addCandidate('doraemong') // candidatesCount를..
/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); } // con..