위와 같은 형식으로 사용해왔는데 아래와 같은 에러가 뜨게 되어 doc를 찾아보았는데 달라진건 없어보여서 확인 한번 부탁드립니다.
Error: Invalid JSON RPC response: {“code”:1034210,“message”:“Unsupported method - klay_signTransactionAsFeePayer”,“requestId”:“26cdeab9-4482-4f84-bd37-0dde470ad9f5”}
[1] at Object.InvalidResponse (C:\Users\ymkim\project\mm-server\node_modules\caver-js-ext-kas\node_modules\caver-js\packages\caver-core-helpers\src\errors.js:92:16)
[1] at C:\Users\ymkim\project\mm-server\node_modules\caver-js-ext-kas\node_modules\caver-js\packages\caver-core-requestmanager\src\index.js:159:44
[1] at XMLHttpRequest.request.onreadystatechange (C:\Users\ymkim\project\mm-server\node_modules\caver-js-ext-kas\node_modules\caver-js\packages\caver-core-requestmanager\caver-providers-http\src\index.js:119:13)
[1] at XMLHttpRequestEventTarget.dispatchEvent (C:\Users\ymkim\project\mm-server\node_modules\xhr2-cookies\xml-http-request-event-target.ts:44:13)
[1] at XMLHttpRequest._setReadyState (C:\Users\ymkim\project\mm-server\node_modules\xhr2-cookies\xml-http-request.ts:219:8)
[1] at XMLHttpRequest._onHttpResponseEnd (C:\Users\ymkim\project\mm-server\node_modules\xhr2-cookies\xml-http-request.ts:345:8)
[1] at IncomingMessage. (C:\Users\ymkim\project\mm-server\node_modules\xhr2-cookies\xml-http-request.ts:311:39)
[1] at IncomingMessage.emit (events.js:326:22)
[1] at endReadableNT (_stream_readable.js:1241:12)
[1] at processTicksAndRejections (internal/process/task_queues.js:84:21)
안녕하세요, KAS를 사용하고 계시다면 아마 Node API를 통해 RPC 요청을 하셨을 것으로 보이는데요.
해당 RPC Method는 KAS Node API에서 제공하고 있지 않습니다. KAS Node API에서 제공하는 Method는 아래 링크들에서 확인하실 수 있습니다.
Error: Provider not set or invalid
[1] at Object.InvalidProvider (/mnt/vol1/IDND/mm-server/node_modules/caver-js-ext-kas/node_modules/caver-js/packages/caver-core-helpers/src/errors.js:80:28)
[1] at RequestManager.send (/mnt/vol1/IDND/mm-server/node_modules/caver-js-ext-kas/node_modules/caver-js/packages/caver-core-requestmanager/src/index.js:118:32)
[1] at /mnt/vol1/IDND/mm-server/node_modules/caver-js-ext-kas/node_modules/caver-js/packages/caver-core-method/src/index.js:437:34
[1] at Object.getAccountKey (/mnt/vol1/IDND/mm-server/node_modules/caver-js-ext-kas/node_modules/caver-js/packages/caver-core-method/src/index.js:452:9)
[1] at KASWallet.sign (/mnt/vol1/IDND/mm-server/node_modules/caver-js-ext-kas/src/wallet/kasWallet.js:161:70)
[1] at Object._executeMethod (/mnt/vol1/IDND/mm-server/node_modules/caver-js-ext-kas/node_modules/caver-js/packages/caver-contract/src/index.js:1707:31)
[1] at processTicksAndRejections (internal/process/task_queues.js:97:5)
갑자기 이런 에러도 발생하는데… 혹시 며칠전 클레이튼 네트워크 장애 이슈건 때문에 뭐가 틀어진걸까요? 바오밥테스트네트워크에서 테스트하고 있습니다.
일단 from은 문제가 없는 것 같으니 생략하겠습니다.
수수료 대납 트랜잭션을 발생하는 경우, fee payer가 KAS Wallet API에 있는지 확인을 하는데요, await caver.kas.wallet.getAccount 이 API를 사용해서 확인합니다.
그러고 KAS Wallet API에 해당 수수료대납 계정이 있을 경우에는 await caver.kas.wallet.requestFDRawTransactionPaidByUser 이 API를 통해서 서명 요청을 하고, 수수료 대납 계정이 존재하지 않을 경우에는 Node API의 klay_signTransactionAsFeePayer를 사용합니다.
주신 에러의 경우 await caver.kas.wallet.getAccount의 결과 KAS Wallet API에 존재하지 않아서 klay_signTransactionAsFeePayer를 사용하는데, KAS에서 해당 노드 rpc를 제공하고 있지 않아서 에러가 난 것 같은데요
접속해서 확인해보니 여전히 계정은 존재합니다. 알려주신 await caver.kas.wallet.getAccount는 사용법이 틀렸는지 먹히질 않아서 화면들어가서 확인하였습니다.
feepayer와 feeDelegation 프로퍼티를 제거하고 발생시키면 정상작동하는걸로 봐서 엑세스키나 시크릿키에 문제가있는건 아닌 것 같고… 갑자기 왜이러는지가 의아하네요…
위 이미지에 있는 것을 이용하면 스마트컨트랙트 실행에 대한 수수료 대리부담을 할 수 있는 것으로 보이는데요 저기 들어가는 input에 대한 설명히 상당히 부족한 것 같습니다. function을 keccak256한 앞 4바이트를 의미한다는 글을 보긴 했는데요. 그럼 해당 function의 파라미터로 들어가는 argument는 어떻게 입력시킬 수 있는 건가요? 질문을 드리는동안 시간이 너무 많이 지체가돼서 자세한 설명해주시면 감사하겠습니다.
예를들어,
function addProduct(string calldata _productUuid,
string calldata _name,
uint256 _price) external;
이 함수의 파라미터에
_productUuid=“aa6e4518-8c89-44aa-806a-5918c9744650”
_name=“seller”
_price=1000
이런 값을 argument로 하여 실행하려고 할 때,
input데이터를 어떠한 값을 어떻게 처리하여 최종적으로 어떻게 코드로 작성하는지 설명부탁드립니다.
저도 동일한 에러가 갑자기 났는데 어떻게 해결하셨는지 도움좀 받을 수 있을까요? 감사합니다.
Error: Provider not set or invalid
at Object.InvalidProvider (/Users/humanworks/Documents/project/node/hwtoken/node_modules/caver-js/packages/caver-core-helpers/src/errors.js:80:28)
at RequestManager.send (/Users/humanworks/Documents/project/node/hwtoken/node_modules/caver-js/packages/caver-core-requestmanager/src/index.js:118:32)
at /Users/humanworks/Documents/project/node/hwtoken/node_modules/caver-js/packages/caver-core-method/src/index.js:437:34
at Object.getChainId (/Users/humanworks/Documents/project/node/hwtoken/node_modules/caver-js/packages/caver-core-method/src/index.js:452:9)
at ValueTransfer.fillTransaction (/Users/humanworks/Documents/project/node/hwtoken/node_modules/caver-js/packages/caver-transaction/src/transactionTypes/abstractTransaction.js:403:67)
at ValueTransfer.sign (/Users/humanworks/Documents/project/node/hwtoken/node_modules/caver-js/packages/caver-transaction/src/transactionTypes/abstractTransaction.js:221:20)
at /Users/humanworks/Documents/project/node/hwtoken/api_v1/service/klay.js:95:24
at Layer.handle [as handle_request] (/Users/humanworks/Documents/project/node/hwtoken/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/humanworks/Documents/project/node/hwtoken/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/humanworks/Documents/project/node/hwtoken/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/humanworks/Documents/project/node/hwtoken/node_modules/express/lib/router/layer.js:95:5)
at /Users/humanworks/Documents/project/node/hwtoken/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/humanworks/Documents/project/node/hwtoken/node_modules/express/lib/router/index.js:335:12)
at next (/Users/humanworks/Documents/project/node/hwtoken/node_modules/express/lib/router/index.js:275:10)
at cors (/Users/humanworks/Documents/project/node/hwtoken/node_modules/cors/lib/index.js:188:7)
at /Users/humanworks/Documents/project/node/hwtoken/node_modules/cors/lib/index.js:224:17