mds1 / evm-diff

Diff EVM-compatible chains in a friendly format

Home Page:https://evmdiff.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

feat(data): EIPs

mds1 opened this issue · comments

This issue is eligible for a bounty paid out in ETH on OP Mainnet. Read CONTRIBUTING.md to learn how to qualify.

This should contain all live EIPs for a given chan. Initial suggested types, subject to change as needed, and fields can be made optional as needed:

type EIPParameter = {
  name: string;
  value: string | number | bigint | boolean
}

type EIP = {
  number: number;
  title: string;
  link: string;
  // The status should always be `Final` for now.
  status: 'Draft' | 'Review' | 'Last Call' | 'Final' | 'Stagnant' | 'Withdrawn' | 'Living';
  activeHardforks: MainnetHardfork[]; // Would need other enums for other chains, this enum is for mainnet only.
  deprecated: boolean;
  // Some EIPs have parameters, such as EIP-1559, but these parameters may not be the same on all
  // chains. This field is intended to list the names and values of any parameters that exist.
  parameters?: EIPParameter[];
};

Notes:

  • All implemented mainnet EIPs can be found here. Trail of Bits' Building Secure Smart Contracts has a Forks <> EIPs section which may be helpful too. (They have this for Celo, Tron, and BSC also, but some/all of this might be out of date)
  • There are getHardforksFrom and getHardforksTo methods for helping generate the activeHardforks range
  • Other EIPs may be final and not yet active, since they'll be in a future hard fork. These can be ignored for now.

Working on this issue atm

@mds1 We might need to re-open this issue since optimism and arbitrum EIPs have not been added yet.

Closing this issue as part of the move to automated data collection in #62. Some EIP specific data may be re-added when it can be detected automatically, but a new, better scoped issue will be created for that