#port #anchor #solana #defi

port-sundial

Sundial帮助将固定利率的借入和借出带到Solana

1个不稳定版本

0.1.0 2022年2月17日

#20#defi

AGPL-3.0

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