토큰 전송 관련 오류 "insufficient funds of the sender for value"

테스트넷에 디플로이한 토큰 컨트랙트에선 잘 되는 동작이
메인넷에서는 다음과 같은 에러를 뱉습니다.
insufficient funds of the sender for value

토큰을 전송하는 함수를 사용했을 때 나오는 메시지이고
토큰 수량 + 클레이(0.5KLAY 보유) 모두 정상적으로 있어
충분히 토큰을 전송할 수 있는 상황입니다.

혹시 저 메시지가 나왔을 때는 어떻게 디버깅을 하면 좋을까요.
감사합니다.

안녕하세요.

Chain ID설정이 잘못되어 sender address가 다른 것으로 인식했을 가능성이 높으니, 한 번 확인부탁드리겠습니다.

답변 정말 감사합니다.
덕분에 해결했습니다.

정현님 맞으시죠? 실제로 미팅 때도 뵈었었는데…!
정말 감사드립니다.

영광입니다.

1개의 좋아요

@colin.kim님 저도 Klaytn 송금시 “insufficient funds of the sender for value” 가 간혹 발생합니다.
같은 tr을 다시보내면 되기는 하는데… 잔고 부족하거나 chain_id가 틀린 것도 아닌데 종종 발생하네요.

1개의 좋아요

안녕하세요, 질문을 올려주셔서 감사드립니다.

제공하신 정보를 가지고서는 명확한 원인을 파악하기는 힘들 것 같습니다.

caver-js/caver-java 어떤 것을 사용하셨는지, 사용한 EN은 어떤 것인지, 실행한 트랜잭션은 무엇인지요?

또한, gas limit을 높게 설정하시면 gas limit * gas price만큼의 잔고가 없으면 해당 에러가 발생할 수 있습니다.

client api 모듈은 caver-js을 사용하고 있습니다.
EN(Endpoint Node)는 Linux에 node Public node를 직접 돌렸습니다.
version 1.3.0 ​ken-v1.3.0-0-linux-amd64.tar.gz 사용하고 있습니다.
node sync 상태는 정상(잘쫓아감)입니다. (kley.synction 결과 False)
fee delegation을 하기위해 type을 ‘FEE_DELEGATED_VALUE_TRANSFER’
사용하고 있구요.
from key 로 signTransaction
player key로 signTransaction
하고요
sendSignedTransaction를 이용하여 node로 보냅니다.
그리고 payer와 from주소에 잔고는 충분합니다.

오류 이후에 같은 transaction을 그대로 다시 처리하면 잘됩니다.

흐음… 이상하네요. transaction은 얼마나 많이 생성하셨나요? 한개 보내고 receipt기다리고 다시 한 개 보내는 식인지? 아니면 여러개를 한꺼번에 보내셨는지?

그리고 혹시 재현 시나리오가 명확하게 있다면 문제 해결에 좀 더 도움이 될 것 같습니다.

sendSignedTransaction를 보낸후 hash 발생 여부는 확인후 처리하며 경험상 klaytn block이 빠르게 처리하는 것을 감안하여 transaction사이에 1초의 대기시간을 둡니다. receipt을 별도로 확인 하지는 않습니다. 최종 확인은 hash를 기반으로 30개정도의 추가 블럭이 쌓인후 처리합니다.그리고 가끔 “txpool is full” 발생 하기도 합니다. 다시 보내면 되기는 하지만 근본적인 원인을 확인하고 해결하는 것이 좋을것 같아 문의한 것입니다.

안녕하세요. 해당 건에 대해서 Klaytn 개발팀에서 인지하고 있는 상황이며 빠른 시일내에 패치를 하려고 합니다.
Klaytn Block 처리가 빠르다보니 최신 state가 cache에서 GC되며 발생되는 현상으로
현재는 SendRawTransaction시 해당 에러가 발생하면 재 시도하도록 로직을 구성부탁드립니다.

오늘 릴리즈될 v1.5.0에서 부터는 아래와 같이 기본값 4보다 큰값을 설정을 하시면
해당 이슈발생을 줄일 수 있습니다만 블록이 뒤쳐져 빨리 따라가는 경우에는 여전히 발생할 수 있습니다.
(너무 큰값을 설정하시면 메모리 사용량이 늘어나게됩니다. 128 이하 값을 권장드립니다.)

ADDITIONAL="--state.tries-in-memory 50"
2개의 좋아요

답변 감사합니다.
그럴 것으로 예상 하고 있었습니다.^^

1개의 좋아요