#anchor #solana #tulip-protocol

tulipv2-sdk-vaults

存储账户类型,以及 v2 sdk 使用的存储指令

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

Download history 7/week @ 2024-03-27 48/week @ 2024-04-03 5/week @ 2024-04-10 1/week @ 2024-04-17

每月 55 次下载

MIT/Apache

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