1个不稳定版本
0.1.0 | 2022年2月17日 |
---|
#20 在 #defi
125KB
3.5K SLoC
⏰ Sundial
Sundial允许在Solana上实现固定利率的借入和借出。
它将用户在Port上的位置分为两部分
- 本金代币(与基础代币一一对应)
- 收益代币(可变部分,取决于基础协议的收益)
到期时,1本金代币允许用户兑换1基础代币。1收益代币允许用户兑换借入期间赚取的利息。
用法
固定利率借入和借出
本金代币可以用来通过零息债券模型实现固定利率借出,因为本金代币总是可以按一对一兑换基础代币。
用户可以在各种DEX上交易本金代币。本金代币的卖方可以被视为借款人,而买方可以被视为贷款人。
由于货币的时间价值,1本金代币的交易价格应该始终低于1基础代币。具体来说,1本金USDC的交易价格应低于1 USDC。
借入和借出的利率可以计算为
支付利息 = 本金USDC价格与1之间的差值
假设1本金USDC (ppUSDC) 的交易价格为0.95 USDC。那么贷款人将获得的或借款人将支付的利息为(1 - 0.95) = 0.05 USDC。然后用户可以将它年化以计算APY。
利率互换
由于收益代币始终映射到一定期限内的贷款利率。收益代币的买方可以被视为放弃固定利率以换取浮动利率。收益代币的卖方可以被视为放弃浮动利率以换取固定利率。
用户交互
用户可以创建[个人资料]以作为抵押品存入Port LP代币,并直接从Sundial铸造本金代币(ppToken),然后在市场上出售以换取基础代币,这相当于以固定利率借入。
用户必须在ppToken到期前偿还与其铸造的ppToken相对应的流动性,即sundial池结束。否则,用户将被其他人清算。
对于存款和还款,无需提前刷新任何内容,但如果您想提取抵押品或借入(铸造)ppToken,请确保您想提取的日晷抵押品和您的日晷资料已刷新。
要刷新日晷抵押品,您需要先刷新相应的储备。要刷新日晷资料,您需要先刷新资料中所有存入的日晷抵押品。它们在10个槽位后将会过时。
清算
对于清算,您需要选择一个想要清算的特定日晷资料,以及您想要偿还的贷款和想要提取的抵押品,然后刷新该资料中的所有日晷抵押品,然后发送清算交易。
链上程序检查清算是否可以执行。如果可以,用户将偿还贷款并获得提取抵押品的奖金。
您获得的抵押品价值将是 您偿还的贷款价值
* (100 + 该抵押品的清算罚金
)。
开发
版本要求
- Nodejs >
v15.0
- Anchor
v0.18.0
- Solana
v1.7.8
启动前端测试环境
npm install -g ts-node
anchor localnet
在单独的终端运行以下命令以设置所有链上程序
anchor migrate
本地运行测试
yarn idl:generate
yarn test:e2e
Mac用户需要安装GNU Sed以使 yarn idl:generate
正确工作。
brew install gnu-sed
依赖项
~25–33MB
~560K SLoC