Insufficient funds for the sender for value

image

기존 잘되던 계약서가 어제 저녁부터 가스비가 없다고 나오면서

트랜잭션이 거부됩니다.

가스비 상향건이 있었던걸 봐서 options.gas 의 값은 상당히 크게 올려논 상황입니다.

    caver = new Caver(klaytn);
    kip17Instance = new caver.klay.Contract(contractAbi, contractAddress);
    kip17Instance.options.from = klaytn.selectedAddress;
    kip17Instance.options.gas = 7500000000;

해당 내용 문의 드립니다.

안녕하세요,

오늘 새벽 2시 경 baobab에서의 가스비가 인상되었으며, 자세한 내용은 아래 포스팅을 참고하시기 바랍니다.

Kaikas에서 실행을 승인하기 위해 노출되는 DApp Request 화면에서 표시되는 예상 수수료보다 많은 잔고를 보유하고 계신지 확인 부탁드리며, 혹시 Kaikas UI상 표시되는 수수료가 부정확하거나 다른 문제가 있다면 아래 Kaikas Help Center를 통해 문의 부탁드립니다.

감사합니다.

해당 내용 확인해서

    caver = new Caver(klaytn);
    kip17Instance = new caver.klay.Contract(contractAbi, contractAddress);
    kip17Instance.options.from = klaytn.selectedAddress;
    kip17Instance.options.gas = 7500000000;

코드의 gas비 값을 크게 상향해놓은 상태입니다.
(사실 안되서 작게도 해보고 크게도 해보고 다양한값을 넣어봤습니다.)

스크린샷 보시면 8클레이 이상 보유중입니다.

혹시 저 Kaikas 홈의 UI 말고, 트랜잭션을 승인하는 DApp Request 화면의 스크린샷도 제공해주실 수 있을까요? 예상 수수료가 어떻게 표시되는지 확인이 필요해 보입니다.

이번 가스비 인상으로 인해 컨트랙트 배포에 경우에 따라 꽤 큰 클레이가 필요한 경우들이 보여지고 있어서, 8 클레이면 충분한 수량이라고 말씀드리기는 다소 어렵습니다.

caver.min.js:2 Uncaught (in promise) Error: Returned error: Error: Error: insufficient funds of the sender for value
at Object.ErrorResponse (caver.min.js:2:861516)
at caver.min.js:2:906623
at inpage.js:24:1841
at inpage.js:1:36403
at i (inpage.js:1:54741)
at inpage.js:1:39171
at inpage.js:1:36403
at f (inpage.js:1:39447)
at s (inpage.js:1:39369)
at inpage.js:1:39171

8klay 이상 보유중입니다.(현재 바오밥넷)

데이터량이 크건 작건 관계없이

현재 기준 가스비 소모하는 모든 트랜잭션이 거부되는 상황입니다.

스샷 트랜잭션은 단순 addMinter 함수 호출로

지갑 주소하나를 계약서에 저장하는 함수입니다.

혹시 현재 설치된 Kaikas 버전을 확인해주실 수 있을까요? 설정 > Kaikas 정보에서 확인 가능하십니다.

현재 1.9.5 버전이 최신으로, 그 미만 버전의 경우 바오밥에서 정상적으로 동작 가능하지 않습니다.
관련 공지:

cavers는 옛날 버전 사용중입니다.
(1.4.1 이하버전)

확인 감사합니다. 내부적으로 조금 더 확인해보고 말씀 드리겠습니다.

1 Like

내부에서 정확히 재현이 안 되어 확인에 어려움을 겪고 있는데, 혹시 해당 tx가 실제 제출되었고 revert된 것이라면 tx hash를 알 수 있을까요?

제가 잠깐 밖에 나와서 확인이 안되는데

해당 트랜잭션은 아예 블록체인에 올라가지도 못해서

스코프에서도 확인이 불가능했습니다(리버트된 트랜잭이 아닙니다)
(카이카스 지갑 ui 서도 트랜잭 확인을 위한 스코프 링크도 없었음)

Cavers 버전 문제일꺼같긴한데

https://cdnjs.cloudflare.com/ajax/libs/caver-js/1.6.8/caver.min.js

스크립트에 넣어서 사용중입니다

코드는 사실 워낙 간단해서

딱히 문제생길 소지가 없는 코드고요

새벽 이전에는 잘되던 계약서입니다(가스비 상승 이전에 올린 계약서)

혹시 착각하실까봐 그런데

Cdn에는 1.6.8 버전이라고 적혀있는데

실제론1.4.2 이전 버전입니다

안녕하세요, 혹시 다시 들어가시면 아래 내용 추가로 확인/제공 가능하실까요?

  1. 코드 전문
  2. 승인 창에서 “데이터 보기” 부분에 노출되는 내용
  3. kip17instance.methods.addMinter(“xxx”).estimateGas() 수행 결과

감사합니다.

트랜잭이 지갑에서 거부된 느낌입니다.

혹시 코드에 대해서 의심하실까봐 첨언 드리면

가스비 상승 이전에는 정상동작하는 코드였고,

react 나 여타 프레임웍 사용하는 코드가 아니라

cdn 으로 caver-js 불러와서 아주 간단하게 짜여진 코드입니다 ^^;;;

참고로 저코드에 catch error 부분에 안걸리는걸로 봐서는

내부에서는 throw 처리가 안되나봅니다.

제가 지금 코딩할 상황이 아니라 estimateGas 함수 호출 결과값은 오늘 저녁에 댓글남겨드리겟습니다

네, 바쁘신 와중에도 업데이트해주셔서 감사합니다.

저희가 코드를 요청하는 부분은, 정확한 분석과 재현을 위한 목적이지 코드에 대해서 의심하거나 하는 부분은 아님을 말씀드립니다. 내부적으로 kip17 add minter를 짜서 실행해보았으나 에러가 재현이 안 되는 상황으로, 컨트랙트 코드를 포함한 코드 전문을 알려주시면 재현에 도움이 될 것 같습니다. 혹시 포럼에서 공개적인 공유가 우려되신다면 support.kaikas@groundx.xyz 로 보내주셔도 무방합니다.

전달 시에는, 이미 요청드렸던 아래 사항도 함께 확인 부탁드리겠습니다.

  1. 승인 창에서 “데이터 보기” 부분에 노출되는 내용
  2. kip17instance.methods.addMinter(“xxx”).estimateGas() 수행 결과

내부적으로는 예상 수수료를 추정하기 위해 Kaikas에서 호출하는 estimateGas가 실패하는 경우 (이미 추가된 minter를 추가하는 등의 시나리오) tx에 설정한 gasLimit을 기준으로 Kaikas UI 상 예상 수수료가 보여지는 것으로 추측되나, 정확한 재현 및 확인이 필요합니다.

메일 답변드렸는데, 포럼하고 연동이 됏었던거네요.

해당 내용은 지우겠습니다.

estimateGas 함수가 호출되었습니다.

image

일단 현재 기준으로 동일한 코드/동일한 웹페이지에서

테스트넷은 가스비 부족 에러가 뜨면서 동작하지 않으며(충분한 클레이 보유중)

메인넷에서는 정상동작하는 상황이니 참고하셔요.

안녕하세요,

내부적으로 정확한 재현이 되지 않고 있어 문제 확인에 어려움을 겪고 있습니다.
해당 컨트랙트를 포함한 소스코드 전문과 지금 바오밥에 배포된 컨트랙트 주소를 전달 부탁드립니다.
support.kaikas@groundx.xyz

살펴봤을 때 아직 메일을 전송해주시지 않은 것으로 보이는데, 혹시 저희가 놓쳤을 수도 있으므로 발송하신 메일 제목을 기재해주시면 좀 더 검색에 수월할 것 같습니다.

감사합니다.

안녕하세요
지금 코드에 gas = 7500000000; 이렇게 적어두었느데 이건 gas limit으로 읽히는거같더라고요.
그래서 테스트넷에서 향상된 가스비인 750ston * gas 만큼의 클레이가 있어야지 트랜잭션이날라가는것으로 알고있습니다. 실제로 그만큼이 안들더라도. limit만큼은 있어야지 트랜잭션이 날라가요.

750ston 이면 0.00000075 이고
적으신 gas = 7500000000 이니
두개를 곱하면 1000클레이가 넘는 수치가 나옵니다.

gas적으신걸 조금 줄이시고 시도해보는건어떨까요