안녕하세요 대납 관련 문의를 드리고 싶습니다

안녕하세요. 트랜잭션 수수료를 100% 대납 프로세스를 진행을 하고자 개발중 입니다.

현재 signTransaction 으로 대납이 가능한 것을 확인을 했습니다.

만약, signTransaction을 사용하지 않고 대납 기능이 가능한지에 대해서 여쭤보고 싶습니다.

만약에 가능 하다면 대체할 수 있는 기능이 무엇인지 또, 불 가능 하다면 그 이유에 들어보고 싶습니다. ㅎㅎ

안녕하세요, signTransaction으로 대납이 가능한 것을 확인하셨다고 하셨는데 조금 구체적으로 설명해주실 수 있나요?

현재 signTransaction 이 기능을 사용해서 대납이 가능하다는 것은 로컬에서 확인을 했습니다.

그렇지만 현재 signTransaction 이 기능을 사용을 못 하는 상황이라서 혹시 다른 방법이 있는지 궁금해서 여쭤보고 싶었습니다.

signTransaction 이 기능을 사용을 할려면 저희 쪽 소스를 내부적으로 건드려서 다시 추가를 해야해서 다른 방법이 있을 까 싶었습니다. 만약 없다면 signTransaction 이 기능을 작성 후 배포를 진행을 해야 하나 아님 다른 방법을 고안을 해야하나 라는 고민 때문에 그렇습니다.

사용중이신 SDK와, 대략적인 소스코드가 있으면 좋을 것 같습니다. 코드 공개가 어려우시다면 수도코드 형태로라도 주시면 좋겠습니다.

자세하게 설명을 부탁드린 이유는, 대납을 사용하시기 위해서는 클레이튼 네트워크에서 보통 SignAsFeePayer라는 함수를 사용하기 때문에 현재 어떻게 사용하고 계신지 자세히 말씀해주셔야 도움을 드릴 수 있을거같습니다.

음… 저희 내부적 코드를 검토해보니까 저희는 Json RPC 를 이용해서 클레이튼 프로토콜로 트랜잭션을 요청을 하고 있었습니다. 혹시 Json RPC 로 직접 트랜잭션의 서명을 하고 따로 서버를 작성해 서명한 트랜잭션의 raw 를 가져와

트랜잭션을 요청을 하고 싶어요 !

return new Promise(function(resolve, reject) {
                var method = "klay_sendRawTransaction";
                var params = [ transaction ];

                _request_rpc(method, params)
                    .then(function(response) {
                        resolve(response); // Do not return response["result"]
                    })
                    .catch(function(error) {
                        reject(error);
                    });
            });

위 처럼 코드를 Json RPC 를 이용해 Fetch 형식으로 이용하고 있습니다

klay_sendRawTransaction은 서명된 트랜잭션을 클레이튼 네트워크로 전송합니다.

대납이 되는 절차를 간략하게 말씀드리면 아래와 같습니다.

  1. 전송하고자 하는 트랜잭션을 전송자가 서명
  2. 전송자의 서명이 된 트랜잭션에 대납자가 서명
  3. 전송자, 대납자의 서명이 포함된 트랜잭션을 klay_sendRawTransaction을 이용해 전송

이 중에서 어떤부분에 어려움이 있으신지 설명 부탁드립니다.

현재 1번 부분에서 어려움을 겪고 있습니다.

2번 3번은 서버에서 처리가 가능해서 문제가 없는데

현재 내부적으로 서명 함수만 존재해서 r,s,v 값을 받을 순 있습니다.

그런데 혹시 r,s,v 값으로만 rawTransaction 을 알아낼 수 있을까요 ?

v,r,s 값은 해쉬값으로서 역방향 복원은 불가능합니다.

혹시 클라이언트 측에서 서명후에 서버에서 받아서 대납자의 서명을 하려고 하는데 RawTransaction을 복원하는게 어렵다는 말씀이신가요?

순수 자바스크립트로는 불가능 해서 결국 서버 측 에서 caver.js 사용하는 형식으로 변경했습니다 ㅠ

친절히 잘 알려주셔서 감사합니다.

1개의 좋아요

6월중에 Ethers.js 를 이용한 대납기능을 나올 예정입니다. 프로젝트 개발하시는데 참고가 되셨을면 좋겠습니다.

1개의 좋아요