#anchor #solana #tulip-protocol

tulipv2-sdk-lending

v1 借款指南

9 个版本

0.9.21 2022 年 7 月 31 日
0.9.19 2022 年 7 月 20 日
0.9.17 2022 年 6 月 11 日
0.1.1 2022 年 6 月 1 日

#7 in #tulip-protocol

每月 27 次下载

MIT/Apache

15KB
275

tulipv2-sdk

警告

未经审计,可能未经测试的 sdk Tulip Protocol 对使用此 sdk 导致的任何(财务、物理、情感等)损害不承担任何责任,也不对 sdk 的正确性做出任何保证。使用这些包的用户应对使用此 sdk 导致的任何意外承担全部责任。

所有版本在 0.9.17 之前的包都有问题,将无法正常工作

概述

tulipv2-sdk 是一组用于通过 CPI 与 Tulip V2 保险库和 V1 借款程序交互的包,但它也可以与链下 Rust 客户端一起使用。此包的目标是提供一个易于使用的 sdk,用于与 Tulip Protocol 交互,同时作为某种“配置文件”。

以下详细介绍了 4 个主要包

common

common 文件夹包含一个包 tulipv2-sdk-common,它将所有其他包中使用的公共功能捆绑在一起,同时包含一个名为 config 的模块,其中包含许多子模块,每个子模块都包含与特定保险库交互所需的所有配置信息。例如,common/config/lending/usdc.rs 包含了用于与 Tulip V2 USDC 借款优化器保险库交互所需的所有账户。

deposit_tracking 模块

“存款跟踪”账户是一个用户拥有的账户,它有两个主要用途:首先,在用户存款时充当“锁定”账户,锁定提款 10 分钟,允许在用户提款之前进行一个或多个复利周期,以确保通过快速存款和退出保险库无法通过游戏化手段获得复利奖励。其次,它为用户提供跟踪其奖励随时间推移的能力。

农场

farms 文件夹包含一个包 tulipv2-sdk-farms,它提供了一个名为 Farm 的枚举,用于描述不同的平台(例如 Raydium)以及这些平台内的农场(例如 RAY-USDC)。除了这一点之外,农场密钥本身还用于启用对自我描述的保险库地址的确定性推导。

农场类型/农场密钥的线表示是一个 u64 的 2 元素切片,其中第一个元素(农场标识符)是协议,第二个元素是该协议的特定保险库。

lending / v1 支持

lending”文件夹包含一个名为“tulipv2-sdk-lending”的crate,该crate提供了创建指令和对Tulip V1借贷程序发出CPI调用的基本支持。它允许通过“Obligation”账户进行资产借贷,同时允许调用者刷新义务和刷新储备。

保险库

vaults”文件夹包含一个名为“tulipv2-sdk-vaults”的crate,该crate提供了所有v2保险库账户类型和相关辅助函数等。

示例

目前唯一的用法示例位于“examples”文件夹中,其中包含一个基本程序,用于为USDC借贷优化器注册存款跟踪账户,并将存款存入USDC借贷优化器,以及从借贷优化器中提取。

由于Tulip V2保险库程序的架构,存款指令在本地网络上将失败,因为存在一些清除机制,用于在单个优化器保险库支持的各个协议之间内部转移资金。

此外,本地网络设置克隆主网络状态,以提供用于测试的稳定账户集等。例如,在快照生成时,USDC借贷优化器仅存入Solend。因此,tulip/mango存款指令无法正确执行。

已经捕获了这些错误,以确保在运行“anchor test”时,所有测试都通过。

依赖项

~26–39MB
~642K SLoC