지갑1, 지갑2가 있습니다.
두 개의 지갑으로
단순히 클레이를 전송하는 트랜잭션으로 테스트만 해도
동일한 코드에서 보내는 지갑이 다르다는 이유로
문제의 지갑은
첫 트랜잭션을 보내고 나서 +1초 내에
두 번째 트랜잭션을 보낼 때
생략했을 시 입력되는 nonce: getTransactionCount(주소, ‘pending’) 값이 올라가질 않습니다.
이 문제의 결과로
첫 번째 트랜잭션을 보내고 +1 블록안에 두 번째 트랜잭션을 보내려고 한다면
서명한 트랜잭션 해쉬가 중복되고
known transaction 에러를 뱉습니다.
첫 번째 트랜잭션을 보내고 2초가 되서야 다음 트랜잭션이 보내집니다.
두 번째 트랜잭션에서 세 번째 트랜잭션으로 넘어갈 때도 동일합니다.
특정 지갑만 이런 증상이 지속적으로 유지됩니다.
이유를 알 수 있을까요?
Kale
2
안녕하세요.
지갑 1, 2가 어떤 것을 뜻하는 건지는 모르겠습니다만 지갑 1, 2를 만든 업체에 문의하시는게 빠를 것 같습니다.
감사합니다.
지갑1, 지갑2는 지갑업체가 아닌 임의의 퍼블릭주소 2개를 말한 거였습니다.
caver-js에서 키스토어 파일로 불러와서 디크립트한 키링1(지갑1), 키링2(지갑2) 입니다.
임의로 1, 2로 표현했고
말씀드리고 싶은건 동일한 조건에서
특정한 지갑 주소 몇몇개만 이러한 증상이 지속됩니다.
Kale
4
안녕하세요.
문의주신 내용만으로는 확인을 하기가 어렵습니다.
정확한 확인을 원하시면, 저희쪽에서 재현을 해볼수 있을만한 정보를 제공해주시기 바랍니다.
보통 Transaction을 보내고 나면 block에 Transaction이 기록되었는지 확인한 뒤 다음 Transaction을 보내야
nonce ordering에 대한 명확한 보장이 될 것이라고 생각합니다.
Transaction을 EN에 보냈다고 해도, 반드시 Pending상태로 있는다는 보장이 없기때문에, block에 Transaction이 기록되었는지 확인하지않고 보내실 거라면 직접 nonce를 다뤄주시면 되겠습니다.
감사합니다.
1개의 좋아요