From f4aada2e3d7ffa6e228ba8606f1582b6195626c5 Mon Sep 17 00:00:00 2001 From: Gaubee Date: Sat, 27 Dec 2025 22:33:19 +0800 Subject: [PATCH 01/21] feat(ecosystem): scaffold Bio miniapp ecosystem MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add pnpm-workspace.yaml for monorepo structure - Create @aspect-aspect/bio-sdk package with EIP-1193 style API - Create miniapps/teleport (一键传送) demo app - Create miniapps/forge (锻造) demo app - Add ecosystem.json subscription manifest - Add whitebook documentation (10-生态篇) - Configure build scripts for SDK and miniapps --- ...66\346\236\204\350\256\276\350\256\241.md" | 111 ++++ ...00\345\217\221\346\214\207\345\215\227.md" | 192 +++++++ ...13\345\272\217\345\274\200\345\217\221.md" | 164 ++++++ ...42\351\230\205\347\263\273\347\273\237.md" | 106 ++++ .../index.md" | 23 + miniapps/forge/index.html | 24 + miniapps/forge/package.json | 25 + miniapps/forge/src/App.tsx | 361 +++++++++++++ miniapps/forge/src/main.tsx | 10 + miniapps/forge/tsconfig.json | 17 + miniapps/forge/vite.config.ts | 15 + miniapps/teleport/index.html | 24 + miniapps/teleport/package.json | 25 + miniapps/teleport/src/App.tsx | 271 ++++++++++ miniapps/teleport/src/main.tsx | 10 + miniapps/teleport/tsconfig.json | 17 + miniapps/teleport/vite.config.ts | 15 + package.json | 7 +- packages/bio-sdk/dist/index.cjs | 174 +++++++ packages/bio-sdk/dist/index.cjs.map | 1 + packages/bio-sdk/dist/index.d.ts | 163 ++++++ packages/bio-sdk/dist/index.js | 174 +++++++ packages/bio-sdk/dist/index.js.map | 1 + packages/bio-sdk/dist/index.umd.js | 178 +++++++ packages/bio-sdk/dist/index.umd.js.map | 1 + packages/bio-sdk/package.json | 37 ++ packages/bio-sdk/src/events.ts | 49 ++ packages/bio-sdk/src/index.ts | 58 +++ packages/bio-sdk/src/provider.ts | 151 ++++++ packages/bio-sdk/src/types.ts | 127 +++++ packages/bio-sdk/tsconfig.json | 18 + packages/bio-sdk/vite.config.ts | 31 ++ pnpm-lock.yaml | 479 ++++++++++++++++++ pnpm-workspace.yaml | 3 + public/ecosystem.json | 29 ++ .../miniapps/forge/assets/index-CxIKWpQO.js | 9 + public/miniapps/forge/icon.svg | 10 + public/miniapps/forge/index.html | 24 + .../teleport/assets/index-CHDuyGaH.js | 9 + public/miniapps/teleport/icon.svg | 10 + public/miniapps/teleport/index.html | 24 + 41 files changed, 3176 insertions(+), 1 deletion(-) create mode 100644 "docs/white-book/10-\347\224\237\346\200\201\347\257\207/01-\346\236\266\346\236\204\350\256\276\350\256\241.md" create mode 100644 "docs/white-book/10-\347\224\237\346\200\201\347\257\207/02-BioSDK\345\274\200\345\217\221\346\214\207\345\215\227.md" create mode 100644 "docs/white-book/10-\347\224\237\346\200\201\347\257\207/03-\345\260\217\347\250\213\345\272\217\345\274\200\345\217\221.md" create mode 100644 "docs/white-book/10-\347\224\237\346\200\201\347\257\207/04-\350\256\242\351\230\205\347\263\273\347\273\237.md" create mode 100644 "docs/white-book/10-\347\224\237\346\200\201\347\257\207/index.md" create mode 100644 miniapps/forge/index.html create mode 100644 miniapps/forge/package.json create mode 100644 miniapps/forge/src/App.tsx create mode 100644 miniapps/forge/src/main.tsx create mode 100644 miniapps/forge/tsconfig.json create mode 100644 miniapps/forge/vite.config.ts create mode 100644 miniapps/teleport/index.html create mode 100644 miniapps/teleport/package.json create mode 100644 miniapps/teleport/src/App.tsx create mode 100644 miniapps/teleport/src/main.tsx create mode 100644 miniapps/teleport/tsconfig.json create mode 100644 miniapps/teleport/vite.config.ts create mode 100644 packages/bio-sdk/dist/index.cjs create mode 100644 packages/bio-sdk/dist/index.cjs.map create mode 100644 packages/bio-sdk/dist/index.d.ts create mode 100644 packages/bio-sdk/dist/index.js create mode 100644 packages/bio-sdk/dist/index.js.map create mode 100644 packages/bio-sdk/dist/index.umd.js create mode 100644 packages/bio-sdk/dist/index.umd.js.map create mode 100644 packages/bio-sdk/package.json create mode 100644 packages/bio-sdk/src/events.ts create mode 100644 packages/bio-sdk/src/index.ts create mode 100644 packages/bio-sdk/src/provider.ts create mode 100644 packages/bio-sdk/src/types.ts create mode 100644 packages/bio-sdk/tsconfig.json create mode 100644 packages/bio-sdk/vite.config.ts create mode 100644 pnpm-workspace.yaml create mode 100644 public/ecosystem.json create mode 100644 public/miniapps/forge/assets/index-CxIKWpQO.js create mode 100644 public/miniapps/forge/icon.svg create mode 100644 public/miniapps/forge/index.html create mode 100644 public/miniapps/teleport/assets/index-CHDuyGaH.js create mode 100644 public/miniapps/teleport/icon.svg create mode 100644 public/miniapps/teleport/index.html diff --git "a/docs/white-book/10-\347\224\237\346\200\201\347\257\207/01-\346\236\266\346\236\204\350\256\276\350\256\241.md" "b/docs/white-book/10-\347\224\237\346\200\201\347\257\207/01-\346\236\266\346\236\204\350\256\276\350\256\241.md" new file mode 100644 index 0000000..55af882 --- /dev/null +++ "b/docs/white-book/10-\347\224\237\346\200\201\347\257\207/01-\346\236\266\346\236\204\350\256\276\350\256\241.md" @@ -0,0 +1,111 @@ +# 架构设计 + +## 系统架构 + +``` +┌─────────────────────────────────────────────────────────────┐ +│ KeyApp (Host) │ +│ ┌─────────────┐ ┌──────────────┐ ┌───────────────────┐ │ +│ │ EcosystemTab│ │ BioProvider │ │ MiniappRegistry │ │ +│ │ (生态 Tab) │ │ (Server SDK) │ │ (订阅管理) │ │ +│ └──────┬──────┘ └──────┬───────┘ └─────────┬─────────┘ │ +│ │ │ │ │ +│ ▼ ▼ ▼ │ +│ ┌─────────────────────────────────────────────────────────┐│ +│ │ PostMessage Bridge ││ +│ │ (双向通信: request/response + events) ││ +│ └─────────────────────────────────────────────────────────┘│ +└────────────────────────────────────────────────────────────┘ + │ iframe sandbox +┌────────────────────────────┼────────────────────────────────┐ +│ MiniApp (Client) │ +│ ┌─────────────────────────┴───────────────────────────────┐│ +│ │ @aspect-aspect/bio-sdk ││ +│ │ window.bio = { request, on, off, ... } ││ +│ └─────────────────────────────────────────────────────────┘│ +└─────────────────────────────────────────────────────────────┘ +``` + +## 通信协议 + +### 请求消息 + +```typescript +interface RequestMessage { + type: 'bio_request' + id: string // 唯一请求 ID + method: string // 方法名 (bio_requestAccounts, bio_signMessage, ...) + params?: unknown[] // 参数 +} +``` + +### 响应消息 + +```typescript +interface ResponseMessage { + type: 'bio_response' + id: string // 对应请求 ID + success: boolean // 是否成功 + result?: unknown // 成功时的结果 + error?: { // 失败时的错误 + code: number + message: string + data?: unknown + } +} +``` + +### 事件消息 + +```typescript +interface EventMessage { + type: 'bio_event' + event: string // 事件名 + args: unknown[] // 事件参数 +} +``` + +## 安全模型 + +### iframe 沙箱 + +```html +