Skip to content

BurnPoolV2 燃烧池

BurnPoolV2 是 Chaos Protocol 的核心收益分配合约,实现了基于 FIFO(先进先出)队列的"燃烧即投资"回报系统。

基本信息

属性
合约类型UUPS 可升级合约
最低参与额100 USDT
回报倍数2x
推荐奖励
支持 Permit2

核心机制

1. 燃烧流程

用户通过 BurnPoolV2 参与"燃烧",实际上是一个投资行为:

有推荐人:

用户投入 100 USDT

┌───────────────────────────────────┐
│  40 USDT → 添加LP (全部给用户)    │
│  20 USDT → 推荐奖励               │
│           ├─ 10 USDT → 金库LP     │
│           └─ 10 USDT → 代币       │
│  35 USDT → 买币参与税收分红        │
│   5 USDT → 买币销毁 (黑洞)        │
└───────────────────────────────────┘

LP 存入 VaultV5 → 进入 FIFO 分红队列

无推荐人:

用户投入 100 USDT

┌───────────────────────────────────┐
│  40 USDT → 添加LP (全部给用户)    │
│  55 USDT → 买币参与税收分红        │
│   5 USDT → 买币销毁 (黑洞)        │
└───────────────────────────────────┘

LP 存入 VaultV5 → 进入 FIFO 分红队列

分配说明:

  • LP 部分:40 USDT + 等值代币添加流动性,全部给用户
  • 推荐奖励:10 USDT 等值金库 LP + 10 USDT 等值代币给推荐人(无推荐人时追加到税收分红)
  • 参与税收:购买代币,交易产生 3% 税费进入分红池
  • 销毁机制:5 USDT 购买代币发送到黑洞地址,减少流通供应

2. FIFO 分红队列

BurnPoolV2 使用先进先出队列管理用户分红:

solidity
struct UserInfo {
    uint256 totalInvested;    // 总投入USDT
    uint256 totalWithdrawn;   // 已提取USDT
    uint256 queueIndex;       // 队列位置
    bool isInQueue;           // 是否在队列中
}

分红流程:

  1. 用户投入USDT后进入队列
  2. TaxToken交易税产生的USDT进入BurnPoolV2
  3. USDT按照 accPerShare 累计分配给所有活跃用户
  4. 当用户累计收益达到目标(投入×2)时自动出队

3. 收益计算

solidity
uint256 public constant MULTIPLE = 2; // 2倍回报

// 用户目标收益
uint256 targetReturn = user.totalInvested * MULTIPLE;

// 当前可提取收益
uint256 pending = user.totalInvested * accPerShare - user.totalWithdrawn;

4. 推荐人系统

用户首次燃烧时可以绑定推荐人:

绑定条件:

  • 推荐人必须已经进行过燃烧
  • 一经绑定,不可更改

推荐人奖励(100 USDT 燃烧示例):

  • 10 USDT 等值金库 LP
  • 10 USDT 等值代币

无推荐人时:

  • 40 USDT LP 全部给用户
  • 推荐奖励部分归入销毁

5. Boost 加速机制

BurnPoolV2 实现了推荐人加速机制:

solidity
uint256 public constant BOOST_WINDOW = 8 hours;

触发条件:

  • 推荐人的被推荐人在8小时内完成燃烧
  • 推荐人可以从奖金池获得额外奖励

奖金池来源:

  • TaxToken交易税的20%通过 notifyPrizeReceived 进入

用户操作

参与燃烧

solidity
// 基本燃烧
function burn(uint256 usdtAmount) external;

// 带推荐人的燃烧
function burnWithReferrer(
    uint256 usdtAmount,
    address referrer
) external;

// Permit2 签名燃烧(无gas)
function burnWithPermit(
    uint256 usdtAmount,
    address referrer,
    Permit2Data calldata permit2Data
) external;

查询收益

solidity
// 查询待领取USDT
function getPendingUsdt(address user) external view returns (uint256);

// 查询用户信息
function getUserInfo(address user) external view returns (UserInfo memory);

// 查询队列信息
function getQueueInfo() external view returns (
    uint256 totalQueued,
    uint256 nextIndex,
    uint256 totalPending
);

领取分红

solidity
function claimUsdt() external;

收入来源

BurnPoolV2 的收入来源:

来源比例说明
TaxToken交易税80%每笔Chaos交易的3%税费中的80%
用户燃烧投入100%用户投入的USDT用于购买代币

安全特性

  1. UUPS 可升级: 支持合约升级而不改变地址
  2. Permit2 支持: 无gas签名操作
  3. FIFO队列: 确保公平的收益分配
  4. 最低参与额: 100 USDT防止粉尘攻击

数据结构

UserInfo

solidity
struct UserInfo {
    uint256 totalInvested;      // 总投入USDT
    uint256 totalWithdrawn;     // 已提取USDT
    uint256 queueIndex;         // 队列中的位置
    bool isInQueue;             // 是否在队列中
    address referrer;           // 推荐人地址
    uint256 referrerReward;     // 推荐人已获得的奖励
    uint256 lastBurnTimestamp;  // 最后燃烧时间
}

事件

solidity
event Burn(address indexed user, uint256 usdtAmount, uint256 lpAmount);
event Claim(address indexed user, uint256 usdtAmount);
event ReferrerBound(address indexed user, address indexed referrer);
event BoostTriggered(address indexed referrer, uint256 bonusAmount);

相关链接

Chaos Protocol Documentation