Klaytn 메인넷 업데이트 이후, "pending blocks are not supported" 에러가 발생

안녕하세요, 지난 주 Klaytn 메인넷 업데이트 이후, “pending blocks are not supported” 에러가 발생하면서 트랜잭션을 보낼 수 없는 문제가 발생했습니다.

사용중인 언어는 Go이며, klaytn/klaytn 레포지터리를 직접 임포트하여 client.Client를 통해 트랜잭션을 보내고 있었습니다. 엔드포인트로는 KAS를 사용 중이며, 다음 계좌를 통해 Fee Delegation하고 있습니다.

다음과 같은 코드를 통해 Fee Delegation Transaction Data를 만든 후 서명해 보냅니다.

기존에는 잘 동작하던 코드였는데 저희쪽에서 어떤 코드 수정도 하지 않았는데 문제가 발생합니다. 클레이튼 업데이트와 관련이 있는 것 같은데 어떤 부분이 문제일까요?

안녕하세요. 질문 주셔서 감사합니다.

최근 패치를 통해서 EN의 일부 API 사용 시, “pending” 키워드를 입력하는 방식이 금지되었습니다.
EN은 블럭을 생성하지 않기 때문에 “pending” 블럭의 개념이 적절하지 않다는 이유입니다.
(단, klay_getTransactionCount와 같이 동일하게 “pending” 키워드를 사용하더라도 “pending” 블럭이 아닌 “pending” nonce를 일컷는 경우는 여전히 사용 가능합니다. 이러한 사용법은 Klaytn Docs를 참조하시면 됩니다.)

링크주신 txops.go 에서는 contract code를 조회하기 위한 client.PendingCodeAt(opts.Context, *contract) 메소드 실행 시 내부적으로 “pending” 블럭을 조회하게 됩니다. 이 메소드 대신 최신 블럭에서 contract code를 조회하는 client.CodeAt(opts.Context, *contract, nil)을 사용하지만 오류없이 작동될 것 같습니다.
(client.PendingNonceAt()를 사용하시는 부분은 위에 언급된 것처럼 “pending” nonce를 조회하는 부분이기에 에러가 발생하지 않을 것입니다.)

추가적인 궁금증이 있으시면 댓글 부탁드립니다.

감사합니다.