[긴급] 클레이 전송시 insufficient funds of the sender for value 오류 문의

계정에 0.5 klay 가 있습니다.
수수료 0.000525 klay 를 제외한 0.49895 klay 전송시

{"code":1065001,"message":"failed to send a raw transaction to klaytn node; insufficient funds of the sender for value ","requestId":"3673fff0-efcc-4721-9d8d-bb64fe6c2ae8"}

에러가 발생합니다. 잔고가 딱 0 이 되어서 전송이 되어야 되는데 안됩니다. 뭘 더 설정해야하는걸까요?

사용된 코드 일부 발체하면 아래와 같습니다. caver-java-ext-kas 1.4.0 사용했습니다.

        ValueTransferTransactionRequest request = new ValueTransferTransactionRequest();
        request.setFrom(from);
        request.setTo(to);
        request.setValue(Numeric.toHexStringWithPrefix(klayAmountByPeb));
        request.setSubmit(true);

        TransactionResult result = caver.kas.wallet.requestValueTransfer(request);

좀 급한데 빠른 답변 받을 수 있으면 좋겠어요 ㅠㅠ

수수료 표기는 소수점 6째자리까지 돼 있지만,
7째자리 이하로 숫자가 있을 수 있습니다.
그래서 0.49895가 아닌 0.49854xxxx 로 하셔야 할 겁니다.
(실제 klay balance 값을 알면 더 확실하겠죠? 표기가 반올림이라고 생각하시면 됩니다.)

님의 지갑 주소를 scope.klaytn.com 에서 조회해보시면
정확한 값을 알 수 있습니다. :slight_smile:

도움이 되셨기를…

1개의 좋아요

밸런스는 소수점 자리까지 모두 정확히 맞습니다. api 상으로도 클레이튼 스코프 상으로도 모두 동일합니다.

caver.kas.wallet.requestValueTransfer

통해 바로 재현 가능하실거에요. 바오밥 싸이프레스 모두 동일합니다.

추가 질문은 클레이전송 수수료가 현재 0.000525 klay 인데

글로벌 대납으로 할경우 0.000775 로 나오던데 이건 왜 그런가요?

@seungbaek.lee 안녕하세요!!
우선 본문에서 질문 주신 내용에 대해 답변을 드리면 request.setGas(21000) 통해 보내시면 현재 실제 Value Transfer에 쓰이는 tx fee인 0.000525KLAY를 제외한 KLAY를 송금하실 수 있을 것 같습니다.
KAS wallet의 경우 사용자의 편의를 위해 gasLimit을 설정하지 않으면 충분한 값을 잡아 자동 설정되어있습니다. 따라서 gasLimit이 넉넉하게 한 상태에서 남김없이 보내려고 하면 잔액이 부족하다는 메시지를 받게됩니다. 이럴 경우엔 setGas()로 딱 필요한 만큼의 gas양만 설정하면 그에 맞게 설정되어 전송됩니다.

또 feeDelegated value transfer은 value transfer과 달리 현재 기준 gas양이 31,000가 필요하게 되어 0.000775KLAY가 필요합니다. 일반적으로 대납 tx는 기본 tx에 비해 가스양이 좀 더 요구됩니다.

value transfer의 tx fee = 21,000 * 25ston (지금 기준)
feeDelegated의 tx fee = 31,000 * 25ston (지금 기준)

3개의 좋아요

@_brandon
해결되었습니다! 빠른 정확한 답변 감사합니다~