작성
·
295
0
우선 현재까지 가르쳐주신 내용을 잘 따라왔습니다. 하지만 현재 단계인 매물구입함수를 구현하고 실행하는 과정에서 다음과 같은 2가지 에러가 발생했습니다.
Error: sender doesn't have enough funds to send tx. The upfront cost is: 1188468692540441322405034084557662891273515906800840149300 and the sender's account only has: 100000000000000000000
와 같은 에러가 발생합니다.
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)
와 같은 주소값 에러가 발생합니다.
혹시 위와 같은 에러를 해결해 보신 경험이 있으시다면 조언 부탁드리며, 단위테스트나 디버딩을 해 보고 싶은데, 로그를 어디에 남겨야 하는지에 대한 지식이 전무하다보니 이 부분도 조언 부탁드립니다.
긴글 읽어 주셔서 감사합니다.
답변 6
0
0
0
두번 결제 되는 것은 제가 코드를 테스트 하면서 찍어본다는 것이 결제하는걸 찍어보는 어처구니 없는 짓을 해서 두번 결제가 되었던 것이구요. 그 부분 삭제하니까 정상 결제 되었습니다. 단순하지만 크리티컬한 제 실수였어요.
0
@한상윤
안녕하세요. 좋은 발견 해주셔서 감사합니다. 공지해야겠네요.
https://github.com/MetaMask/metamask-extension/issues/1676
링크 주신걸로 무슨 이슈인지 확인은 했습니다. 메타마스크의 버튼을 빨리 눌렀을 때 발생하는 이슈인데 똑같은 이슈 맞나요? 이미 해결된걸로 보아서는 그 부분은 아닌거같고.. 만약 고쳤다하고 안고쳐졌으면 메타마스크의 문제긴하네요. ㄱ-
0
0
우선 invalid address 에러가 발생한 이유는 metamask의 정책 변경 때문이었습니다.
관련 내용은 https://medium.com/metamask/introducing-privacy-mode-42549d4870fa
에 잘 나와 있습니다. 2018년 11월 2번째 주부터 metamask를 업데이트 하면서 일괄 적용한 것으로 보입니다.
임시해결방안은 metamask를 실행한 후, settings에 들어가서 Security & Privacy 의 Privacy mode를 해제하면
강사님의 코드로 매물거래가 가능합니다.
하지만 아직 까지 왜 매물 거래가 2번 연속으로 발생해야 하는지, 이 문제를 어떻게 해결해야 할 지는 진행중입니다.