KAS를 통한 FeeDelegationTransaction 간헐적 오류

안녕하세요, KAS wallet API를 통해 FDTx를 보내고 있습니다.

간헐적으로

(body={‘code’: 1065001, ‘message’: ‘failed to send a raw transaction to klaytn node; -32000::there is another tx which has the same nonce in the tx pool’, ‘requestId’: ‘a5cff3d7-da12-4e52-bc24-95a69972302e’})args: url: https://wallet-api.klaytnapi.com/v2/tx/fd/value, method: POST, kwargs: {‘headers’: {‘Content-Type’: ‘application/json’, ‘x-chain-id’: ‘8217’}, ‘auth’: <requests.auth.HTTPBasicAuth object at 0x7f08ed83d908>, ‘data’: '{“from” … (trunacted)

아래같은 에러가 뜨는데, 이유를 알 수 있을까요?
https://refs.klaytnapi.com/ko/wallet/latest#section/Error-Codes/400:-Bad-Request
의 에러코드 1065001 는
failed to send a raw transaction to klaytn node; -32000::insufficient funds of the sender for value
failed to send a raw transaction to klaytn node; -32000::not a program account (e.g., an account having code and storage)
failed to send a raw transaction to klaytn node; -32000::nonce too low
failed to send a raw transaction to klaytn node; -32000::insufficient funds of the fee payer for gas * price
로 나와있는데,
위 400 response의 이유는 there is another tx which has the same nonce in the tx pool 라고 써있습니다.

nonce는 0 (=default) 로 보내고 있습니다.
감사합니다.

@dev_psx 안녕하십니까. KAS 개발팀입니다.

해당 에러는 빠르게 트랜잭션이 유입되는 경우에 발생할 수 있는에러입니다.
현재 Wallet API 에서 제공하는 자동 nonce 기능은 해당 클레이튼 계정의 마지막으로 성공한 nonce 를 기준으로 사용하고 있습니다.
따라서 동일한 nonce 를 가진 트랜잭션중에 처리되지 않은 트랜잭션이 있다면 한계가 있습니다.

추후 이 부분에 대한 개선을 하기 위해서 노력을 하고 있지만, 지금 현재는 빠르게 트랜잭션을 넣고 싶은 경우에는 수동으로 nonce 를 관리해서 같이 넣어주시면 해당 문제를 해결할 수 있습니다.

감사합니다.

1개의 좋아요

@_Luffy

caver-java 에서 nonce를 수동으로 관리하는 방법이 있을까요?

문서를 다 찾아보고있는데도 특별히 나오는게 없어 여쭤봅니다.

1개의 좋아요