묻고 답해요
139만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결블록체인 이더리움 부동산 댑(Dapp) 만들기 - 기본편
강의내용 질문입니다 메타마스크
로컬호스트8545가 떠야하는데 테스트넷에 호스트가 뜨질 않아요 그래서 직접추가로 넣을려했는데 체인 ID를 가져올 수 없습니다. RPC URL이 올바른가요?라고 뜹니다 해결좀 해주세요 ㅠㅠㅠ
-
미해결초보자도 쉽게 따라하는 블록체인 프로그래밍(코인제작포함)
deposit 함수 관련 질문
deposit 함수 바디에 아무런 내용을 구현하지 않아도 작동이 되는 이유가 무엇인가요??
-
미해결초보자도 쉽게 따라하는 블록체인 프로그래밍(코인제작포함)
unit count 초기화 관련 질문있습니다.
안녕하세요!컨트랙트 개발 쪽에 관심이 생겨서 어제부터 수업 수강하고 있는데 너무 잘 듣고 있습니다:) 좋은 수업 감사합니다.'카운터 컨트랙트를 통해서 블록체인 기록여부 확인하기' 강의의 코드에 대해 궁금한 점이 있어 글 남깁니다. unit count; 이렇게 작성하면 저절로 count 변수에 0이 할당되는 걸까요? 따로 0 초기화를 안 해줘도 상관없는 건지 궁금합니다!getCount 함수에서 view 키워드를 반드시 적어줘야 하는 건가요? 감사합니다.
-
미해결천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
제언
블로그타고왓습니다개인적으로 굉장히양질의강의를 저렴하게들어 죄송? 할 느낌이들정도엿습니다 제언하자면 돈버는데좀 직접적인걸 올려주시면 추가 결제하고싶을거같아요!예를들어 블로그에 코스모스를통해 에어드랍하는법도 올려주신거라든가디파이이자농사라든가각종미션들과 트래픽을만들어서 신규코인(ex 앱토스)를 에어드랍받는법? 그런것들이요ㅎㅎ아무튼 유익한시간이엇습니다. 스타일도멋지세요. 화이팅!
-
미해결Ethereum 실전! 초보자를 위한 Lottery Dapp 개발
truffle project 세팅관련
안녕하세요!갑자기 걱정이 되는게이거 세팅하고 테스트한다고 해서 돈이 나가고 그런건 아닌거죠..?
-
미해결이더리움 입문 바이블: 모든 이더리움 입문자를 위하여
EVM(EVerenum Virtual Machine) 혹시 오타인가요?
이더리움 입문 바이블: 모든 이더리움 입문자를 위하여섹션 0 이더리움이란?지불(Payment), 그 이상을 향해EVM(EVerenum Virtual Machine) 이라는 내용이 있는데, 링크의 이더리움 황서 pdf를 검색해봐도 Ethereum Virtual Machine 이라고 검색됩니다. 혹시 오타인 건가요?
-
미해결Ethereum 실전! 초보자를 위한 Lottery Dapp 개발
gas 계산하는 부분이 이해가 되지 않습니다.
이더리움 GAS 계산 강의에서, Truffle console로 bet 함수의 가스비를 계산해보았습니다. 첫번째 실행과 두번째 실행시의 가스비가 15000 정도 차이가 나는데, 그 이유가 첫번째 실행에서는 tail 변수를 초기화해야해서 20000 gas가 소모되고 두번째 실행에서는 _tail 변수의 값만 업데이트하기 때문에 5000 gas가 소모되기 때문이라고 하셨습니다. 그런데 본 컨트렉트 코드에서는 tail을 초기화해주는 코드는 보이지 않고 오로지 _tail++; 코드만 존재하는데, 첫번째 실행에서도 업데이트를 해주는 것 아닐까요? 강사님의 답변을 기다리겠습니다!
-
미해결Ethereum 실전! 초보자를 위한 Lottery Dapp 개발
Lottery Bet 함수 테스트 강의 중 4:36에서 'from' 관련 오류가 발생합니다.
감사하게도 강좌를 통해 스마트 컨트랙트에 대해서 배우고 있는데요, Bet 테스트 코드 실행 시, 에러가 발생하고 있는데 어디서 문제인지 파악이 안되서 질문글 올려요 Error: The send transactions "from" field must be defined! Lottery.solpragma solidity >=0.4.22 <0.9.0; contract Lottery { struct BetInfo { uint256 answerBlockNumber; address payable bettor; byte challenges; //0xab... } address public owner; uint256 private _tail; uint256 private _head; mapping (uint256 => BetInfo) private _bets; uint256 private _pot; uint256 constant internal BET_AMOUNT = 5 * 10 ** 15; uint256 constant internal BET_BLOCK_INTERVAL = 3; uint256 constant internal BLOCK_LIMIT = 256; event BET(uint256 index, address bettor, uint256 amount, byte challenges, uint256 answerBlockNumber); constructor() public { owner = msg.sender; } function getPot() public view returns (uint256 pot) { return _pot; } /** * @dev 베팅을 한다. 유저는 0.005 ETH를 보내야 하고, 베팅을 1 byte 글자를 보낸다. * 큐에 저장된 베팅 정보는 이후 distribute 함수에서 해결된다. * @param challenges 유저가 베팅하는 글자 * @return 함수가 잘 수행되었는지 확인히는 bool 값 */ function bet(byte challenges) public payable returns (bool result) { // check the paater ether is sent require(msg.value == BET_AMOUNT, "Not enoughf ETH"); // push bet to the queue require(pushBet(challenges), "Fail to add a new Bet Info"); // emit evnet emit BET(_tail - 1, msg.sender, msg.value, challenges, block.number + BET_BLOCK_INTERVAL); return true; } // save ther bet to the queue // 결과값 검증 // check the answer function getBetInfo(uint256 index) public view returns (uint256 answerBlockNumber, address bettor, byte challenges) { BetInfo memory b = _bets[index]; answerBlockNumber = b.answerBlockNumber; bettor = b.bettor; challenges = b.challenges; } // function pushBet(byte challenges) public returns (bool) { function pushBet(byte challenges) internal returns (bool) { BetInfo memory b; b.bettor = msg.sender; b.answerBlockNumber = block.number + BET_BLOCK_INTERVAL; b.challenges = challenges; _bets[_tail] = b; _tail++; return true; } // function popBet(uint256 index) public returns (bool) { function popBet(uint256 index) internal returns (bool) { delete _bets[index]; return true; } } lottery.test.js const assertRevert = require("./assertRevert"); const Lottery = artifacts.require("Lottery"); contract('Lottery', function (deployer, user1, user2) { let lottery; beforeEach(async () => { lottery = await Lottery.new(); }) //it.only('getPot should return current pot', async () => { it('getPot should return current pot', async () => { let pot = await lottery.getPot(); assert.equal(pot, 0); }) describe('Bet', function () { console.log(user1); it.only('should fail when the bet money is not 0.005 ETH', async () => { // Fail transaction await assertRevert(lottery.bet('0xab', { from: user1, value: 4000000000000000 })) // transaction object {chainId, value, to, from, gas, gasPrice} }) it('should put the bet to the bet queue with 1 bet', async () => { // bet await lottery.bet('0xab', { from: user1, value: 5000000000000000 }) // check contract balance == 0.005 // check bet info // check log }) }) }); 중간에 제가 노트북을 리부트해서 서버의 정보가 날라가서 일까요?? ganache-cli -d -m tutorial로 다시 구동했는데, user1를 출력해보면 undefined가 나옵니다. ㅠㅠ
-
미해결이더리움 디앱(dApp) 개발과 프로젝트, 블록체인 스마트 컨트랙트
강의, 소개란에 있는 내용 전부 올라온거 맞나요?
이더리움 구성요소 - 2 이더리움 플랫폼 (합의, 실행, 데이터 계층)트랜잭션채굴 합의 알고리즘Nonce18. ECR20이더리움 프로토콜과 토큰Ropsten 네트워크테스트 이더 발급메타마스크 연결19. Web3.js라이브러리고래의 이더리움을 확인하는 간단 웹 구현20. 펫샵 프로젝트 개요트러플 박스프로젝트 구성 요소진행 순서21. 컨트랙트 작성과 마이그레이션깃 다운로드, 박스 구성요소컨트랙트 작성마이그레이션22. 펫샵 테스팅테스팅 이유와 방법23. 메타마스크 연결실 사용을 위한 연결 방법24. 프로젝트 사용위의 내용들 올라온거 맞아요?설치 방법 이런것보다 erc20이나 web3등등 좀 알아보고자 샀는데,왜 강의에 포함되어있지 않나요? 제가 못찾은건가요알려주세요,.
-
미해결블록체인 이더리움 부동산 댑(Dapp) 만들기 - 기본편
truffle develop 명령 오류
안녕하세요 강의를 듣는 중 오류가 해결되지 않아 질문드립니다!트러플&컨트랙 배포1(구조 설명, 배포) 강의 6분즈음에 명령어 truffle develop를 입력하면powershell창에This version of µWS is not compatible with your Node.js build:Error: node-loader:Error: The specified module could not be found.C:\Users\user/AppData\Roaming\npm\node_modules\truffle\node_modules\ganache\dist\node/YPW/8Dht.nodeFalling back to a NodeJS implementation; performance may be degraded.Could not find suitable configuration file.Truffle v5.7.3 (core: 5.7.3)Node v18.13.0이러한 오류가 뜨고 진행되지 않습니다. Nodejs 문제인가싶어 버전바꾸어 다시 설치하고,truffle 버전 문제인가싶어 truffle역시 삭제 후 재설치해보았지만 해결하지 못하였습니다.현재 프로그램이 찾지 못하고있는 모듈과 파일이 어떤 문제로 찾지 못하는 것일까요..?
-
미해결Ethereum 실전! 초보자를 위한 Lottery Dapp 개발
address payable error
I am getting the error in solidity 0.8.7
-
미해결리액트로 구현하는 블록체인 이더리움 ERC721(NFT)
IPFS
혹시 IPFS 예제도 올려주실 수 있을까요?? 혼자 해보고 있는데 어떻게 하는지 감이 잘 안옵니다ㅠㅠ
-
미해결블록체인 이더리움 부동산 댑(Dapp) 만들기 - 기본편
remix 홈페이지가 업데이트 되었네요...
remix홈페이지 ui가 강의와 많이 다른 것 같습니다... ㅠㅠㅠㅠ
-
미해결이더리움 & 솔리디티 기반의 투표 dApp 구현하기
3.1 강의에서 질문 있습니다.
constructor(bytes32[] => candidateNames)를 하면 Data location must be "memory" for parameter in function, but none was given. 이라고 되어 있어서 빨갛게 줄이 쳐져있습니다. 어떻게 해결하면 될까요?