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