-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 51fc40b
Showing
26 changed files
with
497 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
root = true | ||
|
||
[*] | ||
indent_style = space | ||
indent_size = 2 | ||
max_line_length = 100 | ||
end_of_line = lf | ||
charset = utf-8 | ||
trim_trailing_whitespace = true | ||
insert_final_newline = false | ||
|
||
[*.{md}] | ||
trim_trailing_whitespace = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
* text=auto eol=lf | ||
base.json linguist-language-JSON-with-Comments | ||
wrangler.json linguist-language-JSON-with-Comments |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# build output | ||
dist/ | ||
# generated types | ||
.astro/ | ||
|
||
# dependencies | ||
node_modules/ | ||
|
||
# logs | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
pnpm-debug.log* | ||
|
||
|
||
# environment variables | ||
.env | ||
.env.production | ||
|
||
# macOS-specific files | ||
.DS_Store | ||
.vercel |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
engine-strict=true | ||
auto-install-peers=true | ||
strict-peer-dependencies=false | ||
auto-install-peers=true | ||
enable-pre-post-scripts=true | ||
strict-peer-dependencies=false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"recommendations": [ | ||
"mikestead.dotenv", | ||
"gruntfuggly.todo-tree", | ||
"dbaeumer.vscode-eslint", | ||
"esbenp.prettier-vscode", | ||
"astro-build.astro-vscode", | ||
"bradlc.vscode-tailwindcss", | ||
"EditorConfig.EditorConfig", | ||
"yzhang.markdown-all-in-one" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
{ | ||
"search.exclude": { | ||
"**/node_modules": true, | ||
"pnpm-lock.yaml": true, | ||
"**/.turbo": true, | ||
".eslintcache": true, | ||
".prettiercache": true, | ||
"_": true | ||
}, | ||
"typescript.tsdk": "node_modules/typescript/lib", | ||
"typescript.enablePromptUseWorkspaceTsdk": true, | ||
"typescript.preferences.importModuleSpecifier": "non-relative", | ||
// astro requires this | ||
"typescript.inlayHints.parameterNames.enabled": "all", | ||
"files.associations": { | ||
// tells vscode that the file can take comments | ||
"base.json": "jsonc", | ||
"*.css": "tailwindcss" | ||
}, | ||
"editor.quickSuggestions": { | ||
"strings": "on" | ||
}, | ||
"tailwindCSS.includeLanguages": { | ||
"plaintext": "html" | ||
}, | ||
// git settings | ||
"git.autofetch": true, | ||
"git.confirmSync": false, | ||
"git.enableCommitSigning": true, | ||
// format & lint settings | ||
"editor.formatOnSave": true, | ||
"editor.codeActionsOnSave": { | ||
"source.fixAll.eslint": true | ||
}, | ||
"eslint.enable": true, | ||
"editor.defaultFormatter": "dbaeumer.vscode-eslint", | ||
"[typescript]": { | ||
"editor.defaultFormatter": "esbenp.prettier-vscode" | ||
}, | ||
"[astro]": { | ||
"editor.defaultFormatter": "astro-build.astro-vscode" | ||
}, | ||
"[json]": { | ||
"editor.defaultFormatter": "esbenp.prettier-vscode" | ||
}, | ||
"[plaintext]": { | ||
"editor.defaultFormatter": "esbenp.prettier-vscode" | ||
}, | ||
"[css]": { | ||
"editor.defaultFormatter": "esbenp.prettier-vscode" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
good vibes only |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# [docs.ethfollow.xyz](https://docs.ethfollow.xyz) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
import tailwind from '@astrojs/tailwind' | ||
import starlight from '@astrojs/starlight' | ||
import expressiveCode from 'astro-expressive-code' | ||
import vercelAdapter from '@astrojs/vercel/serverless' | ||
import { defineConfig, passthroughImageService } from 'astro/config' | ||
|
||
// https://astro.build/config | ||
export default defineConfig({ | ||
site: 'https://docs.ethfollow.xyz', | ||
output: 'hybrid', | ||
adapter: vercelAdapter({ webAnalytics: { enabled: true } }), | ||
integrations: [ | ||
expressiveCode({ | ||
theme: 'dracula-soft' | ||
}), | ||
tailwind({ | ||
applyBaseStyles: false, | ||
configFile: './tailwind.config.ts' | ||
}), | ||
starlight({ | ||
title: 'EFP', | ||
description: 'Ethereum Follow Protocol', | ||
favicon: '/favicon.ico', | ||
defaultLocale: 'en', | ||
lastUpdated: true, | ||
logo: { | ||
src: './src/assets/logo.png' | ||
}, | ||
social: { | ||
github: 'https://github.com/ethereumfollowprotocol', | ||
twitter: 'https://twitter.com/ethfollowpr' | ||
}, | ||
sidebar: [ | ||
{ | ||
label: 'Design Specification', | ||
link: '/spec' | ||
} | ||
], | ||
customCss: [ | ||
'./src/styles/custom.css', | ||
'./src/styles/tailwind.css', | ||
'@fontsource/inter/400.css', | ||
'@fontsource/inter/700.css', | ||
'@fontsource/ibm-plex-serif/400.css', | ||
'@fontsource/ibm-plex-serif/600.css', | ||
'@fontsource/ibm-plex-mono/400.css', | ||
'@fontsource/ibm-plex-mono/600.css' | ||
] | ||
}) | ||
], | ||
image: { | ||
service: passthroughImageService() | ||
} | ||
}) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
declare namespace NodeJS { | ||
interface ProcessEnv { | ||
NODE_ENV: 'development' | 'production' | 'test' | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
{ | ||
"name": "docs", | ||
"type": "module", | ||
"version": "0.0.1", | ||
"homepage": "https://docs.ethfollow.xyz", | ||
"scripts": { | ||
"dev": "astro dev --port 4322", | ||
"start": "astro dev", | ||
"build": "astro build", | ||
"preview": "astro preview", | ||
"astro": "astro" | ||
}, | ||
"dependencies": { | ||
"@astrojs/starlight": "^0.10.2", | ||
"@astrojs/vercel": "^5.0.1", | ||
"@expressive-code/plugin-collapsible-sections": "^0.26.1", | ||
"@fontsource/ibm-plex-mono": "^5.0.8", | ||
"@fontsource/ibm-plex-serif": "^5.0.8", | ||
"@fontsource/inter": "^5.0.8", | ||
"@vercel/analytics": "^1.0.2", | ||
"astro": "^3.1.4", | ||
"astro-expressive-code": "^0.26.1", | ||
"expressive-code": "^0.26.1", | ||
"hast-util-to-html": "^9.0.0" | ||
}, | ||
"devDependencies": { | ||
"@astrojs/starlight-tailwind": "^2.0.0", | ||
"@astrojs/tailwind": "^5.0.0", | ||
"@total-typescript/ts-reset": "^0.5.1", | ||
"bun-types": "^1.0.3", | ||
"sharp": "^0.32.6", | ||
"tailwindcss": "^3.3.3" | ||
} | ||
} |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
import "@total-typescript/ts-reset"; |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import { defineCollection } from 'astro:content' | ||
import { docsSchema, i18nSchema } from '@astrojs/starlight/schema' | ||
|
||
export const collections = { | ||
docs: defineCollection({ | ||
// @ts-ignore | ||
schema: docsSchema() | ||
}), | ||
i18n: defineCollection({ type: 'data', schema: i18nSchema() }) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
--- | ||
title: EFP | ||
description: Ethereum Follow Protocol | ||
template: splash | ||
hero: | ||
tagline: Ethereum Follow Protocol | ||
image: | ||
file: ../../assets/logo.png | ||
actions: | ||
- text: Learn more | ||
link: /spec | ||
icon: right-arrow | ||
variant: primary | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
--- | ||
title: Design Specification | ||
--- | ||
|
||
### Ethereum Follow Protocol (EFP) Overview | ||
|
||
|
||
EFP is a native Ethereum protocol for following and tagging Ethereum accounts. | ||
|
||
To begin, users first mint an NFT called the "EFP List NFT". | ||
|
||
### EFP List NFT | ||
|
||
Users mint the EFP List NFT to create an EFP List. | ||
|
||
#### Roles | ||
|
||
Every EFP List NFT has two roles, each of which are held by an Ethereum account, either an EOA or contract address. | ||
|
||
1. **Owner:** | ||
- Is the owner of the EFP List NFT | ||
- Can transfer the Owner role | ||
- Can edit the User role | ||
- Can edit the List Records Storage Location | ||
2. **User:** | ||
- The Ethereum address for whom the list is intended; the Ethereum account that is following the Ethereum accounts in the list. | ||
|
||
Typically, both roles (Owner, User) are the same Ethereum account, but they can be distinct. | ||
|
||
--- | ||
|
||
### Record Storage | ||
|
||
Your EFP NFT specifies a **List Records Storage Location** where the List Records are stored, which can be one of the following: | ||
|
||
- Ethereum L1 smart contract address | ||
- CCIP-read pointers for storage outside Ethereum L1 | ||
|
||
The List Records Storage Location itself (the smart contract or off-chain system) must specify a **Manager** role, typically an Ethereum account that is able to edit the List Records. Typically, the Manager will be the same Ethereum account as the Owner and User roles of the EFP NFT, but they can be distinct. | ||
|
||
--- | ||
|
||
### List Record Types | ||
|
||
- **Entry Record:** | ||
- Contains an Ethereum address, with zero or more tags. | ||
- These records are typically interpreted as a "follow" of the specified Ethereum address, with some exceptions explained in the Followers section below. | ||
- **Transitive Record:** | ||
- Contains an EFP List NFT token ID, with zero or more tags. | ||
- This typically means the user intends to "follow" some or all of the Entry Records in the specified list. | ||
- If no tag is included, it means the user follows every Entry Record on the specified list. If a tag or set of tags is included, it means the user follows only the Entry Records with any one of those tags. | ||
|
||
--- | ||
|
||
### Tags | ||
|
||
Each Entry Record can have zero or more tags. | ||
|
||
#### Standard Tags | ||
|
||
- **no tag** | ||
|
||
- If an Entry Record has no tags, it is interpreted as a simple follow without further categorization. | ||
|
||
- **"block"** | ||
|
||
- This tag means neither the user nor the blocked account should see each other’s activity. | ||
- Entry Records with this tag are not included in Followers count, even if the Entry Record has other tags. | ||
- If both “block” and “mute” tags are present, “block” takes precedence. | ||
|
||
- **"mute"** | ||
- This tag means the user shouldn't see the muted account’s activity, but the muted account might still be able to see the user’s activity. | ||
- Entry Records with this tag are not included in Followers count, even if the Entry Record has other tags. | ||
- If both “block” and “mute” tags are present, “block” takes precedence. | ||
|
||
#### Custom Tags | ||
|
||
Users can use arbitrary custom tags. | ||
|
||
--- | ||
|
||
### Followers | ||
|
||
#### Definition | ||
|
||
- **Followers** is the total number of EFP NFTs that have at least one Entry Record with a specific Ethereum address, plus EFP NFTs that have a Transitive Record that points to an Entry Record with a specific Ethereum address, with the following additional conditions: | ||
|
||
- Exclude records with either the "block" or "mute" tags, even if the records have other tags. | ||
- Multiple EFP NFTs with an identical User are counted as a single follower. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
/// <reference path="../.astro/types.d.ts" /> | ||
/// <reference types="astro/client" /> |
Oops, something went wrong.