#balancer #crypto #contract #sdk #pool #protocols #vault

bin+lib balancer_sdk

一个Rust SDK,提供与Balancer协议V2交互的常用实用工具。

16次发布

0.1.16-alpha2022年6月16日
0.1.14-alpha2022年6月16日

6#balancer

42 每月下载

MIT/ApacheGPL-3.0-only

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