# 트랜젝션 대납 관련(수수료 대납 기능)에서 계정 생성의 차이가 나서 에러가 발생합니다. java입니다. 관련 소스와 질문을 올립니다

**URL:** https://devforum.kaia.io/t/java/943
**Category:** Kaia
**Tags:** caver-java, klaytn
**Created:** [4월 13, 2021, 5:06오전 UTC](https://devforum.kaia.io/t/java/943 "2021-04-13T05:06:09Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![blockchainbeginer](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@blockchainbeginer](https://devforum.kaia.io/u/blockchainbeginer)
#### Post date: [4월 13, 2021, 5:06오전 UTC](https://devforum.kaia.io/t/java/943/1 "2021-04-13T05:06:09Z")

</div>

안녕하세요 블록체인 초보입니다.  
대납 관련해서 작업중인 내용입니다.

사용하는 자바 버젼입니다.  
implementation ‘com.klaytn.caver:core:1.5.7’   
implementation ‘xyz.groundx.caver:caver-java-ext-kas:1.1.0’

소스 내용입니다.

밑에 소스를 보냅니다.

1. 이 계정이 지갑에서 만드는 계정과 차이가 있는것인지요?

// Account from = caver.kas.wallet.createAccount();  
// Account to = caver.kas.wallet.createAccount();

```
Account from = caver.kas.wallet.getAccount("0x476E8656AADD1B7518905DE62ddc9F7e3F211111"); 
Account to = caver.kas.wallet.getAccount("0xBBFB37E66f0f3ADef08e7e8e0b4C25Aas1221121");

```

이 계정은 프로그램에서 생성한 내용입니다.  
{“address”:“0x476E8656AADD1B7518905DE62ddc9F7e3F211111”,“chainId”:1001,“createdAt”:1618199259,“keyId”:“krn:1001:wallet:d1794ae0-24ad-402d-a046-0567e567d6fd:account-pool:default:0x410c4de55102159ee6c0c06cc696eefd3961616a346ce37838107a7efbaa5738”,“krn”:“krn:1001:wallet:d1794ae0-24ad-402d-a046-0567e567d6fd:account-pool:default”,“publicKey”:“0x0483c8d8f02ccb0fe61b8b011172df79d89a70b9eb6551eb63a6d25178db6edbcea77ab805fd3a7c24f33e0f138bd5cc88d24f5e76e4fa83338e9b1a6fe7867084”,“updatedAt”:1618199259}

0x929a5822ddb5a0036f4e7007c1e00ac437ea140e

현재 소스는 에러가 없이 잘됩니다.  
하지만 [https://baobab.wallet.klaytn.com/](https://baobab.wallet.klaytn.com/) 작성한 Account를 이용하면 에러가 발생이 됩니다.

```
    @RequestMapping(value = "/sampleresult")
    public void sampleresult() throws Exception {        	
   	    CaverExtKAS caver = new CaverExtKAS("1001", ACCESS_KEY_ID, SECRET_ACCESSKEY);
    	    caver.kas.wallet.getApiClient().setDebugging(true); // Show http request and response in a console.

```

// Account from = caver.kas.wallet.createAccount();  
// Account to = caver.kas.wallet.createAccount();

// Account from = caver.kas.wallet.getAccount(“0x053b3a90d281f21e16b675bcd84ea7077dcc9187”); // [https://baobab.wallet.klaytn.com/](https://baobab.wallet.klaytn.com/) 작성한 Account를 이용하면 에러가 발생이 됩니다.  
Account from = caver.kas.wallet.getAccount(“0x476E8656AADD1B7518905DE62ddc9F7e3F211111”); // caver.kas.wallet.createAccount() 로 생성한 내용임  
Account to = caver.kas.wallet.getAccount(“0x476E8656AADD1B7518905DE62ddc9F7e3F211111”);

```
	        BigInteger value = new BigInteger(Utils.convertToPeb(BigDecimal.ONE, "kpeb"));
    	    FDValueTransferTransactionRequest request = new FDValueTransferTransactionRequest();
    	    request.setFrom(from.getAddress());
    	    request.setTo(to.getAddress());
    	    request.setMemo("memo");
    	    
    	    request.setValue("0x0");
    	    request.setSubmit(true);
    	    
    	    // call a request.
    	    FDTransactionResult result = caver.kas.wallet.requestFDValueTransferPaidByGlobalFeePayer(request);
    	    System.out.println("getTransactionHash=================================>" + result.getTransactionHash());        	
    }

```

1. [https://baobab.wallet.klaytn.com/](https://baobab.wallet.klaytn.com/)  
작성한 Account를 이용하면 에러가 발생이 됩니다.

에러 내용  
GET [https://wallet-api.klaytnapi.com/v2/account/0x053b3a90d281f21e16b675bcd84ea7077dcc9187](https://wallet-api.klaytnapi.com/v2/account/0x053b3a90d281f21e16b675bcd84ea7077dcc9187) HTTP/1.1  
Authorization: Basic S0FTSzE1VktVTlNJMDhPTUQzQkdPRkI0OkRGbWJqYkRzS0VtdTMzTmtzaFR2eEJ6U3VJekhScFpIYW03VDN5c2E=  
Accept: application/json  
x-chain-id: 1001  
User-Agent: Swagger-Codegen/1.0.0/java  
 → END GET  
 ← HTTP/1.1 400 Bad Request (57ms)  
content-type: application/json; charset=utf-8  
date: Tue, 13 Apr 2021 04:33:21 GMT  
content-length: 96  
x-envoy-upstream-service-time: 6  
server: istio-envoy  
OkHttp-Sent-Millis: 1618288402707  
OkHttp-Received-Millis: 1618288402735

```
{"code":1061010,"message":"data don't exist","requestId":"3cb05fe2-0313-4501-a081-9f4662a7f877"}
<-- END HTTP (96-byte body)

```

1. 그래서 프로그램을 이용해서 caver.kas.wallet.createAccount() 를 사용하는 경우 에러가 나지 않습니다.

2. [https://baobab.wallet.klaytn.com/](https://baobab.wallet.klaytn.com/) 작성한 Account와 caver.kas.wallet.createAccount() 의 차이가 있는지요?

3. 그리고 View Transaction List 를 볼 경우 화면의 내용이 다릅니다.

 ![대납관련_001_여러건](https://canada1.discourse-cdn.com/flex035/uploads/klaytn/original/1X/2c9bfb94b74a10877761f3c62c84fad7ddfb2614.jpeg)

```
caver.kas.wallet.createAccount() 로 작성한 화면

```

 ![대납관련_001_한건](https://canada1.discourse-cdn.com/flex035/uploads/klaytn/original/1X/f628125b16b4957336a00929c4946a575ebdeae3.png)

1. request.setValue(“0x0”); → 에러가 없습니다. 정상 작동  
밑의 내용은 왜 그런지요?

수고하세요

---

<div class="post-metadata">

### Author: ![Kale](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/kale/32/148_2.png) [@Kale](https://devforum.kaia.io/u/Kale)
#### Post date: [4월 14, 2021, 1:16오전 UTC](https://devforum.kaia.io/t/java/943/2 "2021-04-14T01:16:42Z")

</div>

안녕하세요.

1. [Klaytn Wallet](https://baobab.wallet.klaytn.com/)과 KAS를 통해 만드는 Account의 차이인데요.  
KAS의 Wallet API를 사용해서 Account를 만들고 그 Account를 통해서만 KAS Wallet API를 사용하실 수 있습니다.  
Klaytn Wallet를 통해 만들어지는 Account는 KAS Wallet API로 만들어진 Account가 아닙니다.

2. View Transaction List관련  
스크린샷을 보면 두 스크린샷에 나와있는 Transaction Type이 서로 다른 것 같습니다.  
아래 스크린샷의 Value Transfer는 Account 계정의 Klay를 사용하여 전송하는 Transaction 입니다.  
ValueTransfer를 실행시킬 계정에 돈은 충분한지? 돈은 충분하다면 여러건 Transaction을 발생시킨 Transaction hash들의 정보를 제공해주신다면 확인하는데 더 도움이 될 것 같습니다.

3. 5번 질문과 관련하여  
{“code”:1065001,“message”:"failed to send a raw transaction to klaytn node; -32000::insufficient funds of the sender for value ",“requestId”:“a0bb6e8a-7de4-4c68-b775-b24c16d50a8b”}  
위 에러 메세지는 Account 계정에 Transaction에 포함시켜 보낼 Klay가 없을 경우 발생합니다.

---

<div class="post-metadata">

### Author: ![blockchainbeginer](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@blockchainbeginer](https://devforum.kaia.io/u/blockchainbeginer)
#### Post date: [4월 14, 2021, 7:56오전 UTC](https://devforum.kaia.io/t/java/943/3 "2021-04-14T07:56:37Z")

</div>

안녕하세요 블록체인 초보입니다

항상 답변 주셔서 감사합니다.

질문할 내용입니다.

1. Klaytn Wallet를 통해 만들어지는 Account를 KAS Wallet API로 변환 할수 있는지요?

계정 업데이트부분인데 이 부분이 맞는지요?  
[https://docs.klaytnapi.com/tutorial/wallet-transaction-api/wallet-transaction-update](https://docs.klaytnapi.com/tutorial/wallet-transaction-api/wallet-transaction-update)

관련 참고할 내용 또는 자바로 사용할수 있는 내용이 있는지 부탁드립니다.

수고하세요

---

<div class="post-metadata">

### Author: ![Kale](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/kale/32/148_2.png) [@Kale](https://devforum.kaia.io/u/Kale)
#### Post date: [4월 14, 2021, 8:34오전 UTC](https://devforum.kaia.io/t/java/943/4 "2021-04-14T08:34:20Z")

</div>

안녕하세요.

AccountUpdate Transaction을 만드시면 되는데,  
Klaytn Wallet을 통해 만들어진 Account의 Address에 KAS Wallet API로 부터 생성된 Public Key로 업데이트하여 Account의 Key Type을 바꿔서 방법을 사용하시면 됩니다.

예제와 자세한 설명은 [KAS Tutorial의 계정 마이그레이션](https://docs.klaytnapi.com/tutorial/wallet-account-api#kas-klaytn) 문서 참고 부탁드립니다.

---

<div class="post-metadata">

### Author: ![okay](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/okay/32/533_2.png) [@okay](https://devforum.kaia.io/u/okay)
#### Post date: [4월 21, 2021, 2:19오전 UTC](https://devforum.kaia.io/t/java/943/5 "2021-04-21T02:19:36Z")

</div>

@Kale

> [@Kale](#):
>
> [Klaytn Wallet](https://baobab.wallet.klaytn.com/)과 KAS를 통해 만드는 Account의 차이인데요.  
> KAS의 Wallet API를 사용해서 Account를 만들고 그 Account를 통해서만 KAS Wallet API를 사용하실 수 있습니다.  
> Klaytn Wallet를 통해 만들어지는 Account는 KAS Wallet API로 만들어진 Account가 아닙니다.

**1. Klaytn Wallet API를 사용해서 만든 Account여야만 KAS Wallet API를 이용할 수 있지만, migration으로도 가능하잖아요? 아래처럼 해도 사용이 가능하던데 이 방법도 migration이 되는건가요??**

```

const keyringContainer = new caver.keyringContainer()
const keyring = keyringContainer.keyring.createFromPrivateKey('KaytnWallet계정주소')
keyringContainer.add(keyring)
const kip7 = new caver.kct.kip7('컨트랙주소')
kip7.setWallet(keyringContainer)

```

---

<div class="post-metadata">

### Author: ![Kale](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/kale/32/148_2.png) [@Kale](https://devforum.kaia.io/u/Kale)
#### Post date: [4월 21, 2021, 2:56오전 UTC](https://devforum.kaia.io/t/java/943/6 "2021-04-21T02:56:29Z")

</div>

위에 문의주신 코드는 migration 이라기 보다는  
caver-js에서 제공되는 KeyringContainer를 사용하여 Transaction을 생성 및 sign하는 방식입니다.  
위 코드를 사용하시면 KAS Wallet API를 통한 migration은 수행하시지 않으셔도 됩니다만, KeyringContainer를 통해 account의 Key를 직접 관리하셔야 하며 KAS Node API의 sendRawTransaction을 통해서 Transaction을 보내실 수 있습니다.

아래 문서 참고 부탁드립니다.  
[https://docs.klaytnapi.com/v/ko/sdk#kas-sdk-using-kaswallet](https://docs.klaytnapi.com/v/ko/sdk#kas-sdk-using-kaswallet)
