- 바오밥 네트워크 상에서 KAS 를 통해 생성된 KIP7 토큰에 대해서
- JSON-RPC를 사용해서 권한을 부여받아 TransferFrom을 수행하려고 합니다.
- KAS API 상의 allowance 호출 시, spender가 owner로부터 지정한 수량을 approve 받은 것으로 나오는데요
동일한 토큰의 Ownder, spender에 대해서 caver JAVA를 통해 allowance를 호출한 결과 허용된 된 잔액이 없다고 나옵니다.
KIP7 kip7 = caver.kct.kip7.create(tokenAddress);
// public BigInteger allowance(String owner, String spender)
BigInteger ab = kip7.allowance(deployerAddress, spenderAddress);
{
"jsonrpc": "2.0",
"method": "klay_call",
"params": [{
"to": "0x4b23768749f18f504d8233c88bc4da0b622344d1",
"data": "0xdd62ed3e000000000000000000000000013f23266b127db9cadc783eb7703b5f4e710385000000000000000000000000e8cb3397bd8cdf54f09422d3336a6235ac182de3"
}, "latest"],
"id": 0
}
{
"jsonrpc": "2.0",
"id": 0,
"result": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
마찬가지로 transferFrom을 할 때, estimateGas를 할 때, allowance가 필요하다고 나오는데, KAS API를 통해 allowance를 받은 것이 JSON RPC에는 유효하지 않은지 확인 부탁드립니다.
SendOptions sendParam = new SendOptions(spenderAddress);
TransactionReceiptData data = kip7.transferFrom(deployerAddress, account.getAccount_address(), BigInteger.valueOf(amount * decimal), sendParam);
{
"jsonrpc": "2.0",
"method": "klay_estimateGas",
"params": [{
"from": "0xe8cb3397bd8cdf54f09422d3336a6235ac182de3",
"to": "0x4b23768749f18f504d8233c88bc4da0b622344d1",
"data": "0x23b872dd000000000000000000000000013f23266b127db9cadc783eb7703b5f4e710385000000000000000000000000797958bc3fe1d58beb7d81157353c8fc81cde84d0000000000000000000000000000000000000000000000000de0b6b3a7640000"
}],
"id": 1
}
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32000,
"message": "gas required exceeds allowance or always failing transaction"
}
}
spender는 KAIKAS 계정
receiver는 KLIP계정
deployer는 KAS에서 KIP Token 배포 시 기본으로 생성되는 deploy 계정입니다.