11 unstable releases (4 breaking)

0.4.0 Nov 10, 2021
0.3.0 Oct 20, 2021
0.2.0 Aug 17, 2021
0.1.1 Mar 5, 2021
0.0.5 Aug 20, 2020

#12 in #eip

MIT/Apache

29KB
646 lines

EIP validator

license ci status

An engine which ensures Ethereum Improvement Proposals meet certain requirements.

Getting Started

To install eipv and validate the EIPs repository:

git clone https://github.com/lightclient/eipv.git
cargo install --path=eipv eipv
eipv /path/to/EIPS

Requirements

This tracks what eipv can validate.

  • Preamble starts with ---
  • Preamble ends with ---
  • Preamble includes all required fields:
    • eip
    • title
    • description
    • author
    • discussions-to
    • created
    • status
    • type
    • category (iff type == "Standards Track")
  • Preamble does not include any unknown fields
  • Preamble fields are properly formed:
    • Each field is of the shape {field}: {value}\n
    • eip is an unsigned integer
    • title is a string whose length is less than 44 characters
    • author is a comma-separated string of author information which has three possible shapes:
      • Name only: John A. Doe
      • Name and email: John A. Doe <john@doe.com>
      • Name and Github username: John A. Doe (@johndoe)
    • discussions-to is a URL where discussions regarding the EIP should be directed
    • discussions-to does not point to a PR
    • status is one of the following string values:
      • draft
      • last call
      • accepted
      • final
      • abandoned
      • rejected
      • superseded
    • type is one of the following string values:
      • standards track
      • informational
      • meta
    • category is one of the following string values:
      • core
      • networking
      • interface
      • erc
    • last-call-deadline is a date value
    • created is a date value
    • updated is a comma-separated list of date values
    • requires is a comma-separated list of EIP numbers in ascending order
    • withdrawal-reason is a string
  • EIP numbers listed as required exist
  • The EIP body includes the required sections in the following order:
    • Abstract
    • Motivation
    • Specification
    • Rationale
    • Backwards Compatibility
    • Test Cases
    • Implementations
    • Security Considerations
    • Copyright Waiver
  • The Abstract section is no longer than 200 words
  • The Copyright Waiver section contains only the following string: Copyright and related rights waived via CC0.
  • The EIP body does not include any unclosed brackets or parentheses outside of code snippets
  • File name is of form eip-N.md, where N coresponds to the EIP's assigned number
  • URLs to other EIPs are relative links
  • No trailing whitespace in preamble

Dependencies

~8–10MB
~173K SLoC