Dart's report keys off VICTOR virtual accounts (1:1 with a ledger account).
FIB has no virtual accounts — its deposits are attributed to ledger accounts
via deposit bank memos, which are many-to-one with an account. Rather than
query memos and dedupe by hand, this leans on
LedgerAccountAdminQueryService.search, whose bankIds filter already
resolves the bank association (active deposit memo is authoritative, the
virtual-account bank_id is the fallback) and dedupes via semi-joins — so we
get exactly one row per FIB ledger account with its MOVEUSD balance.
Balances are valued as of snapshotDate — the most recent on-chain
post-balance at or before it — via the admin search's blockTime, so a
scheduled run snapshots its fire time and a re-run for a past date
reconstructs that day's balance.
Daily balance report for FIB.
Dart's report keys off VICTOR virtual accounts (1:1 with a ledger account). FIB has no virtual accounts — its deposits are attributed to ledger accounts via deposit bank memos, which are many-to-one with an account. Rather than query memos and dedupe by hand, this leans on LedgerAccountAdminQueryService.search, whose
bankIdsfilter already resolves the bank association (active deposit memo is authoritative, the virtual-accountbank_idis the fallback) and dedupes via semi-joins — so we get exactly one row per FIB ledger account with its MOVEUSD balance.Balances are valued as of
snapshotDate— the most recent on-chain post-balance at or before it — via the admin search'sblockTime, so a scheduled run snapshots its fire time and a re-run for a past date reconstructs that day's balance.