ERC20

EIP 문서

MUST

  • ERC20 함수 호출자는 리턴값 successtrue를 리턴했는지 확인해야 한다. false가 리턴되지 않을 것이라고 가정해서는 안된다.
  • name, symbol, decimals 는 선택적 기능이므로 이 함수가 항상 존재할 것이라고 가정해서는 안된다.
  • transfer 함수
    • 반드시 Transfer 이벤트를 발생한다.
    • 0만큼의 토큰을 전송 요청했을 시, 정상적으로 함수를 처리하고 Transfer 이벤트를 발생한다.
  • transferFrom 함수
    • 반드시 Transfer 이벤트를 발생한다.
    • 0만큼의 토큰을 전송 요청했을 시, 정상적으로 함수를 처리하고 Transfer 이벤트를 발생한다.
  • approve 함수를 성공적으로 호출했다면 Approval 이벤트를 발생한다.

SHOULD

  • transfer시 호출자의 잔고가 부족하다면 예외를 발생시킨다.
  • transferFrom 함수의 _from이 호출자에게 어떠한 매커니즘을 통해 의도적으로 승인하지 않은 경우 예외를 발생시킨다.
  • allowance를 설정할 때, 동일한 지출자에게 다른 값으로 설정하기 전에 먼저 allowance를 0으로 설정한다. 이는 기존에 배포된 ERC20와의 하위 호환을 위해 강제되지는 않지만, 토큰을 사용하는 쪽에서 따르도록 권장한다.
  • 새 토큰을 민팅할 때 Transfer 이벤트의 _fromaddress(0)으로 하여 이벤트를 발생한다.

ERC20 연동 시 체크리스트


tags: blockchain, smart contract, fungible token, defi