register and balances accept bpi

This commit is contained in:
Bel LaPointe
2023-10-25 14:02:44 -06:00
parent f2ec1233d7
commit 6b666c7220
5 changed files with 54 additions and 26 deletions

View File

@@ -9,6 +9,23 @@ type Balances map[string]Balance
type Balance map[Currency]float64
func (balances Balances) WithBPIs(bpis BPIs) Balances {
result := make(Balances)
for k, v := range balances {
if _, ok := result[k]; !ok {
result[k] = make(Balance)
}
for k2, v2 := range v {
scalar := 1.0
if k2 != USD {
scalar = bpis[k2].Lookup("9")
}
result[k][USD] += v2 * scalar
}
}
return result
}
func (balances Balances) PushAll(other Balances) {
for k, v := range other {
if _, ok := balances[k]; !ok {