Olamidepy/Continuum
GitHub: Olamidepy/Continuum
Continuum 是一个基于 Stacks 和 Celo 的非托管去中心化定期储蓄协议,通过智能合约金库和 O(1) 奖励重分配机制激励用户长期锁仓持币。
Stars: 0 | Forks: 0
# Continuum:比特币原生及多链去中心化储蓄协议
Continuum 是一个生产级的、非托管的定期锁仓储蓄协议,构建于 Stacks 区块链之上,并针对 Celo/MiniPay 移动端稳定币集成进行了优化。该协议旨在鼓励长期财富积累,允许用户将 Stacks (STX) / Super Bitcoin (sBTC) 或 Celo (CELO) / Celo Dollars (cUSD) 安全地锁仓在由智能合约管理的金库中。其激励机制通过将提前提取的罚金透明地重新分配给剩余的活跃池参与者来实现。
此代码库包含 Clarity 智能合约、React 连接器,以及一个完全兼容桌面端钱包扩展(Leather、Xverse)和移动端稳定币钱包(Opera MiniPay)的 Next.js 客户端界面。
## 核心协议机制
### 非托管定期锁仓
存款直接锁定在智能合约中。代码中不包含任何管理员覆盖后门,确保用户资产只能由锁仓所有者提取。
### 多链扩展 (Celo & MiniPay)
除了 Stacks 网络外,Continuum 还包含专为 Opera 的 **MiniPay** 移动优先浏览器环境定制的 Celo 原生稳定币储蓄选项。
- **自动连接**:在页面加载时自动检测注入的 `window.ethereum` EIP-1193 MiniPay provider,无需手动点击即可即时为用户登录。
- **微小 Gas 费用**:针对新兴市场中低于 1 美分(sub-cent)的交易成本进行了优化。
- **cUSD 锚定储蓄**:支持锁仓 Celo Dollars (cUSD) 以获取以稳定资产计价的收益。
### O(1) 可扩展奖励重新分配
典型的流动性池收益系统会遍历活跃余额来分配奖励,其时间复杂度为 O(N),并且存在超出区块交易限制的风险。Continuum 通过可扩展的 O(1) 每份额奖励算法解决了这个问题:
- 份额计算方式为锁仓金额乘以持续时间乘数。
- 当发生提前退出的情况时,将扣除 10% 的罚金。
- 80% 的罚金保留在合约中,全局累计的每份额奖励变量随之增加。
- 20% 的罚金将转入国库地址,以保障储备池的稳定性。
- 储蓄金库会在用户交互(申领、追加、延长锁仓或标准提取)期间以惰性方式计算并申领应计奖励。
### 锁仓持续时间乘数等级
承诺的持续时间决定份额权重分配,锁仓时间越长,获得的罚金分配比例就越大:
- 30 天:1.0x 份额权重乘数
- 90 天:1.2x 份额权重乘数
- 180 天:1.5x 份额权重乘数
- 365 天:2.0x 份额权重乘数
## 目录结构
```
continuum/
├── app/
│ ├── layout.tsx # HTML shell with Google Poppins fonts and global configuration
│ ├── page.tsx # Premium landing page detailing protocol specifications & MiniPay auto-connect
│ └── dashboard/
│ └── page.tsx # Interactive savings client with Recharts analytics and forms
├── components/
│ ├── MockupPhone.tsx # Responsive vector mockup of the dashboard layout
│ ├── VaultCard.tsx # Active vault item representing lock counters and action forms
│ └── WalletModal.tsx # Wallet overlay targeting Leather, Xverse, Celo (MiniPay), Asigna, etc.
├── contracts/
│ ├── Clarinet.toml # Clarinet configuration manifest
│ ├── continuum-vaults.clar # Primary Stacks Clarity 2 vaults contract
│ ├── sbtc-token-mock.clar # Mock sBTC implementation for localized compiler checks
│ └── sip-010-trait-mock.clar # SIP-010 token trait specification
├── hooks/
│ ├── useStacks.ts # React hook for Stacks browser extension calls and blockchain queries
│ └── useCelo.ts # React hook for Celo/MiniPay EIP-1193 calls and Forno RPC balance fetching
├── lib/
│ └── store.ts # Client store tracking wallets and mirror contract calculations
├── styles/
│ └── globals.css # Tailwind CSS v4 variables, blurs, and float animations
├── types/
│ └── index.ts # Domain models for vaults, transactions, and user stats
├── utils/
│ └── format.ts # Conversion helpers for STX, sBTC, and blocks
├── package.json # Project manifest and package configurations
└── tsconfig.json # TypeScript compiler configurations
```
## 技术栈
### 前端客户端
- 框架:Next.js 15 (App Router, React 19)
- 样式:Tailwind CSS v4 和原生 CSS 背景滤镜
- 状态管理:Zustand(持久化的本地存储状态)
- 可视化:Recharts
- 动画:Framer Motion
### 区块链接口
- **Stacks 网络**:Clarity 2 智能合约,Stacks.js Connect(网络、交易)
- **Celo 网络 (MiniPay)**:注入的 EIP-1193 provider,Celo 主网 Forno RPC 集成(余额查询,cUSD 稳定币 ERC20 转账)
## 快速开始
### 前置条件
- Node.js(版本 18.0.0 或更高)
- npm 或 pnpm 包管理器
### 安装
安装所有客户端依赖项:
```
npm install
```
### 环境变量
通过复制示例清单来配置您的环境变量:
```
cp .env.example .env.local
```
设置您的 WalletConnect Project ID:
```
NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=your_reown_project_id_here
```
### 运行本地开发服务器
执行 Next.js 开发服务器:
```
npm run dev
```
打开 `http://localhost:3000` 以与应用程序进行交互。
### 在 MiniPay (Opera Mini) 上测试
要在移动设备上测试 MiniPay 稳定币储蓄流程:
1. 使用 [ngrok](https://ngrok.com/) 等隧道服务暴露您的本地环境:
ngrok http 3000
2. 在您的 Android 或 iOS 设备上打开 Opera Mini 浏览器(需已激活 MiniPay)。
3. 在 MiniPay 设置中开启 **开发者模式 (Developer Mode)**。
4. 将您的 ngrok 隧道 URL 输入到开发者设置中,以便在 MiniPay 中加载 Continuum。
5. 应用程序将自动检测钱包并立即连接!
### 构建和编译检查
编译并验证用于生产部署的 TypeScript 构建输出:
```
npm run build
```
## 许可证
本项目基于 MIT 许可证授权。详情请参阅 LICENSE 文件。
标签:Clarity, DeFi, Web3应用, 区块链, 智能合约, 比特币, 自动化攻击