강의

멘토링

로드맵

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của microscope830303
microscope830303

câu hỏi đã được viết

Tạo Dapp bất động sản trên blockchain Ethereum - Phần cơ bản

Kết nối hàm mua vật phẩm hợp đồng

안녕하세요. 매물구입함수 실행 에러 문의드립니다.

Viết

·

487

0

우선 현재까지 가르쳐주신 내용을 잘 따라왔습니다. 하지만 현재 단계인 매물구입함수를 구현하고 실행하는 과정에서 다음과 같은 2가지 에러가 발생했습니다.

  1. 작성해 주신 소스를 실행시켰을 때,
    initWeb3: function() {
    if(typeof web3 !== 'undefined'){
    App.web3Provider = web3.currentProvider;
    web3 = new Web3(web3.currentProvider);
    } else {
    App.web3Provider = new web3.providers.HttpProvider('http://localhost:8545');
    web3 = new Web3(App.web3Provider);
    }
    return App.initContract();
    이 부분에서 invalid address 라는 에러가 발생합니다. 혹시 해결하신 경험이 있으시면 조언 부탁드립니다.
    그리고 이 부분을 단순하게 else로 실행하도록 했을 때에는 (typeof web3 == undefined 로 설정했을 때.) 아래와 같은 에러들이 발생합니다.
  2. 교육 내용을 따라 바로 진행했을 때, 처음에는 메타마스크의 작동은 정상이었으며, 단 한번 매입하는 데에 두번의 매입 트랜잭션이 발생해서 지정된 이더의 2배가 차감, 차입 되는 현상이 있었습니다.
  3. 저러한 이상현상을 해결하고자, build 폴더를 삭제하고, metamask의 설치도 다시 진행한 후, 재 migration을 진행하였습니다만, 현재는 metamask에서 transaction 발생하는 화면 조차 나타나지 않으며, truffle console로 해당 함수를 실행했을 시truffle(ganache)> app.buyRealEstate(9, web3.toHex('사용자이름'), 35, {from:'0x2DcCa9B61E50D79A90a813fcD6a42c3A3Ac52e6f', value:1.23 });

Error: sender doesn't have enough funds to send tx. The upfront cost is: 1188468692540441322405034084557662891273515906800840149300 and the sender's account only has: 100000000000000000000

와 같은 에러가 발생합니다.

  1. 그리고 truffle console로 instance를 생성하여 테스트를 진행해 봤을 때에도,

truffle(ganache)> app.getBuyerInfo(0);

Error: Attempting to run transaction which calls a contract function, but recipient address 0x0b4b148c6ab76335899a1294c22f48964cb04869 is not a contract address

at XMLHttpRequest._onHttpResponseEnd (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~xhr2libxhr2.js:509:1)

at XMLHttpRequest._setReadyState (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~xhr2libxhr2.js:354:1)

at XMLHttpRequestEventTarget.dispatchEvent (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~xhr2libxhr2.js:64:1)

at XMLHttpRequest.request.onreadystatechange (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~web3libweb3httpprovider.js:128:1)

at C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:packagestruffle-providerwrapper.js:134:1

at C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~web3libweb3requestmanager.js:86:1

at Object.InvalidResponse (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~web3libweb3errors.js:38:1)

truffle(ganache)> app.buyRealEstate(0, 'syhan01', 36);

Error: Attempting to run transaction which calls a contract function, but recipient address 0x0b4b148c6ab76335899a1294c22f48964cb04869 is not a contract address

at XMLHttpRequest._onHttpResponseEnd (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~xhr2libxhr2.js:509:1)

at XMLHttpRequest._setReadyState (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~xhr2libxhr2.js:354:1)

at XMLHttpRequestEventTarget.dispatchEvent (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~xhr2libxhr2.js:64:1)

at XMLHttpRequest.request.onreadystatechange (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~web3libweb3httpprovider.js:128:1)

at C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:packagestruffle-providerwrapper.js:134:1

at C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~web3libweb3requestmanager.js:86:1

at Object.InvalidResponse (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~web3libweb3errors.js:38:1)

truffle(ganache)> app.getAllBuyers();

Error: Attempting to run transaction which calls a contract function, but recipient address 0x0b4b148c6ab76335899a1294c22f48964cb04869 is not a contract address

at XMLHttpRequest._onHttpResponseEnd (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~xhr2libxhr2.js:509:1)

at XMLHttpRequest._setReadyState (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~xhr2libxhr2.js:354:1)

at XMLHttpRequestEventTarget.dispatchEvent (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~xhr2libxhr2.js:64:1)

at XMLHttpRequest.request.onreadystatechange (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~web3libweb3httpprovider.js:128:1)

at C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:packagestruffle-providerwrapper.js:134:1

at C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~web3libweb3requestmanager.js:86:1

at Object.InvalidResponse (C:UsersmicroAppDataRoamingnpmnode_modulestrufflebuildwebpack:~web3libweb3errors.js:38:1)

와 같은 주소값 에러가 발생합니다.

혹시 위와 같은 에러를 해결해 보신 경험이 있으시다면 조언 부탁드리며, 단위테스트나 디버딩을 해 보고 싶은데, 로그를 어디에 남겨야 하는지에 대한 지식이 전무하다보니 이 부분도 조언 부탁드립니다.

긴글 읽어 주셔서 감사합니다.

dappEthereumblockchain

Quiz

51% người trả lời sai. Hãy thử ngay!

Ganache 재시작 후 메타마스크로 트랜잭션 전송 시 RPC 에러가 발생하는 주된 이유는 무엇일까요?

스마트 컨트랙트를 다시 배포하지 않아서입니다.

Ganache의 네트워크 ID를 변경하지 않아서입니다.

메타마스크 캐시에 저장된 이전 트랜잭션 정보가 유효하지 않아서입니다.

프론트엔드 앱을 새로고침해야 해서입니다.

Câu trả lời 6

0

다시 migrate하니까 되네..

0

메타마스크 2번 뜨는거 어떻게 해결하셨나요 ㅠㅠ

0

microscope830303님의 프로필 이미지
microscope830303
Người đặt câu hỏi

두번 결제 되는 것은 제가 코드를 테스트 하면서 찍어본다는 것이 결제하는걸 찍어보는 어처구니 없는 짓을 해서 두번 결제가 되었던 것이구요. 그 부분 삭제하니까 정상 결제 되었습니다. 단순하지만 크리티컬한 제 실수였어요.

0

SEJONG IT EDU님의 프로필 이미지
SEJONG IT EDU
Người chia sẻ kiến thức

@한상윤
안녕하세요. 좋은 발견 해주셔서 감사합니다. 공지해야겠네요.

https://github.com/MetaMask/metamask-extension/issues/1676 

링크 주신걸로 무슨 이슈인지 확인은 했습니다. 메타마스크의 버튼을 빨리 눌렀을 때 발생하는 이슈인데 똑같은 이슈 맞나요? 이미 해결된걸로 보아서는 그 부분은 아닌거같고.. 만약 고쳤다하고 안고쳐졌으면 메타마스크의 문제긴하네요. ㄱ-

0

진짜 감사합니다. 저도 같은 에러였는데 도저히 방법을 못찾았었거든요..정말로 감사드려요

0

microscope830303님의 프로필 이미지
microscope830303
Người đặt câu hỏi

우선 invalid address 에러가 발생한 이유는 metamask의 정책 변경 때문이었습니다.
관련 내용은 https://medium.com/metamask/introducing-privacy-mode-42549d4870fa
에 잘 나와 있습니다. 2018년 11월 2번째 주부터 metamask를 업데이트 하면서 일괄 적용한 것으로 보입니다.
임시해결방안은 metamask를 실행한 후, settings에 들어가서 Security & Privacy 의 Privacy mode를 해제하면
강사님의 코드로 매물거래가 가능합니다.
하지만 아직 까지 왜 매물 거래가 2번 연속으로 발생해야 하는지, 이 문제를 어떻게 해결해야 할 지는 진행중입니다.

Hình ảnh hồ sơ của microscope830303
microscope830303

câu hỏi đã được viết

Đặt câu hỏi