export interface Bank { balance: number history: BankHistoryItem[] } export interface BankHistoryItem { change: number total: number timestamp: number name: string } export function cleanBank(data: any): Bank { let history: BankHistoryItem[] = [] if (data?.banking?.transactions) { let bankBalance = Math.round(data.banking.balance * 10) / 10 // we go in reverse so we can simulate the bank transactions for (const transaction of data.banking.transactions.sort((a, b) => b.timestamp - a.timestamp)) { const change = transaction.action === 'DEPOSIT' ? transaction.amount : -transaction.amount // since we're going in reverse, we remove from the total balance when adding to the history bankBalance -= change history.push({ change: change, total: bankBalance, timestamp: transaction.timestamp, name: transaction.initiator_name, }) } } history.reverse() return { balance: data?.banking?.balance ?? 0, history } }