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

**URL:** <https://devforum.kaia.io/t/topic/6748>\
**Category:** Kaia\
**Tags:** caver-js\
**Created:** [5월 8, 2023, 1:54오전 UTC](https://devforum.kaia.io/t/topic/6748 "2023-05-08T01:54:56Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![cpsjk11](https://avatars.discourse-cdn.com/v4/letter/c/ed655f/32.png) [@cpsjk11](https://devforum.kaia.io/u/cpsjk11)\
**Post date:** [5월 8, 2023, 1:54오전 UTC](https://devforum.kaia.io/t/topic/6748/1 "2023-05-08T01:54:56Z")

</div>

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

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

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

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

---

<div class="post-metadata">

**Author:** ![jack\_jin](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jack_jin/32/2305_2.png) [@jack\_jin](https://devforum.kaia.io/u/jack_jin)\
**Post date:** [5월 8, 2023, 1:57오전 UTC](https://devforum.kaia.io/t/topic/6748/2 "2023-05-08T01:57:30Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![cpsjk11](https://avatars.discourse-cdn.com/v4/letter/c/ed655f/32.png) [@cpsjk11](https://devforum.kaia.io/u/cpsjk11)\
**Post date:** [5월 8, 2023, 1:59오전 UTC](https://devforum.kaia.io/t/topic/6748/3 "2023-05-08T01:59:37Z")

</div>

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

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

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

---

<div class="post-metadata">

**Author:** ![jack\_jin](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jack_jin/32/2305_2.png) [@jack\_jin](https://devforum.kaia.io/u/jack_jin)\
**Post date:** [5월 8, 2023, 2:07오전 UTC](https://devforum.kaia.io/t/topic/6748/4 "2023-05-08T02:07:16Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![cpsjk11](https://avatars.discourse-cdn.com/v4/letter/c/ed655f/32.png) [@cpsjk11](https://devforum.kaia.io/u/cpsjk11)\
**Post date:** [5월 8, 2023, 7:34오전 UTC](https://devforum.kaia.io/t/topic/6748/5 "2023-05-08T07:34:06Z")

</div>

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

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

```auto
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 형식으로 이용하고 있습니다

---

<div class="post-metadata">

**Author:** ![jack\_jin](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jack_jin/32/2305_2.png) [@jack\_jin](https://devforum.kaia.io/u/jack_jin)\
**Post date:** [5월 8, 2023, 1:14오후 UTC](https://devforum.kaia.io/t/topic/6748/6 "2023-05-08T13:14:24Z")

</div>

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

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

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

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

---

<div class="post-metadata">

**Author:** ![cpsjk11](https://avatars.discourse-cdn.com/v4/letter/c/ed655f/32.png) [@cpsjk11](https://devforum.kaia.io/u/cpsjk11)\
**Post date:** [5월 9, 2023, 5:57오전 UTC](https://devforum.kaia.io/t/topic/6748/7 "2023-05-09T05:57:52Z")

</div>

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

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

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

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

---

<div class="post-metadata">

**Author:** ![jack\_jin](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jack_jin/32/2305_2.png) [@jack\_jin](https://devforum.kaia.io/u/jack_jin)\
**Post date:** [5월 11, 2023, 2:19오전 UTC](https://devforum.kaia.io/t/topic/6748/8 "2023-05-11T02:19:28Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![cpsjk11](https://avatars.discourse-cdn.com/v4/letter/c/ed655f/32.png) [@cpsjk11](https://devforum.kaia.io/u/cpsjk11)\
**Post date:** [5월 11, 2023, 5:38오전 UTC](https://devforum.kaia.io/t/topic/6748/9 "2023-05-11T05:38:47Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![jack\_jin](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jack_jin/32/2305_2.png) [@jack\_jin](https://devforum.kaia.io/u/jack_jin)\
**Post date:** [5월 11, 2023, 8:03오전 UTC](https://devforum.kaia.io/t/topic/6748/10 "2023-05-11T08:03:49Z")

</div>

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