client.balances reads ledger balances. Unlike Python/Go convenience signatures, list takes a
proto GetBalancesRequest.
Balance fields are already scaled integer decimal strings on the wire (ledger u128 at the
asset's ledger scale, typically 18). Decode once: pass the string into format_ledger_u128 for
display. Do not multiply by 1e18 again. Use format_ledger_u128 for the full wire range; format_ledger_u64 remains available for values already known to fit in u64.
Methods
| Method | Summary |
|---|---|
list | GetBalancesRequest → BalancesList |
get_balance_history | GetBalanceHistoryRequest |
get_equity_history | GetEquityHistorySeriesRequest |
list_transfers | ListTransfersRequest (also on balances in Rust) |
subscribe | Private balance stream (recv_result) |
List
use polyester::proto::ledger::read::v1::GetBalancesRequest;
let list = client.balances.list(GetBalancesRequest::default()).await?;
for b in list.balances {
println!(
"{} trading={} available={}",
b.asset_id,
polyester::codecs::scalars::format_ledger_u128(&b.trading, 18)?,
polyester::codecs::scalars::format_ledger_u128(&b.available, 18)?,
);
}
let scoped = client.balances.list(GetBalancesRequest {
subaccount_id: Some(123),
..Default::default()
}).await?;subaccount_id: None reads the main account. Some(0) returns Error::Validation before sending in
every request on this page; pass None instead.
AssetBalance: asset_id, trading, funding, reserved, available, trading_revision, funding_revision.
Held amounts
Held amounts come from each Asset's reserved balance in client.balances.list (GetBalances).
Individual hold IDs and expiry times have no replacement.
Balance history
use polyester::proto::ledger::read::v1::{
GetBalanceHistoryRequest, GetEquityHistorySeriesRequest,
};
let hist = client.balances.get_balance_history(GetBalanceHistoryRequest {
// set range / ledger / account_codes as needed
..Default::default()
}).await?;
// Each series exposes balance_q as Vec<u64> and account_code as raw i32,
// preserving the complete wire values, including unknown future enum codes.
let equity = client.balances.get_equity_history(GetEquityHistorySeriesRequest {
..Default::default()
}).await?;
Subscribe
let mut sub = client
.balances
.subscribe(client.default_account_id.as_deref())
.await?;
while let Some(b) = sub.recv_result().await? {
println!(
"{} available={}",
b.asset_id,
polyester::codecs::scalars::format_ledger_u128(&b.available, 18)?,
);
break;
}Streamed balance components use the same raw ledger u128 representation as snapshots.