FeeDelegatedAccountUpdate 호출 시 sender에 서명값이 없는 것 같은데 이부분은 어떻게 수정하나요?

안녕하세요.

FeeDelegatedAccountUpdate 호출 시 오류가 발생해서 문의드립니다.

[] - 21-11-17 15:04:47:524 DEBUG org.web3j.protocol.http.HttpService:284 - <-- END HTTP (48-byte body)
[] - 21-11-17 15:04:47:559 DEBUG org.web3j.protocol.http.HttpService:169 - --> POST https://api.baobab.klaytn.net:8651/
[] - 21-11-17 15:04:47:559 DEBUG org.web3j.protocol.http.HttpService:176 - Content-Type: application/json; charset=utf-8
[] - 21-11-17 15:04:47:559 DEBUG org.web3j.protocol.http.HttpService:179 - Content-Length: 817
[] - 21-11-17 15:04:47:559 DEBUG org.web3j.protocol.http.HttpService:208 - 
[] - 21-11-17 15:04:47:559 DEBUG org.web3j.protocol.http.HttpService:210 - {"jsonrpc":"2.0","method":"klay_sendRawTransaction","params":["0x21f9016f098505d21dba008401312d0094e9ba9431266ecf98cfbdea46cb41e803a1321df7b8a505f8a2a804e602e4e302a10299a8d423828cc70ddd56f2d8edac2a6074f0bcc4b72b757e26949e048158b463b84e04f84b02f848e301a1022a02af6aca61e9d4d5b00666bd54c702dc26bff433a493ee9f901f4025a202bce302a102b3798ccab7ca4c399913160a384b47e5b12f71df0f75d976964cc3874b985701a804e602e4e302a102b3798ccab7ca4c399913160a384b47e5b12f71df0f75d976964cc3874b985701f847f8458207f5a01e9ff58ab7d0715652c550054618c4f119fcfdd7d09578be9237a956330642e4a068e84ea9603da9fc7425985f5bd5ccca60b3c1c3bf57500adaa321a9c6b1000594e6cb02f70943e3fe3565ec75ca36c3bc466e1a57f847f8458207f6a08e90c7173bf069bbd2d4f4435c8e9cb0d0d42d04f136232379046b4f665dcb52a04f54470484a46680d7c59998435c542f076e3adb8a51eb3350437048575a4928"],"id":3}
[] - 21-11-17 15:04:47:559 DEBUG org.web3j.protocol.http.HttpService:211 - --> END POST (817-byte body)
[] - 21-11-17 15:04:47:565 DEBUG org.web3j.protocol.http.HttpService:233 - <-- 200 https://api.baobab.klaytn.net:8651/ (5ms)
[] - 21-11-17 15:04:47:565 DEBUG org.web3j.protocol.http.HttpService:294 - date: Wed, 17 Nov 2021 06:04:47 GMT
[] - 21-11-17 15:04:47:565 DEBUG org.web3j.protocol.http.HttpService:294 - content-type: application/json
[] - 21-11-17 15:04:47:565 DEBUG org.web3j.protocol.http.HttpService:294 - content-length: 110
[] - 21-11-17 15:04:47:565 DEBUG org.web3j.protocol.http.HttpService:294 - server: fasthttp
[] - 21-11-17 15:04:47:565 DEBUG org.web3j.protocol.http.HttpService:294 - vary: Origin
[] - 21-11-17 15:04:47:566 DEBUG org.web3j.protocol.http.HttpService:276 - 
[] - 21-11-17 15:04:47:566 DEBUG org.web3j.protocol.http.HttpService:277 - {"jsonrpc":"2.0","id":3,"error":{"code":-32000,"message":"invalid transaction v, r, s values of the sender"}}
------------------------------------------------------------------------------------------------------------------------------------
- FeeDelegatedAccountUpdate 클래스 설정부분
FeeDelegatedAccountUpdate accountUpdate = new FeeDelegatedAccountUpdate.Builder()
                .setKlaytnCall(caver.rpc.klay)
                .setFrom(targetKeyring.getAddress())
                .setAccount(account)
                .setGas(GAS_LIMIT)
                .setFeePayer(feePayerKering.getAddress())
                .build();
// 서명
caver.wallet.sign(targetKeyring.getAddress(), accountUpdate);
// feePayer 서명
caver.wallet.signAsFeePayer(_feePayerKering.getAddress(), accountUpdate);

정상적으로 프로세스가 진행되다가 위와 같은 오류가 발생해서 sender(FeeDelegatedAccountUpdate 클래스의 “setFrom”) 부분을 확인했는데 Update를 할 주소가 제대로 set되는것을 확인하였습니다.

소스에 보여지는 targetKeyring은 caver.wallet.keyring.create()로 SingleKeyring을 만들어서 그 Keyring의 address를 활용하고 있습니다.

이 부분은 어떻게 수정해야하는지 몰라 문의드립니다.

String decoded = accountUpdate.getRLPEncoding();
        Bytes32 sendResult = caver.rpc.klay.sendRawTransaction(decoded).send();

sendRawTransaction 부분은 이렇게 구현하였습니다.

해결되었습니다… RoleBasedKey로 업데이트 되던 지갑을 다시 업데이트 하려고 했었네요…
혼란을드려 죄송합니다

1개의 좋아요