16次发布
0.1.16-alpha | 2022年6月16日 |
---|---|
0.1.14-alpha | 2022年6月16日 |
6 在 #balancer
42 每月下载
700KB
530 行
Balancer Rust SDK
警告:此crate处于预发布alpha版本,几乎每日都在变化。接口可能会更改。
该项目由Balancer Grants subDAO资助。 在中阅读新闻稿。
Rust工具,用于与Balancer协议V2交互。
免责声明:虽然balancer-rs旨在成为一个简化与Balancer V2智能合约交互的有用工具,但此包是一个alpha构建版本,应被视为alpha版本。使用风险自负!此包能够发送由您提供的任何私钥控制的以太币(或EVM兼容)代币。用户对使用此软件承担全部责任;此包的贡献者不对任何不良后果负责。强烈建议用户在主网使用具有价值资产之前,在测试网上进行实验。
项目目标
目前在Balancer生态系统中没有Rust支持,因此此SDK是吸引Rust开发人员的好方法,同时也将一种流行、快速、安全的语言带到Balancer提供的SDK集合中。具体来说,Rust SDK将为以下提供完整的Rust语言支持:
文档
有关完整的使用文档,包括所有接口、定义和广泛的示例,请参阅Rust Doc
使用
balancer-rs已在以下环境中进行了测试:
- 使用Rust 2021版本的MacOS
从crate安装
balancer-rs SDK可以作为crate从https://crates.io/crates/balancer_sdk安装。只需将以下内容添加到您的Rust项目的Cargo.toml
文件中的[dependencies]
部分:
[dependencies]
balancer_sdk = "*"
安装后,您将能够如下使用 Balancer Rust 模块
示例用法
如何从 Vault 合约 API 获取 WETH 地址的示例
#[tokio::main]
async fn main() {
let rpc_url = "https://rpc.flashbots.net/";
let transport = ethcontract::web3::transports::Http::new(rpc_url).unwrap();
let web3 = ethcontract::Web3::new(transport);
let vault_instance = balancer_sdk::vault::Vault::new(web3);
let weth_address = vault_instance.weth().call().await.unwrap();
}
测试
- 集成测试位于
./tests
- 单元测试与文件位于同一位置
- 示例测试在文档中
运行测试
$ cargo test -all
贡献
待定
添加新的池支持
Balancer 继续添加具有新合约 API 的新池类型。要添加对新池的支持
- 添加一个新的 json 文件,包含合约名称(重要)和包含合约 ABI 的 abi 字段
- 将池添加到
build.rs
脚本,与其他类似 - 运行
cargo build
- 将新池添加到池模块
- 完成!
示例
Git 仓库 包含了许多完整且可工作的示例,可在 ./examples
目录中找到。
要运行示例
$ cargo run --example [name]
依赖项
~20–33MB
~469K SLoC