Crates.io Crates.io

Description

Rust-idiomatic Tron API client library.

Supported features

| 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 | [] |

Structure

| Crate | Description | |--------------|------------------| | heliosphere | Main crate | | heliosphere-core | Core types | | heliosphere-signer | Transaction signing utils |

TRC20 transfer example

``` 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 = "".parse().unwrap(); let usdt: Address = "TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs".parse().unwrap(); let amount: u64 = 1; // 0.000001 USDT

let methodcall = MethodCall { caller: &from, contract: &usdt, selector: "transfer(address,uint256)", parameter: &ethabi::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(); ```