4 个版本 (1 个稳定版)
1.0.0 | 2024年4月2日 |
---|---|
0.2.0 | 2023年12月5日 |
0.1.1 | 2023年10月23日 |
0.1.0 | 2023年10月19日 |
#38 在 #soroban
每月 188 次下载
8KB
SEP-0040 Oracle
暴露了 SEP-0040 价格提供者 Oracle 接口以及一个测试价格 Oracle 合约。
SEP-0040 定义:https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0040.md
安全性
这是一个 实验性软件,以“现状”和“可用性”为基础提供。
我们不提供任何 保证,并且不会对任何通过使用此代码库而造成的损失负责。
入门指南
将包添加到您的 Cargo.toml
[dependencies]
sep-40-oracle = "<desired version>"
您可以选择在 dev-dependencies
中包含 testutils
功能,以部署 sep-40-oracle
的模拟版本进行测试
[dev_dependencies]
sep-40-oracle = { version = "<desired version>", features = ["testutils"] }
客户端和特性
此包公开了一个用于与 SEP-0040 Oracles 交互的客户端以及一个用于希望实现 SEP-0040 Oracles 的合约的特性。
客户端使用
use sep_40_oracle::PriceFeedClient;
let address = // address of the oracle
let price_feed_client = PriceFeedClient::new(&env, &address);
特性使用
use sep_40_oracle::PriceFeedTrait;
use soroban_sdk::{contract, contractimpl};
#[contract]
pub struct MyPriceFeed;
#[contractimpl]
impl PriceFeedTrait for MyPriceFeed {
// impl the trait functions
}
模拟价格提供者 Oracle
此包公开了一个示例 Soroban 价格提供者 Oracle 实现。这对于测试依赖于 sep-0040
价格提供者 Oracle 的协议非常有用,包括在测试期间操纵价格提供者的能力。
可以将合约的 WASM 版本部署如下
use sep_40_oracle::testutils::{MockPriceOracleClient, MockPriceOracleWASM};
use soroban_sdk::{testutils::Address as _, Address, Env, symbol_short, vec};
let env = Env::default();
let admin = Address::generate(&env);
let xlm = Address::generate(&env);
let oracle_id = env.register_contract_wasm(None, MockTokenWASM);
let oracle_client = MockPriceOracleClient::new(&env, &oracle_id);
oracle_client.set_data(
&admin,
&Asset::Other(symbol_short!("TEAPOT")),
&vec![&env, Asset::Stellar(xlm)],
&7,
&(5 * 60 * 60)
);
依赖关系
~11–15MB
~311K SLoC