21 个版本
0.9.22 | 2022 年 10 月 4 日 |
---|---|
0.9.21 | 2022 年 7 月 31 日 |
0.9.17 | 2022 年 6 月 11 日 |
0.9.7 | 2022 年 5 月 4 日 |
0.9.5 | 2022 年 3 月 12 日 |
#4 in #tulip-protocol
每月 55 次下载
150KB
3K SLoC
tulipv2-sdk
警告
未审计、可能未经测试的 sdk Tulip 协议不对使用此 sdk 导致的任何(财务、物理、情感等)损害承担责任,也不对 sdk 的正确性作出任何保证。使用这些 crates 的用户完全负责由此 sdk 使用导致的所有意外。
所有在 0.9.17 之前的 crate 版本都是损坏的,将无法正常工作
概述
tulipv2-sdk
是一组用于通过 CPI 与 Tulip V2 存储库以及 V1 借款计划交互的 crates,但它也可以与链下 Rust 客户端一起使用。此 crate 的目标是提供一个易于使用的 sdk,用于处理 Tulip 协议,同时充当一种“配置文件”。
以下详细介绍了 4 个主要 crates
Crates
common
common
文件夹包含一个 crate tulipv2-sdk-common
,它将所有其他 crate 中使用的公共功能捆绑在一起,同时包含一个名为 config
的模块,该模块提供配置变量以实现易于配置管理。配置子模块可以通过功能标志启用/禁用,这样您可以只导入所需的依赖项。
common/config/deposit_tracking
提供配置变量、特性和指令,用于存款跟踪账户管理
common/config/levfarm
此模块包含 ray_X.rs
格式的文件,用于 Raydium 杠杆收益农场,以及 orca_X.rs
格式的文件,用于 Orca 杠杆收益农场。此外,子模块 common/config/levfarm/reserves
为所有借款储备提供配置变量。
common/config/strategy
此模块包含 V2 策略存储库的配置信息
farms
farms
文件夹包含一个 crate tulipv2-sdk-farms
,它提供一个名为 Farm
的枚举,用于描述不同平台(例如 Raydium)及其平台内的农场(例如 RAY-USDC)。此外,农场密钥本身用于启用对自我描述的存储库地址的确定性推导。
农场类型/农场键的线表示是一个u64的2元素切片,其中第一个元素(农场标识符)是协议,第二个元素是该协议的特定保险库。
贷款
lending
文件夹包含一个crate tulipv2-sdk-lending
,它提供了创建指令和向Tulip V1贷款程序发出CPI调用的基本支持。它允许通过Obligation
账户出借资产,同时允许调用者刷新义务和刷新储备。
杠杆
leveraged
文件夹包含一个crate tulipv2-sdk-leveraged
,它提供了与Tulip杠杆收益农场交互的账户、指令和各种辅助函数。
保险库
vaults
文件夹包含一个crate tulipv2-sdk-vaults
,它提供了所有v2保险库账户类型以及相关的辅助函数等。
示例
examples
文件夹包含一个anchor程序,该程序提供了所有crate的用法示例,包括贷款、杠杆农场、v1/v2保险库等。此外,还提供了anchor单元测试,展示了如何调用示例程序指令。
示例程序使用主网账户克隆来模拟实际使用,但由于主网克隆账户和本地网的一些特殊之处,某些测试将失败,特别是
- raydium保险库存款/取款
- v2策略保险库取款
因此,anchor单元测试将捕获这些错误,将其屏蔽以防止混淆。所有此类实例都在anchor单元测试注释中进行了记录
依赖关系
~26–40MB
~644K SLoC