Rust-idiomatic Tron API client library.
| Features | Support | |----------|---------| | Transaction signing & broadcasting | [x] | | Smart contract calls | [x] | | Basic network querying | [x] | | Staking TRX for energy and bandwidth | [x] | | Offline transaction signing | [x] | | Offline transaction encoding (without CreateTransaction API) | [] | | Voting & Proposals | [] |
| Crate | Description | |--------------|------------------| | heliosphere | Main crate | | heliosphere-core | Core types | | heliosphere-signer | Transaction signing utils |
```
let api = "https://api.shasta.trongrid.io";
let keypair = Keypair::fromhexkey(
std::fs::readtostring(".key")
.expect("no ./.key found")
.trim(),
)
.unwrap();
let client = RpcClient::new(api).unwrap();
let from = keypair.address();
let to: Address = "
let methodcall = MethodCall { caller: &from, contract: &usdt, selector: "transfer(address,uint256)", parameter: ðabi::encode(&[Token::Address(to.into()), Token::Uint(U256::from(amount))]), }; let tx = client .triggercontract( &methodcall, client.estimatefeelimit(&methodcall).await.unwrap(), 0, ) .await .unwrap(); keypair.signtransaction(&mut tx).unwrap(); let txid = client.broadcasttransaction(&tx).await.unwrap(); println!("Txid: {}", txid); println!("Confirming..."); client.await_confirmation(txid).await.unwrap(); ```