@@ -1753,13 +1753,13 @@ func (c *Core) Run(ctx context.Context) {
17531753
17541754 // Construct enabled fiat rate sources.
17551755fetchers:
1756- for token , rateFetcher := range fiatRateFetchers {
1756+ for src , f := range fiatRateFetchers {
17571757 for _ , v := range disabledSources {
1758- if token == v {
1758+ if src == v {
17591759 continue fetchers
17601760 }
17611761 }
1762- c .fiatRateSources [token ] = newCommonRateSource (rateFetcher )
1762+ c .fiatRateSources [src ] = newCommonRateSource (src , f )
17631763 }
17641764 c .fetchFiatExchangeRates (ctx )
17651765
@@ -2585,12 +2585,14 @@ func (c *Core) assetMap() map[uint32]*SupportedAsset {
25852585// User is a thread-safe getter for the User.
25862586func (c * Core ) User () * User {
25872587 m := c .coreMesh ()
2588+ idRates , tickerRates := c .fiatConversions ()
25882589 return & User {
25892590 Assets : c .assetMap (),
25902591 Exchanges : c .Exchanges (),
25912592 Initialized : c .IsInitialized (),
25922593 SeedGenerationTime : c .seedGenerationTime ,
2593- FiatRates : c .fiatConversions (),
2594+ FiatRates : idRates ,
2595+ TickerRates : tickerRates ,
25942596 Net : c .net ,
25952597 ExtensionConfig : c .extensionModeConfig ,
25962598 Actions : c .requestedActionsList (),
@@ -11382,9 +11384,9 @@ func (c *Core) refreshFiatRates(ctx context.Context) {
1138211384 // Remove expired rate source if any.
1138311385 c .removeExpiredRateSources ()
1138411386
11385- fiatRatesMap := c .fiatConversions ()
11386- if len (fiatRatesMap ) != 0 {
11387- c .notify (newFiatRatesUpdate (fiatRatesMap ))
11387+ idRates , tickerRates := c .fiatConversions ()
11388+ if len (idRates ) != 0 {
11389+ c .notify (newFiatRatesUpdate (idRates , tickerRates ))
1138811390 }
1138911391}
1139011392
@@ -11403,12 +11405,13 @@ func (c *Core) FiatRateSources() map[string]bool {
1140311405// FiatConversionRates are the currently cached fiat conversion rates. Must have
1140411406// 1 or more fiat rate sources enabled.
1140511407func (c * Core ) FiatConversionRates () map [uint32 ]float64 {
11406- return c .fiatConversions ()
11408+ idRates , _ := c .fiatConversions ()
11409+ return idRates
1140711410}
1140811411
1140911412// fiatConversions returns fiat rate for all supported assets that have a
1141011413// wallet.
11411- func (c * Core ) fiatConversions () map [uint32 ]float64 {
11414+ func (c * Core ) fiatConversions () ( map [uint32 ]float64 , map [ string ] float64 ) {
1141211415 assetIDs := make (map [uint32 ]struct {})
1141311416 supportedAssets := asset .Assets ()
1141411417 for assetID , asset := range supportedAssets {
@@ -11419,6 +11422,7 @@ func (c *Core) fiatConversions() map[uint32]float64 {
1141911422 }
1142011423
1142111424 fiatRatesMap := make (map [uint32 ]float64 , len (supportedAssets ))
11425+ tickerRatesMap := make (map [string ]float64 )
1142211426 for assetID := range assetIDs {
1142311427 var rateSum float64
1142411428 var sources int
@@ -11437,19 +11441,22 @@ func (c *Core) fiatConversions() map[uint32]float64 {
1143711441 }
1143811442 }
1143911443 if rateSum != 0 {
11440- fiatRatesMap [assetID ] = rateSum / float64 (sources ) // get average rate.
11444+ r := rateSum / float64 (sources ) // get average rate.
11445+ fiatRatesMap [assetID ] = r
11446+ ui , _ := asset .UnitInfo (assetID )
11447+ tickerRatesMap [ui .Conventional .Unit ] = r
1144111448 }
1144211449 }
11443- return fiatRatesMap
11450+ return fiatRatesMap , tickerRatesMap
1144411451}
1144511452
1144611453// ToggleRateSourceStatus toggles a fiat rate source status. If disable is true,
1144711454// the fiat rate source is disabled, otherwise the rate source is enabled.
11448- func (c * Core ) ToggleRateSourceStatus (source string , disable bool ) error {
11449- if disable {
11450- return c .disableRateSource (source )
11455+ func (c * Core ) ToggleRateSourceStatus (source string , enable bool ) error {
11456+ if enable {
11457+ return c .enableRateSource (source )
1145111458 }
11452- return c .enableRateSource (source )
11459+ return c .disableRateSource (source )
1145311460}
1145411461
1145511462// enableRateSource enables a fiat rate source.
@@ -11467,7 +11474,7 @@ func (c *Core) enableRateSource(source string) error {
1146711474 }
1146811475
1146911476 // Build fiat rate source.
11470- rateSource := newCommonRateSource (rateFetcher )
11477+ rateSource := newCommonRateSource (source , rateFetcher )
1147111478 c .fiatRateSources [source ] = rateSource
1147211479
1147311480 select {
@@ -11957,6 +11964,11 @@ func (c *Core) ExtensionModeConfig() *ExtensionModeConfig {
1195711964 return c .extensionModeConfig
1195811965}
1195911966
11967+ func (c * Core ) ValidateSeed (seed string ) (bool , error ) {
11968+ _ , _ , err := decodeSeedString (seed )
11969+ return err == nil , nil
11970+ }
11971+
1196011972// calcParcelLimit computes the users score-scaled user parcel limit.
1196111973func calcParcelLimit (tier int64 , score , maxScore int32 ) uint32 {
1196211974 // Users limit starts at 2 parcels per tier.
0 commit comments