This commit is contained in:
Stephan D
2026-03-10 12:31:09 +01:00
parent d87e709f43
commit e77d1ab793
287 changed files with 2089 additions and 1550 deletions

View File

@@ -2,6 +2,7 @@ package oracle
import (
"context"
"errors"
"fmt"
"math/big"
"strings"
@@ -99,17 +100,28 @@ func buildPriceSet(rate *model.RateSnapshot) (priceSet, error) {
return priceSet{}, merrors.InvalidArgument("oracle: cross rate requires underlying snapshot")
}
ask, err := parsePrice(rate.Ask)
if err != nil {
if err != nil && !errors.Is(err, merrors.ErrNoData) {
return priceSet{}, err
}
if errors.Is(err, merrors.ErrNoData) {
ask = nil
}
bid, err := parsePrice(rate.Bid)
if err != nil {
if err != nil && !errors.Is(err, merrors.ErrNoData) {
return priceSet{}, err
}
if errors.Is(err, merrors.ErrNoData) {
bid = nil
}
mid, err := parsePrice(rate.Mid)
if err != nil {
if err != nil && !errors.Is(err, merrors.ErrNoData) {
return priceSet{}, err
}
if errors.Is(err, merrors.ErrNoData) {
mid = nil
}
if ask == nil && bid == nil {
if mid == nil {
@@ -141,7 +153,7 @@ func buildPriceSet(rate *model.RateSnapshot) (priceSet, error) {
func parsePrice(value string) (*big.Rat, error) {
if strings.TrimSpace(value) == "" {
return nil, nil
return nil, merrors.ErrNoData
}
return ratFromString(value)
}

View File

@@ -110,7 +110,7 @@ func (s *Service) startDiscoveryAnnouncer() {
InvokeURI: s.invokeURI,
Version: appversion.Create().Short(),
}
s.announcer = discovery.NewAnnouncer(s.logger, s.producer, string(mservice.FXOracle), announce)
s.announcer = discovery.NewAnnouncer(s.logger, s.producer, mservice.FXOracle, announce)
s.announcer.Start()
}

View File

@@ -72,7 +72,7 @@ func (q *quotesStoreStub) Consume(ctx context.Context, ref, ledger string, when
if q.consumeFn != nil {
return q.consumeFn(ctx, ref, ledger, when)
}
return nil, nil
return nil, merrors.ErrNoData
}
func (q *quotesStoreStub) ExpireIssuedBefore(ctx context.Context, cutoff time.Time) (int, error) {