diff --git a/app/.gitignore b/.gitignore similarity index 67% rename from app/.gitignore rename to .gitignore index 08dc7b0..a7e5733 100644 --- a/app/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ dist/ +.DS_Store diff --git a/app/src/components/Header.tsx b/app/src/components/Header.tsx index 2b10cc0..bef9455 100644 --- a/app/src/components/Header.tsx +++ b/app/src/components/Header.tsx @@ -11,20 +11,27 @@ export const Header: FC<{ frontmatter: Frontmatter }> = ({ frontmatter }) => {
Status -
{frontmatter.ensip.status}
+
{frontmatter.status}
Created -
{frontmatter.ensip.created}
+
+ {frontmatter.created.toLocaleDateString('UTC', { + timeZone: 'UTC', + year: 'numeric', + month: 'long', + day: 'numeric', + })} +
Author - {frontmatter.contributors.length > 1 ? 's' : ''} + {frontmatter.authors.length > 1 ? 's' : ''}
diff --git a/app/src/specs/validateFrontmatter.ts b/app/src/specs/validateFrontmatter.ts index beb14f3..8635be1 100644 --- a/app/src/specs/validateFrontmatter.ts +++ b/app/src/specs/validateFrontmatter.ts @@ -15,19 +15,11 @@ export type UnparsedFrontmatter = { }; }; -export type Frontmatter = { - description: string; - contributors: string[]; - ensip: { - status: string; - created: string; - }; - ignoredRules?: string[]; -}; +export type Frontmatter = z.infer; export const FrontMatterZod = z.object({ description: z.string().min(5).max(160), - contributors: z + authors: z .array( z .string() @@ -36,10 +28,8 @@ export const FrontMatterZod = z.object({ ) .min(1) .max(10), - ensip: z.object({ - status: z.enum(['draft', 'obsolete', 'final']), - created: z.string().regex(/^\d{4}-\d{2}-\d{2}$/), - }), + status: z.enum(['Draft', 'Obsolete', 'Final']), + created: z.date(), ignoredRules: z.array(z.string()).optional(), }); @@ -48,8 +38,9 @@ export const validateFrontmatter = ( directPath: string ): Frontmatter => { try { - // @ts-ignore - const parsed = parseYaml(frontmatter.value as string) as Frontmatter; + const parsed = parseYaml(frontmatter.value as string, { + customTags: ['timestamp'], + }) as Frontmatter; return FrontMatterZod.parse(parsed); } catch (error) { diff --git a/ensips/1.md b/ensips/1.md index 256586d..e4311af 100644 --- a/ensips/1.md +++ b/ensips/1.md @@ -1,10 +1,9 @@ --- description: Documentation of the basic ENS protocol (formerly EIP-137) -contributors: +authors: - nick.eth -ensip: - created: '2016-04-04' - status: final +created: 2016-04-04 +status: Final ignoredRules: ["missing:copyright"] --- diff --git a/ensips/10.md b/ensips/10.md index 6f3132a..a64c7c5 100644 --- a/ensips/10.md +++ b/ensips/10.md @@ -1,11 +1,10 @@ --- description: Provides a mechanism to support wildcard resolution of ENS names (formerly EIP-2544). -contributors: +authors: - nick.eth - 0age -ensip: - created: 2020-02-28 - status: draft +created: 2020-02-28 +status: Draft --- # ENSIP-10: Wildcard Resolution @@ -43,7 +42,7 @@ Let: ENSIP-10-compliant ENS resolvers MAY implement the following function interface: -``` +```solidity interface ExtendedResolver { function resolve(bytes calldata name, bytes calldata data) external view returns(bytes); } @@ -76,7 +75,7 @@ Also note that when wildcard resolution is in use (eg, `name != currentname`), c ### Pseudocode -``` +```solidity function getResolver(name) { for(let currentname = name; currentname !== ''; currentname = parent(currentname)) { const node = namehash(currentname); diff --git a/ensips/11.md b/ensips/11.md index 7f6e4c8..a479ab5 100644 --- a/ensips/11.md +++ b/ensips/11.md @@ -1,10 +1,9 @@ --- description: Introduces coinType for EVM compatible chains (amending ENSIP9). -contributors: +authors: - matoken.eth -ensip: - status: draft - created: 2022-01-13 +status: Draft +created: 2022-01-13 --- # ENSIP-11: EVM compatible Chain Address Resolution diff --git a/ensips/12.md b/ensips/12.md index 7fb288d..7fd829b 100644 --- a/ensips/12.md +++ b/ensips/12.md @@ -1,11 +1,10 @@ --- description: A standard for storage of the avatar text record in ENS. -contributors: +authors: - nick.eth - matoken.eth -ensip: - status: draft - created: 2022-01-18 +status: Draft +created: 2022-01-18 --- # ENSIP-12: Avatar Text Records diff --git a/ensips/13.md b/ensips/13.md index 6b44fdc..fc43890 100644 --- a/ensips/13.md +++ b/ensips/13.md @@ -1,14 +1,13 @@ --- description: Using ENS Text Records to facilitate safer and more convenient signing operations. -contributors: +authors: - wwhchung - jwahdatehagh - crydoteth - sillytuna - cyberpnkwin -ensip: - created: 2021-08-03 - status: draft +created: 2021-08-03 +status: Draft ignoredRules: ["missing:specification"] --- diff --git a/ensips/14.md b/ensips/14.md index fc12798..b94309b 100644 --- a/ensips/14.md +++ b/ensips/14.md @@ -1,11 +1,10 @@ --- description: Using the reveal secret as a way to have on chain information about the source of the registration -contributors: +authors: - aslobodnik - alexvandesande -ensip: - status: draft - created: 2021-02-07 +status: Draft +created: 2021-02-07 ignoredRules: ["missing:motivation", "missing:copyright", "heading:user-referral-data", "heading:privacy-concerns", "heading:a-reverse-code-registry"] --- diff --git a/ensips/15.md b/ensips/15.md index 5f27bd5..f296792 100644 --- a/ensips/15.md +++ b/ensips/15.md @@ -1,10 +1,9 @@ --- description: A standard for storage of the avatar text record in ENS. -contributors: +authors: - adraffy -ensip: - status: draft - created: 2023-04-03 +status: Draft +created: 2023-04-03 ignoredRules: ["heading:description-of-", "heading:derivation", "heading:appendix:-reference-specifications", "heading:appendix:-additional-resources", "heading:appendix:-validation-tests", "heading:annex:-beautification"] --- diff --git a/ensips/16.md b/ensips/16.md index 1f87f18..c3fab2d 100644 --- a/ensips/16.md +++ b/ensips/16.md @@ -1,11 +1,10 @@ --- description: Allows metadata to be queried on EIP-3668 enabled names -contributors: +authors: - jefflau - makoto -ensip: - status: draft - created: 2022-09-22 +status: Draft +created: 2022-09-22 ignoredRules: ["heading:implementation", "heading:open-items"] --- diff --git a/ensips/17.md b/ensips/17.md index eaa105e..79d2e38 100644 --- a/ensips/17.md +++ b/ensips/17.md @@ -1,10 +1,9 @@ --- description: A standard for gasless DNS resolution in ENS. -contributors: +authors: - nick.eth -ensip: - status: draft - created: 2024-02-09 +status: Draft +created: 2024-02-09 --- # ENSIP-17: Gasless DNS Resolution diff --git a/ensips/18.md b/ensips/18.md index 989f008..d7f7687 100644 --- a/ensips/18.md +++ b/ensips/18.md @@ -1,12 +1,11 @@ --- description: A standard for profile information as text records in ENS -contributors: +authors: - TateB - adraffy - galligan -ensip: - status: draft - created: 2023-08-02 +status: Draft +created: 2023-08-02 --- # ENSIP-18: Profile Text Records diff --git a/ensips/19.md b/ensips/19.md index cce0e42..3657b2a 100644 --- a/ensips/19.md +++ b/ensips/19.md @@ -1,10 +1,9 @@ --- description: Specifies reverse resolution in a cross-chain context -contributors: +authors: - jefflau.eth -ensip: - status: draft - created: 2023-03-14 +status: Draft +created: 2023-03-14 --- # ENSIP-19: EVM-chain Reverse Resolution diff --git a/ensips/2.md b/ensips/2.md index 014f22f..a89e042 100644 --- a/ensips/2.md +++ b/ensips/2.md @@ -1,12 +1,11 @@ --- description: Describes the hash registrar initially used to register ENS .eth domains (formerly EIP-162). -contributors: +authors: - nick.eth - avsa.eth - maurelian -ensip: - created: '2016-10-25' - status: obsolete +created: 2016-10-25 +status: Obsolete ignoredRules: ["heading:prior-work"] --- diff --git a/ensips/3.md b/ensips/3.md index e2591cd..c0b485c 100644 --- a/ensips/3.md +++ b/ensips/3.md @@ -1,10 +1,9 @@ --- description: Specifies a TLD, registrar, and resolver interface for reverse resolution of Ethereum addresses using ENS (formerly EIP-181). -contributors: +authors: - nick.eth -ensip: - created: '2016-12-01' - status: final +created: 2016-12-01 +status: Final --- # ENSIP-3: Reverse Resolution @@ -39,7 +38,7 @@ When called by account `x`, instructs the ENS registry to transfer ownership of Allowing the caller to specify an owner other than themselves for the relevant node facilitates contracts that need accurate reverse ENS entries delegating this to their creators with a minimum of code inside their constructor: -``` +```solidity reverseRegistrar.claim(msg.sender) ``` @@ -55,7 +54,7 @@ When called by account `x`, sets the resolver for the name `hex(x) + '.addr.reve A new resolver interface is defined, consisting of the following method: -``` +```solidity function name(bytes32 node) constant returns (string); ``` @@ -69,7 +68,7 @@ Future ENSIPs may specify more record types appropriate to reverse ENS records. This registrar, written in Solidity, implements the specifications outlined above. -``` +```solidity pragma solidity ^0.4.10; import "./AbstractENS.sol"; diff --git a/ensips/4.md b/ensips/4.md index 149beca..eaee6e6 100644 --- a/ensips/4.md +++ b/ensips/4.md @@ -1,10 +1,9 @@ --- description: A mechanism for storing ABI definitions in ENS, for easy lookup of contract interfaces by callers (formerly EIP-205). -contributors: +authors: - nick.eth -ensip: - created: '2017-02-06' - status: final +created: 2017-02-06 +status: Final ignoredRules: ["missing:motivation"] --- @@ -49,7 +48,7 @@ Encoding type 8 indicates that the ABI can be found elsewhere, at the specified A new resolver interface is defined, consisting of the following method: -``` +```solidity function ABI(bytes32 node, uint256 contentType) constant returns (uint256, bytes); ``` diff --git a/ensips/5.md b/ensips/5.md index fd9eafa..6f0b9ee 100644 --- a/ensips/5.md +++ b/ensips/5.md @@ -1,10 +1,9 @@ --- description: A standard for storage of text records in ENS (formerly EIP-634). -contributors: +authors: - ricmoo.eth -ensip: - created: '2017-05-17' - status: final +created: 2017-05-17 +status: Final --- # ENSIP-5: Text Records diff --git a/ensips/6.md b/ensips/6.md index 2ebbd23..fb16322 100644 --- a/ensips/6.md +++ b/ensips/6.md @@ -1,10 +1,9 @@ --- description: Defines a resolver profile for ENS that provides features for storage and lookup of DNS records (formerly EIP-1185). -contributors: +authors: - mcdee -ensip: - created: '2018-06-26' - status: obsolete +created: 2018-06-26 +status: Obsolete ignoredRules: ["heading:implementation", "heading:test-cases"] --- diff --git a/ensips/7.md b/ensips/7.md index 40b3a56..b065fc6 100644 --- a/ensips/7.md +++ b/ensips/7.md @@ -1,11 +1,10 @@ --- description: Introduces a field for storing content addresses and hashes in ENS (formerly EIP-1577). -contributors: +authors: - nick.eth - decanus -ensip: - created: '2018-11-13' - status: final +created: 2018-11-13 +status: Final --- # ENSIP-7: Contenthash field diff --git a/ensips/8.md b/ensips/8.md index f082fb7..5000338 100644 --- a/ensips/8.md +++ b/ensips/8.md @@ -1,10 +1,9 @@ --- description: Defines a method of associating contract interfaces with ENS names and addresses, and of discovering those interfaces (formerly EIP-1844). -contributors: +authors: - nick.eth -ensip: - created: '2019-03-05' - status: final +created: 2019-03-05 +status: Final ignoredRules: ["heading:implementation"] --- diff --git a/ensips/9.md b/ensips/9.md index 25a20d5..92dbfa1 100644 --- a/ensips/9.md +++ b/ensips/9.md @@ -1,10 +1,9 @@ --- description: Introduces new overloads for the addr field for ENS resolvers, which permit resolution of addresses for other blockchains via ENS (formerly EIP-2304). -contributors: +authors: - nick.eth -ensip: - created: 2019-09-09 - status: final +created: 2019-09-09 +status: Final ignoredRules: ["missing:abstract", "heading:tests"] --- diff --git a/template.md b/template.md index bfa9aba..4fc275e 100644 --- a/template.md +++ b/template.md @@ -1,14 +1,13 @@ --- # Description of the proposal description: Some description about the proposal -# List of ens names or github handles of contributors -contributors: +# List of ENS names or github handles of contributors +authors: - nick.eth -ensip: - # Date of creation - created: '2024-01-01' - # Status of the proposal, draft by default, updated by the editors - status: draft +# Date of creation +created: 2024-01-01 +# Status of the proposal, Draft by default, updated by the editors +status: Draft --- # ENSIP-X: Title of the proposal @@ -56,4 +55,5 @@ Optional security considerations section. ## Copyright + Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).