[솔리디티] Payable, OpenZeppelin, onlyOwner

91Savage·2022년 8월 5일
0

Solidity

목록 보기
6/11

Payable

  • State Mutability를 결정하는 함수 제어자 중 하나
  • 함수 호출 시 이더(eth)를 송금해야 하는 경우 사용하는 키워드

OpenZeppelin

  • 안전한 블록체인 애플리케이션을 목적으로 하는 표준 라이브러리를 제공

  • OpenZeppelin 의 Ownable 컨트랙트 사용

  • Ownable 컨트랙트는 대표적으로 다음과 같은 역할

  1. 컨트랙트 생성 시 컨트랙트 생성자가 owner에 msg.sender를 할당
  2. 특정한 함수들에 대해서 소유자만 접근할 수 있도록 onlyOwner 제어자 추가
  3. 새로운 소유자에게 컨트랙트의 소유권을 옮길 수 있도록 함

커스텀 함수 제어자 onlyOwner

https://github.com/OpenZeppelin/openzeppelincontracts/blob/master/contracts/access/Ownable.sol

  • 아무나 참조하는 컨트랙트의 주소를 변경하게 되면 시스템이 의도한대로 동작하지 않을 수 있음
  • 컨트랙트의 주인만 참조하는 컨트랙트의 주소를 변경할 수 있어야 함
  • 커스텀 함수 제어자는 modifier 라는 키워드로 정의함
  • modifier 내부의 _; 구문은 함수를 계속해서 실행하라는 의미
  • 커스텀 함수 제어자는 인수를 가지는 경우도 있음

0개의 댓글