기존 계정 어카운트 풀 등록 후 전송 시도 시 invalid transaction v, r, s values of the sender

Rest API로 테스트 중인데요.

기존에 카이카스로 만들었던 계정에서 KAS로 만든 계정에 토큰을 전송해보고 싶습니다.

그래서 기존에 만든 계정을 저희 어카운트 풀에 등록하려고

  1. 키를 생성 (wallet-api~~~/key) 하고,
  2. 생성된 키 ID를 이용하여 등록 (wallet-api.~~~/account) 했습니다.

그리고 나서 등록된 계정에서 토큰 전송을 시도하니 다음과 같은 메시지가 나오네요.
포럼에 보니 계정 업데이트도 해야 하는 것 같아서 wallet-api.~~~/tx/account 이용해서 업데이트 한 후에 다시 시도 했는데도 동일한 오류가 나오네요.
어떤 부분이 잘 못 되었는지 궁금합니다.

“code”: 1104401,
“message”: “failed to send a raw transaction to klaytn node; invalid transaction v, r, s values of the sender”,
“requestId”: “245d440c-487f-9cea-a5f7-8782446af80d”

안녕하세요 @fanta 님!!
해당 메시지는 보통 sign한 키와 실제 klaytn account 키가 매칭이 안될 때 발생됩니다. 그래서 그 키 매칭 관련해서 한번 살펴볼 필요가 있을 것 같습니다.

진행한 과정을 아래와 같이 다시 정리해볼 수 있을 것 같은데요.

  1. Kaikas에서 계정 생성
  2. KAS Wallet API에서 key 생성(KAS Reference Documentation)
  3. 기존 Kaikas에서 생성된 계정에서 KAS Wallet 에서 새로 만든 key의 public key로 pubkey 업데이트(https://docs.klaytn.com/klaytn/design/accounts#accountkeypublic)
  4. Kaikas에서 만들어진 계정을 KAS Wallet에 등록(KAS Reference Documentation) - 이 경우 이전에 KAS에서 만든 key id로 등록

위 과정으로 진행되었을 경우 Kaikas의 계정이 key가 KAS에서 생성한 키로 업데이트 된 상태이며 그 상태에서 해당 계정을 keyId와 등록했을 때 키가 일치하여 이 경우엔 정상적으로 트랜잭션을 수행될 것 같습니다.

혹시 위 과정대로 수행된 것 맞을까요?

상세한 답변 감사드립니다.
1,2번까지 잘 진행하고
3번 pubkey로 업데이트가 KAS api 로 하는게 아니고 클레이튼 트랜잭션을 직접 만들어서 해야 하는 건가요?
저는 api로 되는 건 줄 알고 KAS Reference Documentation 이 내용대로 했더니
없는 계정이라고 나와서 다음과 같이 진행했네요…

  1. 일단 없는 계정이라고 하니 wallet에 등록 시도 → rlp 없이 했더니 status ok
  2. 다시 계정 업데이트 시도하니 submit true 로 하면 invalid v,r,s 오류
  3. submit false 로 하니 status 200 성공한 듯 보이고, rlp값도 잘 나옴
  4. 받은 rlp값으로 wallet에 다시 등록 시도 → it just allow (Partial)FeeDelegation transaction type 오류 발생
    개념을 너무 몰라서 이런 식으로 마구잡이로 삽질만 했네요 ㅎㅎ
    보내주신 3번 방법은 solidity로 직접 구현해서 해야 하는거죠? 전혀 모르는 부분이라 더 공부해야겠습니다.

감사합니다.

아 네네!! 3번의 경우는 별도로 진행되어야 할 것 같아요. KAS 내에서는 @fanta 님이 가지고 계신 기존에 kaikas에서 가지고 있던 key에 대해서 전혀 모르기 때문입니다. 이전에 수행한 과정에선 계정에 대한 account update되지 않은 채로 새로운 키로 서명하려다 보니 에러가 발생되는 것입니다

@fanta 님이 수행하는 과정은 기존에 계정을 KAS로 마이그레이션 하는 것과 같기 때문에 튜토리얼 문서(계정 생성과 관리 - KAS Docs) 참고하실 수 있을 것 같아요. 위 sdk 사용시 아래와 같이 진행되게 됩니다. 이 과정에서 기존에 가지고 계신 키를 KAS의 키로 업데이트 하기 위한 account update 발생과 함께 KAS 내로 계정 등록이 수행되게 됩니다.