27 个版本 (2 个稳定版本)
新 1.1.0 | 2024 年 8 月 23 日 |
---|---|
1.0.0-rc | 2024 年 7 月 10 日 |
0.26.0 | 2024 年 7 月 9 日 |
0.20.1 | 2024 年 3 月 17 日 |
#657 in 魔法豆
每月 409 次下载
在 2 crates 中使用
110KB
2.5K SLoC
Uniswap SDK Core Rust
Rust 编程语言的一个自定义 Uniswap SDK 核心库,提供与 Uniswap 去中心化交易所交互的必要功能。
关于 no_std
的说明
默认情况下,此库不依赖于标准库 (std
)。但是,可以通过启用 std
功能来使用 thiserror
进行错误处理。
快速入门
将以下内容添加到您的 Cargo.toml 中
[dependencies]
uniswap-sdk-core = "1.0.0"
并将以下内容添加到您的代码中
use uniswap_sdk_core::prelude::*;
示例
下面的代码展示了如何使用 token!
宏在以太坊主网上创建一个新的 Token
实例,用于 DAI 代币。
// The `prelude` module provides a convenient way to import a number of common dependencies at
// once. This can be useful if you are working with multiple parts of the library and want to avoid
// having to import each dependency individually.
// Import necessary preludes and types
use uniswap_sdk_core::{prelude::*, token};
fn main() {
// Define the chain ID, address, decimals, symbol, and name for the token
const CHAIN_ID: u64 = 1; // Ethereum Mainnet
const TOKEN_ADDRESS: &str = "0x6B175474E89094C44Da98b954EedeAC495271d0F"; // DAI Token Address
const DECIMALS: u8 = 18;
const SYMBOL: &str = "DAI";
const NAME: &str = "Dai Stablecoin";
// Use the `token!` macro to create a new `Token` instance
let dai_token = token!(CHAIN_ID, TOKEN_ADDRESS, DECIMALS, SYMBOL, NAME);
// Example usage of the `Token` methods
println!("Token Address: {}", dai_token.address());
println!("Is Native: {}", dai_token.is_native());
// Example of comparing two tokens
let another_dai_token = token!(CHAIN_ID, TOKEN_ADDRESS, DECIMALS, SYMBOL, NAME);
println!("Are the tokens equal? {}", dai_token.equals(&another_dai_token));
// Example of sorting tokens
let another_token = token!(CHAIN_ID, "0000000000000000000000000000000000000002", DECIMALS, "ETH", "Ethereum");
match dai_token.sorts_before(&another_token) {
Ok(true) => println!("DAI sorts before ETH"),
Ok(false) => println!("DAI does not sort before ETH"),
Err(e) => println!("Error comparing tokens: {:?}", e),
}
}
此示例演示了如何使用 token!
宏在以太坊主网上为 DAI 创建一个 Token
实例。
然后它打印代币的地址并检查它是否是原生代币(它不是,因此打印 false)。
它还比较了 DAI 代币与另一个 DAI 代币实例,以显示相同代币的两个实例被认为是相等的。
最后,它尝试在以太坊代币之前对DAI代币进行排序,这应该会打印出DAI在ETH之前排序的结果,前提是地址设置正确以进行此比较。
请记得将 "0x6B175474E89094C44Da98b954EedeAC495271d0F" 替换为您正在使用的实际DAI代币地址,如果您在处理不同的网络(例如测试网)时,请调整CHAIN_ID。
贡献
欢迎贡献!如果您发现了一个错误或有改进建议,请随时在GitHub仓库上提交问题或拉取请求。
许可证
本项目采用MIT许可证 - 请参阅LICENSE文件以获取详细信息。
致谢
Rust语言中的Uniswap SDK Core受到了原始Uniswap SDK的启发,旨在提供类似的功能。
使用
- Uniswap V3 SDK Rust:关注可读性和性能的Uniswap V3 SDK的Rust语言实现
- Uniswap V2 SDK Rust:关注可读性和性能的Uniswap V2 SDK的Rust语言实现
- ...
(如果您想添加项目到列表中,请私信或提交PR)
依赖项
~4.5–7MB
~127K SLoC