목차

반응형

증상

솔리디티 컴파일 도중 payable 함수를 사용할때 아래와 같은 에러메시지를 받는다.

 

Desktop\project\token>npx hardhat run ./scripts/deploy.js --network ropsten
Compiling 1 file with 0.8.0
ParserError: Expected a state variable declaration. If you intended this as a fallback function or a function to handle plain ether transactions, use the "fallback" keyword or the "receive" keyword instead.
   --> contracts/HITO.sol:150:32:
    |
150 |     function () public payable {
    |                                ^


Error HH600: Compilation failed

For more info go to https://hardhat.org/HH600 or run Hardhat with --show-stack-traces

 

 

 

원인

솔리디티 버전이 올라가면서 payable 함수는 function이 아니라 fallback으로 수현해야한다.

 

해결방법

아래와 같이 수정하면 된다.

 

 

참고 링크

https://ethereum.stackexchange.com/questions/89833/compiler-solc-expected-a-state-variable-declaration

 

Compiler solc expected a state variable declaration

I try example from book Mastering Ethereum: contract Faucet { function withdraw(uint withdraw_amount) public { require(withdraw_amount<=10000000000000000); msg.sender.transfer(

ethereum.stackexchange.com

 

반응형