Kaikas confirm을 api로 수행하는방법

안녕하세요 klaytn api를 사용하기위해 이것저것 찾아보고 있는데 코딩에 대한 지식이 얕아서 매끄럽게 되는 방향이 없는 상태입니다.

kaikas 지갑에서 오픈씨 리스팅, 구매 등을 할때 지갑창이 뜨면서 confirm 을 누르게되어있는데, 이 작업을 api로 수행하고싶습니다. (저는 이 작업이 '서명’하는 것이라 생각했는데, 제 생각이 맞는지도 궁금합니다)

어떤 방법들이 있는지, 어떤 용어로 검색을 해보아야할지 잘 모르겠어서 질문을 남기게 되었습니다.

약간의 조언이라도 남겨주시면 큰 도움이 될 것 같습니다. 감사합니다.

제가 자세히는 모르겠지만, confirm을 누르게 되는 경우 서명 + 트랜잭션 전송이 이루어지는 것 같습니다.

한번 baobab public en에 klay_sendTransaction api를 날려보는 것부터 해보시면 좋을 것 같습니다 :slight_smile:
baobab의 경우 faucet을 받아 5klay를 받을 수 있으니, 그걸 기반으로 테스트를 먼저 해보시면 좋을 것 같습니다!

klaytn-docs(https://docs.klaytn.com/)를 참고하시면 좋습니다.

답변감사드립니다!

제가 해당 doc을 보고 visual studio code를 받아서 caver-js를 설치(?)하고 1클레이를 전송하는 코드를 실행하는데서부터 에러가 나고, 에러 내용을 파악할 수가 없어 막혀있는 상태인데, 혹시 어떤게 문제인지 봐주실수 있으실까요?

실행코드입니다

const Caver = require(‘caver-js’)
const caver = new Caver(‘https://your.en.url:8651/’) // Boabob testnet
async function testFunction() {
// Create a keyring with an address and a private key
const keyring = caver.wallet.keyring.createWithSingleKey(address, private)
caver.wallet.add(keyring)
console.log(caver.wallet.getKeyring(keyring.address))

// Create a value transfer transaction
const valueTransfer = caver.transaction.valueTransfer.create({
    from: keyring.address,
    to: to_address,
    value: 1,
    gas: 8000000,
})

console.log("from: ", keyring.address, "to: ", to_address)

// Sign the transaction via transaction.sign
await valueTransfer.sign(keyring)
console.log(1)

// Send the transaction to the Klaytn using `caver.rpc.klay.sendRawTransaction`.
const receipt = await caver.rpc.klay.sendRawTransaction(valueTransfer)
console.log(receipt)

}

testFunction()

에러메세지는 아래와 같습니다.

(node:48544) UnhandledPromiseRejectionWarning: Error: Invalid JSON RPC response: “”
at Object.InvalidResponse (d:\Nodejs\Kaikas2\kaikas-tutorial\node_modules\caver-js\packages\caver-core-helpers\src\errors.js:92:16)
at XMLHttpRequest.request.onreadystatechange (d:\Nodejs\Kaikas2\kaikas-tutorial\node_modules\caver-js\packages\caver-core-requestmanager\caver-providers-http\src\index.js:118:32)
at XMLHttpRequestEventTarget.dispatchEvent (d:\Nodejs\Kaikas2\kaikas-tutorial\node_modules\xhr2-cookies\dist\xml-http-request-event-target.js:34:22)
at XMLHttpRequest._setReadyState (d:\Nodejs\Kaikas2\kaikas-tutorial\node_modules\xhr2-cookies\dist\xml-http-request.js:208:14)
at XMLHttpRequest._onHttpRequestError (d:\Nodejs\Kaikas2\kaikas-tutorial\node_modules\xhr2-cookies\dist\xml-http-request.js:349:14)
at ClientRequest. (d:\Nodejs\Kaikas2\kaikas-tutorial\node_modules\xhr2-cookies\dist\xml-http-request.js:252:61)
at ClientRequest.emit (events.js:400:28)
at TLSSocket.socketErrorListener (_http_client.js:475:9)
at TLSSocket.emit (events.js:400:28)
at emitErrorNT (internal/streams/destroy.js:106:8)
(Use node --trace-warnings ... to show where the warning was created)
<node_internals>/internal/process/warning.js:45
(node:48544) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see Command-line API | Node.js v17.5.0 Documentation). (rejection id: 1)
<node_internals>/internal/process/warning.js:45
(node:48544) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

읽어주셔서 감사합니다!

안녕하세요

음… 이슈원인을 정확하게 잘 모르겠는데

new Caver('https://your.en.url:8651/') 이부분은 바오밥 엔드포인트로 연결하신것이 맞을까요?

new Caver('https://public-node-api.klaytnapi.com/v1/baobab') 이렇게 변경 해보시겠습니까?

1 Like

와…말씀하신대로 수정하니까 됐습니다
해당 주소를 제가 어디서 찾을수 있었을까요? doc에서는 방법을 못찾았었습니다.
mainnet을 사용하려면 baobab을 mainnet으로 수정하면 되는것일까요?
답변 너무감사드립니다