트랜잭션에 klay를 보내고 싶습니다.
아래 처럼 하면 정상적으로 트랜잭션이 작동하지만
value를 넣으면 non-payable contract method or constructor 오류가 발생됩니다.
해당 함수가 payable로 선언되어있는데도 해당 오류가 발생하고있습니다. 방법이 잘못된건가요?
solidity 0.8.0 버전에 caver-js 1.4.1 버전 사용하고있습니다.
트랜잭션에 klay를 보내고 싶습니다.
아래 처럼 하면 정상적으로 트랜잭션이 작동하지만
value를 넣으면 non-payable contract method or constructor 오류가 발생됩니다.
해당 함수가 payable로 선언되어있는데도 해당 오류가 발생하고있습니다. 방법이 잘못된건가요?
solidity 0.8.0 버전에 caver-js 1.4.1 버전 사용하고있습니다.
안녕하세요.
contractState.NftContract abi 확인 부탁드립니다.
해당 에러는 아래의 로직에서 발생합니다.
if (_.isBoolean(this._method.payable) && !this._method.payable && args.options.value && args.options.value > 0) {
return utils._fireError(
new Error('Can not send value to non-payable contract method or constructor'),
defer.eventEmitter,
defer.reject,
args.callback
)
}
이 말은 컨트랙트 인스턴스가 가지고 있는 mint함수가 payable 이 true가 아닌데 value를 보내서 생기는 에러입니다.
아래 함수로 컨트랙트를 만들었더니 안된거였습니다.
이걸로 컨트랙트 객체를 만들었더니 정상작동했습니다. 감사합니다.