2个版本 (1个稳定版)
1.0.0 | 2024年5月1日 |
---|---|
0.1.0 | 2024年4月9日 |
#21 in #wasm-client
每月下载量 75
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