안녕하세요,
Smart contract 를 활용한 token transfer 를 연습해보고 있는데요,
revert 오류가 발생하는데 원인 파악이 어려워 문의 요청 드립니다.
작성한 contract 는
interface IERC20 { ... }
contract TransferTest {
function test(address recipient, address token, uint256 amount) public returns (bool) {
return IERC20(token).transfer(recipient, amount);
}
function onKIP7Received(address _operator, address _from, uint256 _amount, bytes memory _data) public returns(bytes4) {
return bytes4(keccak256("onKIP7Received(address,address,uint256,bytes)"));
}
}
이며, 해당 contract 를 caver-js 를 활용해 호출한 코드는 다음과 같습니다.
... (생략) ...
const kxrpContract = caver.contract.create(iERC20ContractMeta.abi, kxrpAddress);
const approveRes = await kxrpContract.send({
from: testAddress,
gas: 10_0000,
}, 'approve', contractAddress, amount);
console.log(approveRes); // success
const transferTestContract = caver.contract.create(transferTestContractMeta.abi, contractAddress);
// revert execution error 1
await transferTestContract.send({
from: testAddress,
gas: 100_0000,
}, 'test', otherUserAddress, kxrpAddress, amount);
// revert execution error 2
await transferTestContract.send({
from: testAddress,
gas: 100_0000,
}, 'test', contractAddress, kxrpAddress, amount);
error 1, erro 2 모두 revert 오류가 발생하는데 해당 코드의 어느 부분에 문제가 있는지 도움 받을 수 있을까요?