#lint #proposal #validation #ethereum #author #status #eipw

eipw-lint

为eipw(以太坊改进提案验证器)提供的lints库

3个版本 (破坏性更新)

0.8.0 2023年10月27日
0.7.0 2023年10月26日
0.6.0 2023年9月29日

#30 in #validator


用于eipw

MPL-2.0 许可证

210KB
5K SLoC

eipw

eipv多一个的EIP验证器。

USAGE:
    eipw [OPTIONS] [SOURCES]...

ARGS:
    <SOURCES>...    Files and/or directories to check

OPTIONS:
        --format <FORMAT>     Output format [default: text] [possible values: text, json]
    -h, --help                Print help information
        --lints <LINTS>       Additional lints to enable
        --list-lints          List all available lints
        --no-default-lints    Do not enable the default lints

演示

示例EIP

---
eip: 2
description: A really short example of an EIP.
title: Sample of an EIP
author: Sam Wilson (@SamWilsn)
discussions-to: https://example.com/
status: Living
type: Meta
created: 2022-06-30
---

## Specification

Implementers of this EIP must...

## Abstract

This is an abstract!

输出

error[markdown-order-section]: section `Specification` must come after `Motivation`
  --> /tmp/demo.md
   |
12 | ## Specification
   |
error[preamble-order]: preamble header `description` must come after `title`
 --> /tmp/demo.md
  |
3 | description: A really short example of an EIP.
  |

Lints

id 描述
markdown-html-comments 审查就绪的EIP中不包含HTML注释
markdown-json-cite 所有csl-json代码块都遵循正确的架构。
markdown-link-first 对EIP的第一次提及必须是链接。
markdown-link-status 在正文中链接的EIP的状态比当前提案更晚。
markdown-order-section 没有额外的部分,且部分顺序正确。
markdown-re-eip-dash 其他EIP使用EIP-X引用,而不是EIPX或EIP X。
markdown-re-erc-dash 其他ERC使用ERC-X引用,而不是ERCX或ERC X。
markdown-refs ERC使用ERC-X引用,而其他提案使用EIP-X。
markdown-rel-links 页面中的所有URL都是相对的。
markdown-req-section 提案正文中包含必需的部分。
preamble-author 作者标题格式正确,至少列出了一个GitHub用户。
preamble-date-created created标题是日期。
preamble-date-last-call-deadline last-call-deadline标题是日期。
preamble-discussions-to discussions-to标题是有效的URL。
preamble-eip eip标题是非负整数。
preamble-enum-category category标题是已识别的值。
preamble-enum-status status标题是已识别的值。
preamble-enum-type type标题是已识别的值。
preamble-file-name 文件名反映了EIP编号。
前言-长度-描述 描述头不是太长。
前言-长度-标题 标题头不是太长。
前言-长度-需求 需求头至少有一个条目。
前言-列表-作者 作者头是正确格式的逗号分隔列表。
前言-列表-需求 需求头是正确格式的逗号分隔列表。
前言-无重复 没有重复的标题。
前言-顺序 前言标题的顺序是正确的。
前言-重新描述 描述不包含“标准”或类似词语。
前言-重新描述-冒号 描述不包含任何“:”字符。
前言-重新描述-EIP-破折号 在描述头中引用的EIP使用破折号。
前言-重新描述-ERC-破折号 在描述头中引用的ERC使用破折号。
前言-重新讨论-到 讨论-到头指向以太坊魔术师。
前言-重新标题 标题不包含“标准”或类似词语。
前言-重新标题-冒号 标题不包含任何“:”字符。
前言-重新标题-EIP-破折号 在标题头中引用的EIP使用破折号。
前言-重新标题-ERC-破折号 在标题头中引用的ERC使用破折号。
前言-引用-描述 在描述头中引用的ERC使用ERC-前缀。
前言-引用-标题 在标题头中引用的ERC使用ERC-前缀。
前言-要求 所有必需的前言标题都存在。
前言-要求-类别 只有当需要时才存在类别头。
前言-要求-最后调用截止日期 只有当需要时才存在最后调用截止日期头。
前言-要求-撤回原因 只有当需要时才存在撤回原因头。
前言-要求-引用-描述 在描述头中提到的提案出现在需求头中。
前言-要求-引用-标题 在标题头中提到的提案出现在需求头中。
前言-要求-状态 在需求头中列出的EIP状态比当前提案更远。
前言-修剪 前言字段周围没有多余的空格。
前言-无符号整数-需求 需求头是非负整数的排序列表。

JavaScript / WebAssembly

eipw-lint-jseipw作为npm包打包,用于JavaScript / TypeScript。

您可以在npm上找到该包

构建与发布

cd eipw-lint-js
wasm-pack test --node
wasm-pack build -t nodejs
wasm-pack publish -t nodejs

依赖关系

约15-25MB
约398K SLoC