* chore: remove fleet enum duplication * fix: `updateNodeConfigFleet` on login
This commit is contained in:
parent
ba7faea027
commit
34c693bdea
|
@ -1461,13 +1461,13 @@ func TestSetFleet(t *testing.T) {
|
||||||
|
|
||||||
accountsDB, err := b.accountsDB()
|
accountsDB, err := b.accountsDB()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
err = accountsDB.SaveSettingField(settings.Fleet, statusTestFleet)
|
err = accountsDB.SaveSettingField(settings.Fleet, params.FleetShardsTest)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
savedSettings, err = b.GetSettings()
|
savedSettings, err = b.GetSettings()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NotEmpty(t, savedSettings.Fleet)
|
require.NotEmpty(t, savedSettings.Fleet)
|
||||||
require.Equal(t, statusTestFleet, *savedSettings.Fleet)
|
require.Equal(t, params.FleetShardsTest, *savedSettings.Fleet)
|
||||||
|
|
||||||
require.NoError(t, b.Logout())
|
require.NoError(t, b.Logout())
|
||||||
|
|
||||||
|
@ -1483,7 +1483,7 @@ func TestSetFleet(t *testing.T) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
// Check is using the right fleet
|
// Check is using the right fleet
|
||||||
require.Equal(t, b.config.ClusterConfig.WakuNodes, DefaultWakuNodes[statusTestFleet])
|
require.Equal(t, b.config.ClusterConfig.WakuNodes, params.DefaultWakuNodes(params.FleetShardsTest))
|
||||||
|
|
||||||
require.NoError(t, b.Logout())
|
require.NoError(t, b.Logout())
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,23 +27,7 @@ const defaultKeycardPairingDataFile = "/ethereum/mainnet_rpc/keycard/pairings.js
|
||||||
|
|
||||||
var paths = []string{pathWalletRoot, pathEIP1581, pathDefaultChat, pathDefaultWallet}
|
var paths = []string{pathWalletRoot, pathEIP1581, pathDefaultChat, pathDefaultWallet}
|
||||||
|
|
||||||
const (
|
var DefaultFleet = params.FleetShardsTest
|
||||||
statusProdFleet = "status.prod"
|
|
||||||
statusTestFleet = "status.test"
|
|
||||||
wakuv2ProdFleet = "wakuv2.prod"
|
|
||||||
wakuv2TestFleet = "wakuv2.test"
|
|
||||||
shardsTest = "shards.test"
|
|
||||||
)
|
|
||||||
|
|
||||||
var DefaultWakuNodes = map[string][]string{
|
|
||||||
statusProdFleet: []string{"enrtree://AL65EKLJAUXKKPG43HVTML5EFFWEZ7L4LOKTLZCLJASG4DSESQZEC@prod.status.nodes.status.im"},
|
|
||||||
statusTestFleet: []string{"enrtree://AIO6LUM3IVWCU2KCPBBI6FEH2W42IGK3ASCZHZGG5TIXUR56OGQUO@test.status.nodes.status.im"},
|
|
||||||
wakuv2ProdFleet: []string{"enrtree://ANEDLO25QVUGJOUTQFRYKWX6P4Z4GKVESBMHML7DZ6YK4LGS5FC5O@prod.wakuv2.nodes.status.im"},
|
|
||||||
wakuv2TestFleet: []string{"enrtree://AO47IDOLBKH72HIZZOXQP6NMRESAN7CHYWIBNXDXWRJRZWLODKII6@test.wakuv2.nodes.status.im"},
|
|
||||||
shardsTest: []string{"enrtree://AMOJVZX4V6EXP7NTJPMAYJYST2QP6AJXYW76IU6VGJS7UVSNDYZG4@boot.test.shards.nodes.status.im"},
|
|
||||||
}
|
|
||||||
|
|
||||||
var DefaultFleet = shardsTest
|
|
||||||
|
|
||||||
func defaultSettings(generatedAccountInfo generator.GeneratedAccountInfo, derivedAddresses map[string]generator.AccountInfo, mnemonic *string) (*settings.Settings, error) {
|
func defaultSettings(generatedAccountInfo generator.GeneratedAccountInfo, derivedAddresses map[string]generator.AccountInfo, mnemonic *string) (*settings.Settings, error) {
|
||||||
chatKeyString := derivedAddresses[pathDefaultChat].PublicKey
|
chatKeyString := derivedAddresses[pathDefaultChat].PublicKey
|
||||||
|
@ -134,10 +118,10 @@ func SetFleet(fleet string, nodeConfig *params.NodeConfig) error {
|
||||||
}
|
}
|
||||||
nodeConfig.ClusterConfig = *clusterConfig
|
nodeConfig.ClusterConfig = *clusterConfig
|
||||||
nodeConfig.ClusterConfig.Fleet = fleet
|
nodeConfig.ClusterConfig.Fleet = fleet
|
||||||
nodeConfig.ClusterConfig.WakuNodes = DefaultWakuNodes[fleet]
|
nodeConfig.ClusterConfig.WakuNodes = params.DefaultWakuNodes(fleet)
|
||||||
nodeConfig.ClusterConfig.DiscV5BootstrapNodes = DefaultWakuNodes[fleet]
|
nodeConfig.ClusterConfig.DiscV5BootstrapNodes = params.DefaultWakuNodes(fleet)
|
||||||
|
|
||||||
if fleet == shardsTest {
|
if fleet == params.FleetShardsTest {
|
||||||
nodeConfig.ClusterConfig.ClusterID = shardsTestClusterID
|
nodeConfig.ClusterConfig.ClusterID = shardsTestClusterID
|
||||||
nodeConfig.WakuV2Config.UseShardAsDefaultTopic = true
|
nodeConfig.WakuV2Config.UseShardAsDefaultTopic = true
|
||||||
}
|
}
|
||||||
|
|
|
@ -624,20 +624,7 @@ func (b *GethStatusBackend) loginAccount(request *requests.Login) error {
|
||||||
|
|
||||||
defaultCfg.WalletConfig = buildWalletConfig(&request.WalletSecretsConfig)
|
defaultCfg.WalletConfig = buildWalletConfig(&request.WalletSecretsConfig)
|
||||||
|
|
||||||
settings, err := b.GetSettings()
|
err = b.updateNodeConfigFleet(defaultCfg)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var fleet string
|
|
||||||
fleetPtr := settings.Fleet
|
|
||||||
if fleetPtr == nil || *fleetPtr == "" {
|
|
||||||
fleet = DefaultFleet
|
|
||||||
} else {
|
|
||||||
fleet = *fleetPtr
|
|
||||||
}
|
|
||||||
|
|
||||||
err = SetFleet(fleet, defaultCfg)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -705,7 +692,32 @@ func (b *GethStatusBackend) loginAccount(request *requests.Login) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// updateNodeConfigFleet loads the fleet from the settings and updates the node configuration
|
||||||
|
// If the fleet in settings is empty, or not supported anymore, it will be overridden with the default fleet.
|
||||||
|
// In that case settings fleet value remain the same, only runtime node configuration is updated.
|
||||||
|
func (b *GethStatusBackend) updateNodeConfigFleet(config *params.NodeConfig) error {
|
||||||
|
accountSettings, err := b.GetSettings()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
fleet := accountSettings.GetFleet()
|
||||||
|
|
||||||
|
if !params.IsFleetSupported(fleet) {
|
||||||
|
b.log.Warn("fleet is not supported, overriding with default value",
|
||||||
|
"fleet", fleet,
|
||||||
|
"defaultFleet", DefaultFleet)
|
||||||
|
fleet = DefaultFleet
|
||||||
|
}
|
||||||
|
|
||||||
|
err = SetFleet(fleet, config)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *GethStatusBackend) startNodeWithAccount(acc multiaccounts.Account, password string, inputNodeCfg *params.NodeConfig) error {
|
func (b *GethStatusBackend) startNodeWithAccount(acc multiaccounts.Account, password string, inputNodeCfg *params.NodeConfig) error {
|
||||||
|
@ -714,6 +726,13 @@ func (b *GethStatusBackend) startNodeWithAccount(acc multiaccounts.Account, pass
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NOTE: This is code duplication from `loginAccount` method
|
||||||
|
// We should stop using this endpoint in desktop: https://github.com/status-im/status-desktop/issues/12977
|
||||||
|
err = b.updateNodeConfigFleet(inputNodeCfg)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
err = b.loadNodeConfig(inputNodeCfg)
|
err = b.loadNodeConfig(inputNodeCfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -998,7 +998,7 @@ type FleetDescription struct {
|
||||||
func Fleets() string {
|
func Fleets() string {
|
||||||
fleets := FleetDescription{
|
fleets := FleetDescription{
|
||||||
DefaultFleet: api.DefaultFleet,
|
DefaultFleet: api.DefaultFleet,
|
||||||
Fleets: api.DefaultWakuNodes,
|
Fleets: params.GetSupportedFleets(),
|
||||||
}
|
}
|
||||||
|
|
||||||
data, err := json.Marshal(fleets)
|
data, err := json.Marshal(fleets)
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
|
|
||||||
accountJson "github.com/status-im/status-go/account/json"
|
accountJson "github.com/status-im/status-go/account/json"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
|
"github.com/status-im/status-go/params"
|
||||||
"github.com/status-im/status-go/protocol/common"
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/protobuf"
|
"github.com/status-im/status-go/protocol/protobuf"
|
||||||
)
|
)
|
||||||
|
@ -230,3 +231,10 @@ func (s Settings) IsEmpty() bool {
|
||||||
empty := reflect.Zero(reflect.TypeOf(s)).Interface()
|
empty := reflect.Zero(reflect.TypeOf(s)).Interface()
|
||||||
return reflect.DeepEqual(s, empty)
|
return reflect.DeepEqual(s, empty)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s Settings) GetFleet() string {
|
||||||
|
if s.Fleet == nil {
|
||||||
|
return params.FleetUndefined
|
||||||
|
}
|
||||||
|
return *s.Fleet
|
||||||
|
}
|
||||||
|
|
|
@ -20,3 +20,23 @@ type Cluster struct {
|
||||||
MailServers []string `json:"mailservers"` // list of trusted mail servers
|
MailServers []string `json:"mailservers"` // list of trusted mail servers
|
||||||
RendezvousNodes []string `json:"rendezvousnodes"`
|
RendezvousNodes []string `json:"rendezvousnodes"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DefaultWakuNodes is a list of "supported" fleets. This list is populated to clients UI settings.
|
||||||
|
var supportedFleets = map[string][]string{
|
||||||
|
FleetWakuV2Prod: {"enrtree://ANEDLO25QVUGJOUTQFRYKWX6P4Z4GKVESBMHML7DZ6YK4LGS5FC5O@prod.wakuv2.nodes.status.im"},
|
||||||
|
FleetWakuV2Test: {"enrtree://AO47IDOLBKH72HIZZOXQP6NMRESAN7CHYWIBNXDXWRJRZWLODKII6@test.wakuv2.nodes.status.im"},
|
||||||
|
FleetShardsTest: {"enrtree://AMOJVZX4V6EXP7NTJPMAYJYST2QP6AJXYW76IU6VGJS7UVSNDYZG4@boot.test.shards.nodes.status.im"},
|
||||||
|
}
|
||||||
|
|
||||||
|
func DefaultWakuNodes(fleet string) []string {
|
||||||
|
return supportedFleets[fleet]
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsFleetSupported(fleet string) bool {
|
||||||
|
_, ok := supportedFleets[fleet]
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetSupportedFleets() map[string][]string {
|
||||||
|
return supportedFleets
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue