Misc small improvements.
All checks were successful
Build & Test / Main (push) Successful in 1m0s

This commit is contained in:
2024-03-29 18:40:33 -07:00
parent 9e6abb1112
commit 4d5dcc46d2
2 changed files with 19 additions and 20 deletions

View File

@@ -46,26 +46,25 @@ type Asset struct {
RelativeBases []moon.RelativeBase `koanf:"relativeBases"`
}
func (r Root) ForAsset(asset coindesk.Asset) (data Asset) {
data, ok := r.Assets[asset]
if !ok {
data = r.Defaults
}
if data.Asset == "" {
data.Asset = asset
}
if data.Goals == nil || len(data.Goals) == 0 {
data.Goals = r.Defaults.Goals
}
if data.ConstantBases == nil || len(data.ConstantBases) == 0 {
data.ConstantBases = r.Defaults.ConstantBases
}
if data.RelativeBases == nil || len(data.RelativeBases) == 0 {
data.RelativeBases = r.Defaults.RelativeBases
}
func (r Root) ForAsset(a coindesk.Asset) (cfg Asset) {
cfg = merge(r.Assets[a], r.Defaults)
cfg.Asset = a
return
}
func merge(dst, src Asset) Asset {
if len(dst.Goals) == 0 {
dst.Goals = src.Goals
}
if len(dst.ConstantBases) == 0 {
dst.ConstantBases = src.ConstantBases
}
if len(dst.RelativeBases) == 0 {
dst.RelativeBases = src.RelativeBases
}
return dst
}
// GetBases returns the concatenation of the constant and relative bases, sorted
// from most recent to least recent in time.
func GetBases(d *Asset) (bases []moon.Base) {