1个不稳定版本
0.1.0 | 2022年2月17日 |
---|
#29 in #defi
用于 port-sundial
11KB
264 行
⏰ 时计
时计使Solana上的固定利率借贷成为可能。
它将用户在Port上的头寸分为两部分
- 本金代币(与底层代币一一对应)
- 收益代币(可变部分,取决于底层协议的收益)
到期时,1个本金代币允许用户以1:1的比例兑换1个底层代币。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代币作为抵押品存入,并直接从时计中铸造本金代币(ppToken),然后在市场上将其出售以获得底层代币,这相当于以固定利率借款。
用户必须在ppToken到期前偿还其发行的流动性,即日晷池结束后。否则,用户将面临被清算的风险。
存款和偿还无需提前刷新任何内容,但若要提取抵押品或借款(发行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
依赖关系
~1.5MB
~36K SLoC