BalanceCalculator
class BalanceCalculator
Calculates wallet balance from ledger events.
Algorithm:
Start with zero balance
Process events chronologically (by ID)
For each event:
If receiver matches wallet address: ADD amount
If sender matches wallet address: SUBTRACT amount
Track shielded/unshielded/dust separately
Usage:
val calculator = BalanceCalculator()
val deserializer = MockDeserializer()
// Process cached events
val events = cachedEvents.map { deserializer.deserialize(it.rawHex) }
val balance = calculator.calculate(events, walletAddress = "mn_addr_...")Content copied to clipboard
Functions
Link copied to clipboard
suspend fun calculateFromRaw(rawEvents: List<String>, walletAddress: String, deserializer: LedgerEventDeserializer): Balance
Calculate balance from raw hex events (includes deserialization).