특정 지갑만 getTransactionCount(주소, 'pending')을 제대로 가져오지 못합니다

지갑1, 지갑2가 있습니다.
두 개의 지갑으로
단순히 클레이를 전송하는 트랜잭션으로 테스트만 해도
동일한 코드에서 보내는 지갑이 다르다는 이유로

문제의 지갑은
첫 트랜잭션을 보내고 나서 +1초 내에
두 번째 트랜잭션을 보낼 때
생략했을 시 입력되는 nonce: getTransactionCount(주소, ‘pending’) 값이 올라가질 않습니다.

이 문제의 결과로
첫 번째 트랜잭션을 보내고 +1 블록안에 두 번째 트랜잭션을 보내려고 한다면
서명한 트랜잭션 해쉬가 중복되고
known transaction 에러를 뱉습니다.

첫 번째 트랜잭션을 보내고 2초가 되서야 다음 트랜잭션이 보내집니다.
두 번째 트랜잭션에서 세 번째 트랜잭션으로 넘어갈 때도 동일합니다.

특정 지갑만 이런 증상이 지속적으로 유지됩니다.
이유를 알 수 있을까요?

안녕하세요.
지갑 1, 2가 어떤 것을 뜻하는 건지는 모르겠습니다만 지갑 1, 2를 만든 업체에 문의하시는게 빠를 것 같습니다.

감사합니다.

지갑1, 지갑2는 지갑업체가 아닌 임의의 퍼블릭주소 2개를 말한 거였습니다.

caver-js에서 키스토어 파일로 불러와서 디크립트한 키링1(지갑1), 키링2(지갑2) 입니다.

임의로 1, 2로 표현했고

말씀드리고 싶은건 동일한 조건에서
특정한 지갑 주소 몇몇개만 이러한 증상이 지속됩니다.

안녕하세요.
문의주신 내용만으로는 확인을 하기가 어렵습니다.
정확한 확인을 원하시면, 저희쪽에서 재현을 해볼수 있을만한 정보를 제공해주시기 바랍니다.

보통 Transaction을 보내고 나면 block에 Transaction이 기록되었는지 확인한 뒤 다음 Transaction을 보내야
nonce ordering에 대한 명확한 보장이 될 것이라고 생각합니다.

Transaction을 EN에 보냈다고 해도, 반드시 Pending상태로 있는다는 보장이 없기때문에, block에 Transaction이 기록되었는지 확인하지않고 보내실 거라면 직접 nonce를 다뤄주시면 되겠습니다.

감사합니다.

1 Like