트렌젝션은 성공하였지만 transaction ran out of gas 인 경우

안녕하세요

caver legacy transaction 을 사용하여 kip7 출금을 테스트 하던중에 트렌젝션은 성공했으나

callback 으로 오는 데이터가 ran out of gas 가 나오는 경우도있네요

해당 txid 는 0x895a7050a6b7d2a3f73bb42e370a64c1ab106b66eca430575f101bb2eb0c186d

입니다.

this.caver.klay.estimateGas 를 사용하여 해당 트렌젝션의 gasLimit 를 구한값을 그대로 사용해서 출금은 됬는데 sendRawTransaction의 콜백 return 데이터가 ran out of gas 로 떳지만 해당 트렌젝션은 성공한 경우입니다. -_-… 이런경우도있나용?

estimateGas 값 +1 해서 보내보니 ran out of gas 가 안뜨네요

해당 txid klaytnfinder
estimateGas 값은 43306 컨트렉트 사용비용을 계산은 잘되는데
gasLimit 가 43306에 gasUsed 가 43306이면 ran out of gas 가 sendrawTransaction의 리턴값으로 오는데
gasLimit 43307 로 1올려서 내보내니 gasUsed 43306 만 사용되고 잘되네요 아마 조건에 부등호 처리가 잘안된걸까요?

안녕하세요. 이슈 올려주셔서 감사합니다

Transaction 처리는 성공했는데, ran out of gas 에러가 리턴되는 부분은 caver-js의 버그인 것으로 확인되었습니다.
해당 부분은 픽스한 뒤에 새로운 버전에 릴리즈하겠습니다.

참고로 estimateGas는 추정되는 가스 사용량으로, 실제로 트랜잭션이 처리될 때 사용된 가스량과 다를 수 있기 때문에, estimateGas 결과값에서 조금 패딩을 주고 실행하시는 것을 추천드립니다.

감사합니다

2개의 좋아요

확인 감사합니다, 계산되는 가스값을 좀 수정해서 사용하겠습니다

1개의 좋아요