안녕하세요. 트랜잭션 관련 궁금증이 있어서 질문드립니다.
ethers.js를 사용해서 metamask & kaikas를 통한 트랜잭션을 공부하고 있습니다.
eth_와 klay_ 의 rpc namespace의 차이점이 존재해서 해당 부분은 ethers의 provider 부분을 포크떠서 수정했습니다.
metamask, kaikas 두 지갑을 통한 트랜잭션은 성공적으로 이루어지는데, kaikas의 경우 legacy transaction으로 스코프에 기록이 됩니다.
해당 문서에 적혀있는 대로 kaikas 일때 (klay_transaction) typeInt값을 "0x30"으로, 기존 data key값에 담아 보냈던 트랜잭션 데이터를 input key값에 담아서 보냈습니다. klay가 아닌 ERC20 token을 전송하는 로직이기에 value값 또한 0을 파싱해서 함께 담아 보냈습니다.
kaikas에서 서명을 요청할때는 contract execution으로 떴지만, 스코프상에는 legacy transaction으로 기록이 되었습니다.
수수료 대납같은 기능을 사용하진 않지만 스코프상에는 smart contract execution으로 기록되는게 맞다고 생각이 들어서 찾아보고 있는데, 어떤 방법을 써도 동일한 결과가 나와서 도움을 얻고자 질문드립니다.
ethers.contract 생성시에 사용되는 web3-provider에서 transaction send 파트 로직을 아래와 같이 작성해서 테스트 했는데, 혹시 다른 방법이 있는건지 궁금합니다.