NFT 발행(kip17)후 소유권을 가지고 있는 'A’가 'B’에게 일정 'klay’를 받고 소유권을 transfer 하려고 합니다.
아래와 같이 함수를 구성하여 value: caverKaikas.utils.toPeb('10', 'KLAY'),
를 통해서 10 클레이 라는 금액을 산정하는 형태로 만들었는데, 이게 맞는건가요?
만약 맞다면, 아래 로직대로 10 클레이를 구성해서 보낼 경우 Fail : ErrExecutionReverted - uint(0x09) 에러가 발생하더라구요.
클레이를 0으로 잡으면 에러가 발생하지 않았습니다.
만약 이 방식이 아니라면, 어떠한 방식으로 구성할 수 있을까요?
export const sendKaikas = async (
from_address: string,
to_address: string,
tokenId: number | string,
contractAddress: string
) => {
// ANCHOR: NFT 전송
const data = caverKaikas.klay.abi.encodeFunctionCall(
{
constant: false,
inputs: [
{
name: 'from',
type: 'address',
},
{
name: 'to',
type: 'address',
},
{
name: 'tokenId',
type: 'uint256',
},
],
name: 'transferFrom',
outputs: [],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
[from_address, to_address, caverKaikas.utils.toBN(tokenId).toString()]
);
const txData = {
type: 'FEE_DELEGATED_SMART_CONTRACT_EXECUTION',
from: from_address,
to: contractAddress,
gas: 1000000,
value: caverKaikas.utils.toPeb('10', 'KLAY'),
data,
};
const signed: any = await caverKaikas.klay.signTransaction(txData);
// NOTE: KAS에서 수수료 대납
var r =
await caverExtKas.kas.wallet.requestFDRawTransactionPaidByGlobalFeePayer({
rlp: signed.rawTransaction,
submit: true,
});
console.log('r', r);
// ErrExecutionReverted - uint(0x09)
return r?.status ?? false;
};