본문 바로가기

:D/block chain

[Solidity] Require

Require

 : 특정 조건이 참이 아닐 때 함수가 에러 메시지를 발생하고 실행을 멈추게 함

 

function sayHiToVitalik(string _name) public returns (string) {
  // _name이 "Vitalik"인지 비교한다. 참이 아닐 경우 에러 메시지를 발생하고 함수를 벗어난다
  // (참고: 솔리디티는 고유의 스트링 비교 기능을 가지고 있지 않기 때문에 
  // 스트링의 keccak256 해시값을 비교하여 스트링 값이 같은지 판단한다)
  require(keccak256(_name) == keccak256("Vitalik"));
  // 참이면 함수 실행을 진행한다:
  return "Hi!";
}

 

sayHiToVitalik("Vitalik")로 이 함수를 실행하면 "Hi!"가 반환됨.

"Vitalik"이 아닌 다른 값으로 이 함수를 호출할 경우, 에러 메시지가 뜨고 함수가 실행되지 않음.

그러므로 require는 함수를 실행하기 전에 참이어야 하는 특정 조건을 확인하는 데 있어서 유용

 

 

 

require(msg.value == BET_AMOUNT, "Not enough ETH!");

이런식으로 에러메시지를 출력할 수도 있음.

' :D > block chain' 카테고리의 다른 글

[Solidity] Storage vs Memory  (0) 2022.02.15
[Solidity] 상속  (0) 2022.02.15
[Solidity] Msg.sender  (0) 2022.02.15
[Solidity] Mapping 과 Address  (0) 2022.02.15
[Solidity] Keccak256과 형 변환  (0) 2022.02.15