3 个版本 (破坏性)
新 0.3.1 | 2024 年 8 月 26 日 |
---|---|
0.3.0 |
|
0.2.0 | 2023 年 3 月 11 日 |
0.1.1 |
|
0.1.0 | 2023 年 2 月 10 日 |
226 在 神奇豆
每月下载量 124 次
51KB
1K SLoC
描述
Rust 编程风格的 Tron API 客户端库。
支持的功能
功能 | 支持 |
---|---|
交易签名与广播 | ✓ |
智能合约调用 | ✓ |
基本网络查询 | ✓ |
为能量和带宽抵押 TRX | ✓ |
离线交易签名 | ✓ |
离线交易编码(不使用 CreateTransaction API) | ✗ |
投票与提案 | ✗ |
结构
箱 | 描述 |
---|---|
heliosphere | 主箱 |
heliosphere-core | 核心类型,与 no_std 兼容但需要 alloc |
heliosphere-signer | 交易签名实用工具,与 no_std 兼容但需要 alloc |
TRC20 转账示例
let api = "https://api.shasta.trongrid.io";
let keypair = Keypair::from_hex_key(
std::fs::read_to_string(".key")
.expect("no ./.key found")
.trim(),
)
.unwrap();
let client = RpcClient::new(api).unwrap();
let from = keypair.address();
let to: Address = "<transfer-to-address>".parse().unwrap();
let usdt: Address = "TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs".parse().unwrap(); // shasta testnet USDT
let amount: u64 = 1; // 0.000001 USDT
// Fetch account balance
let method_call_balance = MethodCall {
caller: &from,
contract: &usdt,
selector: "balanceOf(address)",
parameter: ðabi::encode(&[Token::Address(from.into())]),
};
let res = ðabi::decode(
&[ParamType::Uint(256)],
&client
.query_contract(&method_call_balance)
.await
.unwrap()
.constant_result(0)
.unwrap(),
)
.unwrap()[0];
let current_balance = match res {
Token::Uint(x) => x,
_ => panic!("Wrong type"),
};
println!("Balance: {}", current_balance);
// Transfer tokens
let method_call = MethodCall {
caller: &from,
contract: &usdt,
selector: "transfer(address,uint256)",
parameter: ðabi::encode(&[Token::Address(to.into()), Token::Uint(U256::from(amount))]),
};
// Estimate energy usage
let estimated = client.estimate_energy(&method_call).await.unwrap();
println!("Estimated energy usage: {}", estimated);
// Send tx
let mut tx = client
.trigger_contract(&method_call, 0, None)
.await
.unwrap();
keypair.sign_transaction(&mut tx).unwrap();
let txid = client.broadcast_transaction(&tx).await.unwrap();
println!("Txid: {}", txid);
println!("Confirming...");
client.await_confirmation(txid).await.unwrap();
许可证
本项目采用 MIT 许可证。
依赖关系
~13–24MB
~367K SLoC