일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시퀄라이즈
- wsl
- 벨로포터
- immer
- 우분투
- centos
- 머클루트
- wget
- 노드
- 전역설치
- MariaDB
- 라우터
- npm
- Sequelize
- 자바스크립트
- 환경변수
- Docker
- 솔리디티
- 블록체인
- 리액트
- 설치
- 리눅스
- node.js 교과서 따라하기
- 머클트리
- 일반유저
- 이더리움
- 변수
- 쉘스크립트
- 리액트를 다루는 기술
- 깃허브
- Today
- Total
목록전체 글 (154)
코드코코

1. testCode.sol 파일 생성 후 내용 작성 ownerAddress는 테스트 주소를 가져옴 2. deploy - 자동 컴파일 설정을 해놓아 컴파일이 된것이 사이드 바에서 확인됨 (초록색 체크 표시) - 사이드바의 세번째 탭으로 들어가 deploy를 클릭 - testCode.sol에서 작성했던 getOwnerAddress함수에 해당하는 버튼이 생김 - 해당 버튼 클릭 하면, 아래 잔액이 나타남. - 오른쪽 아래 로그로도 확인 가능

기본 틀 만들기 truffle init contracts/Voting_test.sol 파일 작성 및 내용 작성 명령어로 컴파일하기 컴파일러 설치 npm i -g solc 만약 에러가 나는 경우, npm i -g web3 : 버전문제로 실행이 안됨 npm r web3 지우고 npm i web3 다시 하면 버전 문제 해결되어 실행됨 컴파일하기 solcjs --abi --bin ./contracts/Voting_test.sol 컴파일되어도 아무것도 뜨지 않음 대신 파일리스트에 abi 와 bin 파일이 생김 abi : 방금 만들었던 솔리디티 파일에 대란 내용이 정리되어 있음 bin : 바이트 코드의 모습을 확인 할 수 있음 참고 ) truffle-config.js :배포하거나 할때, 설정 파일 web3와 연결하..

betAndDistribute 를 가지고 테스트 - 완벽한 유닛 테스트는 아니지만 , 인터그레이티트 테스트로 진행해보기 web3 : 빅넘버 라이브러리를 제공해줌 Distribute 테스트 코드 작성 테스트가 통과하지 않는다 다른 부분들 주석치고 테스트 ////////////////////////////////// 타입확인 코드 추가 한글자만 맞았을 때 다 틀렸을 때 직접해보기 ganache-cli 가 제공해주는 기능 evm_mine : 블록을 마이닝시킴 evm_increaseTime: 시간,, 참고 indexed 키워드 Up to three parameters can receive the attribute indexed which will cause the respective arguments to be..

//블록해시는 테스트하기에는 적합하지 않음 : 그 이유는 랜덤값이기 때문에 //임시정답을 셋팅해주고 모드를 바꿔가면서 테스트진행 테스트 모드, 배포용 모드 로 구분 false : 정답값으로 지정해준 값을 전달 받아서 사용 true : blockhash값 이용 getAnswerBlockHash 작성 setAnswerForTest 작성 스마트 컨트랙트 안에서 이더를 전송하는 방법 3가지 1. call : 단순히 이더를 보내는 것 뿐만 아니라, 다른 스마트 컨트랙트의 특정 함수를 호출할 때 사용. 함수를 호출할 때, 같이 이더를 보낼 수 있음. 외부로 스마트 컨트랙트를 호출했을 때는, 내가 짠 로직이 아닌 이상 즉, 내가 전부 컨트롤 하지 않는 이상 굉장히 위험하다. 2. send : 이더를 보냄, false..

contracts/Lottery.sol isMatch 함수 작성 컴파일에러 수정사항 전체적으로 변경 bytes memory 를 bytes1 로 변경하니 에러가 해결됨. test/lottery.test.js 작성 추가 작성 테스트에러가 남 원인을 보니 두번째 글자에 대한 코드를 누락함

검증 함수 작성 참고 사항 enum 솔리디티 버전 업이 되면서 추가됨 enum BlockStatus {Checkable, NotRevealed, BlockLimitPassed} function getBlockStatus(uint256 answerBlockNumber) internal view returns (BlockStatus){ if(block.number > answerBlockNumber && block.number - BLOCK_LIMIT < answerBlockNumber) { return BlockStatus.Checkable; } if(block.number = answerBlockNumber + BLOCK_LIMIT){ return BlockStatus.BlockLimitPassed; }..

bet 함수에서 사용하는 수수료가 얼마나 나올지 이더리움에서의 수수료 gas = gasLimit : 일단 트랜잭션 안에서의 가스리밋만 생각해보자 gasPrice ETH - 수수료 = gas(21000) * gasPrice(1 gWei == 10**9 wei) Gas 계산 - 32bytes 새로 저장 == 20000 gas 가나슈로 서버열고 trufflre migrate --reset truffle console Lottery.deployed().then(function(instance){lt=instance}) web3.eth.getAccounts() let bettor = '0xF76c9B7012c0A3870801eaAddB93B6352c8893DB' lt.bet("0xab",{from:bettor,v..

test/lottery.test.js const Lottery = artifacts.require('Lottery'); //[deployer,user1,user2] : ganache-cli에서 생성한 주소가 차례대로 들어옴. contract('Lottery', function ([deployer, user1, user2]) { let lottery; beforeEach(async () => { console.log('Before each'); //테스트용 배포 lottery = await Lottery.new() }) // it('Basic test', async () => { // console.log('Basic test'); // let owner = await lottery.owner(); // ..