An engine which ensures Ethereum Improvement Proposals meet certain requirements.
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
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
(ifftype
== "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)
- Name only:
-
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
- Each field is of the shape
- 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
, whereN
coresponds to the EIP's assigned number - URLs to other EIPs are relative links
- No trailing whitespace in preamble