ethereum / eipv

Ethereum Improvement Proposal Validator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EIP validator

Superseded by eipw

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

About

Ethereum Improvement Proposal Validator

License:Apache License 2.0


Languages

Language:Rust 100.0%