Caver 1.8.0 커스텀 매소드 estimateGas호출 시 오류가 발생해서 문의드립니다

  • 제품 명 : caver-java
  • 제품 버전 : 1.8.0
  • OS환경 : Mac
  • 내용(문의 유형에 해당하는 항목 작성) :

안녕하세요.

기존 1.6.3대를 사용하면서 1.8.0으로 버전을 업데이트 하려고 합니다.
로컬에서 1.8.0으로 업데이트하고 기존 기능들을 테스트하면서
GAS비용 설정을 부분을 변경해주로고 합니다

기존에는 "determineSendOptions"메소드를 통해서 GAS비용을 자동적으로 설정해주도록 했는데
저희가 배포한 컨트랙트의 커스텀 메소드를 호출할때 오류가 발생했습니다.

이때 오류 메세지는

java.io.IOException: gas required exceeds allowance or always failing transaction

	at com.klaytn.caver.contract.ContractMethod.estimateGas(ContractMethod.java:1097)
	at com.klaytn.caver.contract.ContractMethod.estimateGas(ContractMethod.java:510)

이렇게 발생했습니다.

그래서 커스텀메소드를 호출하기 전 "estimateGas"를 호출하여 GAS비용을 설정하려고 합니다.

Token _token = new Token(caver, tokenContractAddress);
CallObject callObject = CallObject.createCallObject(_token.getContractAddress());
BigInteger result = _token.estimateGas(_token, "customMethod", callObject, Arrays.asList(param1, param2, param3));

- Token.java
public static BigInteger estimateGas(MCCTokenN kip7, String functionName, CallObject callObject, List<Object> arguments) throws NoSuchMethodException, IOException, InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException {
        String gas = kip7.getMethod(functionName).estimateGas(arguments, callObject);
        BigDecimal bigDecimal = new BigDecimal(Numeric.toBigInt(gas));
        BigInteger gasInteger = bigDecimal.multiply(new BigDecimal(1.5)).toBigInteger();

        return gasInteger;
    }

위 처럼 구현하여 estimateGas를 호출했을 때도 동일하게 에러가 발생했습니다…

해당 오류는 어떻게 수정해야나요?

제가 호출한 커스텀 메소드는 컨트랙트의 transferFrom 메소드를 호출했습니다