#soroban #wasm #no-std #wasm-client

no-std blend-contract-sdk

用于Soroban合约开发的Blend协议的特质、客户端、类型和WASM

2个版本 (1个稳定版)

1.0.0 2024年5月1日
0.1.0 2024年4月9日

#21 in #wasm-client

Download history 127/week @ 2024-04-28 5/week @ 2024-05-05 7/week @ 2024-05-19

每月下载量 75

MIT 许可证

55KB
149

Blend 合约 SDK

此仓库包含Blend协议的接口、客户端和WASM blob,这些协议在Blend 合约仓库中实现。

文档

要了解更多关于Blend协议的信息,请访问文档

模块

Blend 合约 SDK从Soroban SDK宏的contractimport生成模块。每个模块都公开一个客户端、WASM以及与Blend协议交互所需的相应类型。以下Blend合约作为模块公开:

  • backstop - 后备合约的合约导入
  • emitter - 发射合约的合约导入
  • pool - 池合约的合约导入
  • pool_factory - 池工厂合约的合约导入

测试(testutils)

外部依赖

当通过testutils功能编译用于测试目的时,Blend 合约 SDK包括Comet 合约contractimport。这包括:

这包括

  • comet - comet 池合约的合约导入
  • comet_factory - comet 池工厂合约的合约导入

注意:这些合约用于测试Blend协议,不应被视为Comet协议的最新版本。请核实Comet合约的非测试使用情况与Comet GitHub

设置

testutils模块允许轻松部署Blend合约以用于单元测试。以下示例显示了如何使用testutils部署一组Blend合约并设置一个池。

如果您需要使用池,请查看以下sep-41-oracle存储库以部署模拟预言机合约

use soroban_sdk::{symbol_short, testutils::{Address as _, BytesN as _}, Address, BytesN, Env};

use blend_contract_sdk::{pool, testutils::{default_reserve_config, BlendFixture}};

let env = Env::default();
let deployer = Address::generate(&env);
let blnd = env.register_stellar_asset_contract(deployer.clone());
let usdc = env.register_stellar_asset_contract(deployer.clone());
let blend = BlendFixture::deploy(&env, &deployer, &blnd, &usdc);

let token = env.register_stellar_asset_contract(deployer.clone());
let pool = blend.pool_factory.mock_all_auths().deploy(
    &deployer,
    &symbol_short!("test"),
    &BytesN::<32>::random(&env),
    &Address::generate(&env),
    &0_1000000, // 10%
    &4, // 4 max positions
);
let pool_client = pool::Client::new(&env, &pool);
let reserve_config = default_reserve_config();
pool_client.mock_all_auths().queue_set_reserve(&token, &reserve_config);
pool_client.mock_all_auths().set_reserve(&token);

blend.backstop.mock_all_auths().deposit(&deployer, &pool, &50_000_0000000);
pool_client.mock_all_auths().set_status(&3); // remove pool from setup status
pool_client.mock_all_auths().update_status(); // update status based on backstop

WASM 验证

包含的 WASM 文件将与 SDK 发布时使用的 GitHub 发布版对应(版本号将匹配)。

WASM 是使用Stellar Expert WASM 发布操作生成的

SHA256 校验和

  • backstop - 62f61b32fff99f7eec052a8e573c367759f161c481a5caf0e76a10ae4617c3b4
  • emitter - 438a5528cff17ede6fe515f095c43c5f15727af17d006971485e52462e7e7b89
  • pool_factory - 0287f4ad7350935b83d94e046c0bcabc960b233dbce1531008c021b71d406a1d
  • pool - baf978f10efdbcd85747868bef8832845ea6809f7643b67a4ac0cd669327fc2c

依赖项

~11-15MB
~312K SLoC