스마트 컨트랙트 실행 input 데이터 형식
https://wallet-api.klaytnapi.com/v2/tx/contract/execute
kas api를 사용해서 스마트 컨트랙트 실행하고 싶습니다.
https://forum.klaytn.com/t/kas-nft/3812
위와 같은 방법으로 하고싶은데 디테일하게 작동방법을 몰라서 많이 헤매고 있네요.
최종적으로 하고싶은건 kas 지갑에서 다른 컨트랙트로 nft를 보내고 싶습니다.
그래서 kip17에 있는 safeTransferFrom 메서드를 스마트 컨트랙트로 실행해서 보내려고합니다.
여기서 스마트 컨트랙트 kas api의 input값 및 파라미터를 어떤 방식으로 입력해야하는지 궁금하네요.
api doc에는 이런식으로만 써있네요
const input = await caver.abi.encodeFunctionSignature(`safeTransferFrom(address,address,uint256)`)
이런 형태로 인코딩햇는데 바로 input에 넣으니 동작하지 않네요...
어떻게 작동 시킬 수 있을까요?
0
-
기나긴 삽질 끝에 해결했네요 휴...
바보같이
caver.klay.abi.encodeFunctionCall 함수 대신
caver.klay.abi.encodeFunctionSignature 사용했었네요...
참고 코드 공유합니다.
const 인풋데이터 = await caver.klay.abi.encodeFunctionCall({name: 'safeTransferFrom',type: 'function',inputs: [{type: 'address',name: 'from'}, {type: 'address',name: 'to'}, {type: 'uint256',name: 'tokenId'}]}, [보내는지갑주소, 받는지갑주소, 토큰아이디])
var options = {method: 'POST',headers: {'Content-Type': 'application/json','x-chain-id': '1001',Authorization: 'Basic 비밀입니다'},data: {from: 보내는지갑주소,// value: '0x0',to: 컨트랙트주소,input: 인풋데이터,nonce: 0,gas: 0,submit: true}};
axios.request(options).then(function (response) {console.log(response.data);}).catch(function (error) {console.error(error);});0
댓글을 남기려면 로그인하세요.
댓글
댓글 1개