本项目基于 Anchor 框架 开发了一个 去中心化借贷协议,用户可以通过存入资产赚取利息,或者抵押资产借款。整个系统采用 Solana 生态的 Pyth 预言机 获取实时资产价格,以确保借贷计算的准确性。
-
初始化银行 (Bank)
- 允许创建新的银行(借贷市场),设置清算阈值、最大贷款价值比(LTV)等参数。
- 创建一个 银行代币账户 (Treasury Account),用于存放存款人的资产。
-
用户初始化 (User Account Initialization)
- 允许用户注册账户,存储用户的借贷状态。
- 用户存款的 USDC 地址也会在账户初始化时指定。
-
存款 (Deposit)
- 用户可以将 SOL 或 USDC 存入银行,并获得 存款份额 (Deposit Shares)。
- 存款会计入 总存款 (Total Deposits),银行根据存款计算利息。
-
借款 (Borrow)
- 用户可以抵押 SOL 或 USDC 并借出相应的资产,借款金额受 LTV 限制。
- 通过 Pyth 预言机 计算用户的总抵押价值,决定用户的最大可借款额度。
- 借款人需要支付利息,利息采用 连续复利计算。
-
还款 (Repay)
- 用户可以偿还部分或全部借款,减少债务负担。
- 计算用户的 借款份额 (Borrow Shares),按比例减少总借款。
-
提现 (Withdraw)
- 存款人可以按 存款份额 (Deposit Shares) 兑换相应的资产。
- 计算累计利息后,确定用户可提取的金额。
-
清算 (Liquidation)
- 如果用户健康因子(Health Factor)低于 1.0,表明其抵押品不足以覆盖借款,将触发 清算。
- 清算人可以 偿还部分用户债务,并获得 清算奖励(额外的抵押品)。
- 清算计算基于 Pyth 预言机提供的资产价格。