Private Transaction Builder
Private Transaction Builder - Complete API Reference
Overview
Basic Usage
Simple Transaction
use roru_sdk::prelude::*;
#[tokio::main]
async fn main() -> Result<()> {
// Initialize client
let client = RoruClient::new(ClientConfig::default()).await?;
let wallet = client.create_wallet().await?;
// Generate recipient address
let recipient = wallet.generate_address()?;
// Build transaction
let tx = TransactionBuilder::new()
.to(recipient)
.amount(1_000_000) // 1.0 tokens (6 decimals)
.build()?;
// Send transaction
let result = wallet.send_transaction(tx).await?;
println!("Transaction sent: {:?}", result.tx_hash);
Ok(())
}Advanced Usage
Custom Input Selection
Multiple Outputs
With Memo
Custom Fee
Priority Level
API Reference
TransactionBuilder Methods
new() -> TransactionBuilder
new() -> TransactionBuilderto(address: ShieldedAddress) -> Self
to(address: ShieldedAddress) -> Selfamount(value: u64) -> Self
amount(value: u64) -> Selfinputs(notes: Vec<Note>) -> Self
inputs(notes: Vec<Note>) -> Selfadd_output(address: ShieldedAddress, amount: u64) -> Self
add_output(address: ShieldedAddress, amount: u64) -> Selfmemo(data: &[u8]) -> Self
memo(data: &[u8]) -> Selffee(amount: u64) -> Self
fee(amount: u64) -> Selfpriority(level: Priority) -> Self
priority(level: Priority) -> Selfasset(asset_id: AssetId) -> Self
asset(asset_id: AssetId) -> Selfexpiry(timestamp: u64) -> Self
expiry(timestamp: u64) -> Selfbuild() -> Result<Transaction>
build() -> Result<Transaction>Transaction Structure
Transaction Type
Input Structure
Output Structure
Error Handling
Common Errors
Best Practices
1. Always Check Balance First
2. Handle Change Properly
3. Use Appropriate Priority
4. Validate Before Building
Complete Example
Conclusion
Last updated
