Skip to content

Commit

Permalink
address remaining PR feedback part 2
Browse files Browse the repository at this point in the history
  • Loading branch information
friofry committed Jan 7, 2025
1 parent afb9730 commit 5df7c7e
Show file tree
Hide file tree
Showing 11 changed files with 160 additions and 160 deletions.
12 changes: 6 additions & 6 deletions api/backend_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1579,12 +1579,12 @@ func TestWalletConfigOnLoginAccount(t *testing.T) {
}

require.Equal(t, b.config.WalletConfig.InfuraAPIKey, infuraToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[mainnetChainID], alchemyEthereumMainnetToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[sepoliaChainID], alchemyEthereumSepoliaToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[arbitrumChainID], alchemyArbitrumMainnetToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[arbitrumSepoliaChainID], alchemyArbitrumSepoliaToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[optimismChainID], alchemyOptimismMainnetToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[optimismSepoliaChainID], alchemyOptimismSepoliaToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[MainnetChainID], alchemyEthereumMainnetToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[SepoliaChainID], alchemyEthereumSepoliaToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[ArbitrumChainID], alchemyArbitrumMainnetToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[ArbitrumSepoliaChainID], alchemyArbitrumSepoliaToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[OptimismChainID], alchemyOptimismMainnetToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[OptimismSepoliaChainID], alchemyOptimismSepoliaToken)
require.Equal(t, b.config.WalletConfig.RaribleMainnetAPIKey, raribleMainnetAPIKey)
require.Equal(t, b.config.WalletConfig.RaribleTestnetAPIKey, raribleTestnetAPIKey)

Expand Down
38 changes: 19 additions & 19 deletions api/default_networks.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import (
)

const (
mainnetChainID uint64 = 1
sepoliaChainID uint64 = 11155111
optimismChainID uint64 = 10
optimismSepoliaChainID uint64 = 11155420
arbitrumChainID uint64 = 42161
arbitrumSepoliaChainID uint64 = 421614
MainnetChainID uint64 = 1
SepoliaChainID uint64 = 11155111
OptimismChainID uint64 = 10
OptimismSepoliaChainID uint64 = 11155420
ArbitrumChainID uint64 = 42161
ArbitrumSepoliaChainID uint64 = 421614
sntSymbol = "SNT"
sttSymbol = "STT"
)
Expand All @@ -24,7 +24,7 @@ var ganacheTokenAddress = common.HexToAddress("0x8571Ddc46b10d31EF963aF49b6C7799

func mainnet(stageName string) params.Network {
return params.Network{
ChainID: mainnetChainID,
ChainID: MainnetChainID,
ChainName: "Mainnet",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/nodefleet/ethereum/mainnet/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/mainnet/", stageName),
Expand All @@ -41,13 +41,13 @@ func mainnet(stageName string) params.Network {
IsTest: false,
Layer: 1,
Enabled: true,
RelatedChainID: sepoliaChainID,
RelatedChainID: SepoliaChainID,
}
}

func sepolia(stageName string) params.Network {
return params.Network{
ChainID: sepoliaChainID,
ChainID: SepoliaChainID,
ChainName: "Mainnet",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/nodefleet/ethereum/sepolia/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/sepolia/", stageName),
Expand All @@ -64,13 +64,13 @@ func sepolia(stageName string) params.Network {
IsTest: true,
Layer: 1,
Enabled: true,
RelatedChainID: mainnetChainID,
RelatedChainID: MainnetChainID,
}
}

func optimism(stageName string) params.Network {
return params.Network{
ChainID: optimismChainID,
ChainID: OptimismChainID,
ChainName: "Optimism",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/nodefleet/optimism/mainnet/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/mainnet/", stageName),
Expand All @@ -87,13 +87,13 @@ func optimism(stageName string) params.Network {
IsTest: false,
Layer: 2,
Enabled: true,
RelatedChainID: optimismSepoliaChainID,
RelatedChainID: OptimismSepoliaChainID,
}
}

func optimismSepolia(stageName string) params.Network {
return params.Network{
ChainID: optimismSepoliaChainID,
ChainID: OptimismSepoliaChainID,
ChainName: "Optimism",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/nodefleet/optimism/sepolia/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/sepolia/", stageName),
Expand All @@ -110,13 +110,13 @@ func optimismSepolia(stageName string) params.Network {
IsTest: true,
Layer: 2,
Enabled: false,
RelatedChainID: optimismChainID,
RelatedChainID: OptimismChainID,
}
}

func arbitrum(stageName string) params.Network {
return params.Network{
ChainID: arbitrumChainID,
ChainID: ArbitrumChainID,
ChainName: "Arbitrum",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/nodefleet/arbitrum/mainnet/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/mainnet/", stageName),
Expand All @@ -133,13 +133,13 @@ func arbitrum(stageName string) params.Network {
IsTest: false,
Layer: 2,
Enabled: true,
RelatedChainID: arbitrumSepoliaChainID,
RelatedChainID: ArbitrumSepoliaChainID,
}
}

func arbitrumSepolia(stageName string) params.Network {
return params.Network{
ChainID: arbitrumSepoliaChainID,
ChainID: ArbitrumSepoliaChainID,
ChainName: "Arbitrum",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/nodefleet/arbitrum/sepolia/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/sepolia/", stageName),
Expand All @@ -156,7 +156,7 @@ func arbitrumSepolia(stageName string) params.Network {
IsTest: true,
Layer: 2,
Enabled: false,
RelatedChainID: arbitrumChainID,
RelatedChainID: ArbitrumChainID,
}
}

Expand Down Expand Up @@ -204,7 +204,7 @@ func setRPCs(networks []params.Network, request *requests.WalletSecretsConfig) [
if request.GanacheURL != "" {
n.RPCURL = request.GanacheURL
n.FallbackURL = request.GanacheURL
if n.ChainID == mainnetChainID {
if n.ChainID == MainnetChainID {
n.TokenOverrides = []params.TokenOverride{
mainnetGanacheTokenOverrides,
}
Expand Down
14 changes: 7 additions & 7 deletions api/default_networks_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ func TestBuildDefaultNetworks(t *testing.T) {
for _, n := range actualNetworks {
var err error
switch n.ChainID {
case mainnetChainID:
case sepoliaChainID:
case optimismChainID:
case optimismSepoliaChainID:
case arbitrumChainID:
case arbitrumSepoliaChainID:
case MainnetChainID:
case SepoliaChainID:
case OptimismChainID:
case OptimismSepoliaChainID:
case ArbitrumChainID:
case ArbitrumSepoliaChainID:
default:
err = errors.Errorf("unexpected chain id: %d", n.ChainID)
}
Expand Down Expand Up @@ -70,7 +70,7 @@ func TestBuildDefaultNetworksGanache(t *testing.T) {
require.True(t, strings.Contains(n.FallbackURL, ganacheURL))
}

require.Equal(t, mainnetChainID, actualNetworks[0].ChainID)
require.Equal(t, MainnetChainID, actualNetworks[0].ChainID)

require.NotNil(t, actualNetworks[0].TokenOverrides)
require.Len(t, actualNetworks[0].TokenOverrides, 1)
Expand Down
12 changes: 6 additions & 6 deletions api/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -198,22 +198,22 @@ func buildWalletConfig(request *requests.WalletSecretsConfig, statusProxyEnabled
}

if request.AlchemyEthereumMainnetToken != "" {
walletConfig.AlchemyAPIKeys[mainnetChainID] = request.AlchemyEthereumMainnetToken
walletConfig.AlchemyAPIKeys[MainnetChainID] = request.AlchemyEthereumMainnetToken
}
if request.AlchemyEthereumSepoliaToken != "" {
walletConfig.AlchemyAPIKeys[sepoliaChainID] = request.AlchemyEthereumSepoliaToken
walletConfig.AlchemyAPIKeys[SepoliaChainID] = request.AlchemyEthereumSepoliaToken
}
if request.AlchemyArbitrumMainnetToken != "" {
walletConfig.AlchemyAPIKeys[arbitrumChainID] = request.AlchemyArbitrumMainnetToken
walletConfig.AlchemyAPIKeys[ArbitrumChainID] = request.AlchemyArbitrumMainnetToken
}
if request.AlchemyArbitrumSepoliaToken != "" {
walletConfig.AlchemyAPIKeys[arbitrumSepoliaChainID] = request.AlchemyArbitrumSepoliaToken
walletConfig.AlchemyAPIKeys[ArbitrumSepoliaChainID] = request.AlchemyArbitrumSepoliaToken
}
if request.AlchemyOptimismMainnetToken != "" {
walletConfig.AlchemyAPIKeys[optimismChainID] = request.AlchemyOptimismMainnetToken
walletConfig.AlchemyAPIKeys[OptimismChainID] = request.AlchemyOptimismMainnetToken
}
if request.AlchemyOptimismSepoliaToken != "" {
walletConfig.AlchemyAPIKeys[optimismSepoliaChainID] = request.AlchemyOptimismSepoliaToken
walletConfig.AlchemyAPIKeys[OptimismSepoliaChainID] = request.AlchemyOptimismSepoliaToken
}
if request.StatusProxyMarketUser != "" {
walletConfig.StatusProxyMarketUser = request.StatusProxyMarketUser
Expand Down
45 changes: 23 additions & 22 deletions params/networkhelper/provider_utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/stretchr/testify/require"

"github.com/ethereum/go-ethereum/common"
"github.com/status-im/status-go/api"
"github.com/status-im/status-go/params"
"github.com/status-im/status-go/params/networkhelper"
"github.com/status-im/status-go/rpc/network/testutil"
Expand Down Expand Up @@ -55,13 +56,13 @@ func TestMergeProvidersPreserveEnabledAndOrder(t *testing.T) {
func TestUpdateEmbeddedProxyProviders(t *testing.T) {
// Arrange: Create a sample list of networks with various provider types
networks := []params.Network{
*testutil.CreateNetwork(testutil.EthereumChainID, "Ethereum Mainnet", []params.RpcProvider{
*params.NewUserProvider(testutil.EthereumChainID, "Provider1", "https://userprovider.example.com", true),
*params.NewProxyProvider(testutil.EthereumChainID, "Provider2", "https://proxyprovider.example.com", true),
*testutil.CreateNetwork(api.MainnetChainID, "Ethereum Mainnet", []params.RpcProvider{
*params.NewUserProvider(api.MainnetChainID, "Provider1", "https://userprovider.example.com", true),
*params.NewProxyProvider(api.MainnetChainID, "Provider2", "https://proxyprovider.example.com", true),
}),
*testutil.CreateNetwork(testutil.OptimismChainID, "Optimism", []params.RpcProvider{
*params.NewDirectProvider(testutil.OptimismChainID, "Provider3", "https://directprovider.example.com", true),
*params.NewProxyProvider(testutil.OptimismChainID, "Provider4", "https://proxyprovider2.example.com", true),
*testutil.CreateNetwork(api.OptimismChainID, "Optimism", []params.RpcProvider{
*params.NewDirectProvider(api.OptimismChainID, "Provider3", "https://directprovider.example.com", true),
*params.NewProxyProvider(api.OptimismChainID, "Provider4", "https://proxyprovider2.example.com", true),
}),
}
networks[0].RpcProviders[1].Enabled = false
Expand All @@ -82,7 +83,7 @@ func TestUpdateEmbeddedProxyProviders(t *testing.T) {
for j, provider := range networkCopy.RpcProviders {
expectedProvider := expectedNetwork.RpcProviders[j]
if provider.Type == params.EmbeddedProxyProviderType {
assert.Equal(t, true, provider.Enabled, "Provider Enabled state should be overridden")
assert.True(t, provider.Enabled, "Provider Enabled state should be overridden")
assert.Equal(t, user, provider.AuthLogin, "Provider AuthLogin should be overridden")
assert.Equal(t, password, provider.AuthPassword, "Provider AuthPassword should be overridden")
} else {
Expand All @@ -98,21 +99,21 @@ func TestUpdateEmbeddedProxyProviders(t *testing.T) {
func TestOverrideDirectProvidersAuth(t *testing.T) {
// Create a sample list of networks with various provider types
networks := []params.Network{
*testutil.CreateNetwork(testutil.EthereumChainID, "Ethereum Mainnet", []params.RpcProvider{
*params.NewUserProvider(testutil.EthereumChainID, "Provider1", "https://user.example.com/", true),
*params.NewDirectProvider(testutil.EthereumChainID, "Provider2", "https://mainnet.infura.io/v3/", true),
*params.NewDirectProvider(testutil.EthereumChainID, "Provider3", "https://eth-archival.rpc.grove.city/v1/", true),
*testutil.CreateNetwork(api.MainnetChainID, "Ethereum Mainnet", []params.RpcProvider{
*params.NewUserProvider(api.MainnetChainID, "Provider1", "https://user.example.com/", true),
*params.NewDirectProvider(api.MainnetChainID, "Provider2", "https://mainnet.infura.io/v3/", true),
*params.NewDirectProvider(api.MainnetChainID, "Provider3", "https://eth-archival.rpc.grove.city/v1/", true),
}),
*testutil.CreateNetwork(testutil.OptimismChainID, "Optimism", []params.RpcProvider{
*params.NewDirectProvider(testutil.OptimismChainID, "Provider4", "https://optimism.infura.io/v3/", true),
*params.NewDirectProvider(testutil.OptimismChainID, "Provider5", "https://op.grove.city/v1/", true),
*testutil.CreateNetwork(api.OptimismChainID, "Optimism", []params.RpcProvider{
*params.NewDirectProvider(api.OptimismChainID, "Provider4", "https://optimism.infura.io/v3/", true),
*params.NewDirectProvider(api.OptimismChainID, "Provider5", "https://op.grove.city/v1/", true),
}),
}

authTokens := map[string]string{
"infura.io": "infura-test-token",
"grove.city": "grove-test-token",
"example.com": "example-test-token",
"infura.io": gofakeit.UUID(),
"grove.city": gofakeit.UUID(),
"example.com": gofakeit.UUID(),
}

// Call OverrideDirectProvidersAuth
Expand Down Expand Up @@ -142,9 +143,9 @@ func TestOverrideDirectProvidersAuth(t *testing.T) {
func TestOverrideGanacheTokenOverrides(t *testing.T) {
// Create a sample list of networks with various ChainIDs
networks := []params.Network{
*testutil.CreateNetwork(testutil.EthereumChainID, "Ethereum Mainnet", nil),
*testutil.CreateNetwork(testutil.OptimismChainID, "Optimism", nil),
*testutil.CreateNetwork(testutil.EthereumChainID, "Mainnet Duplicate", nil),
*testutil.CreateNetwork(api.MainnetChainID, "Ethereum Mainnet", nil),
*testutil.CreateNetwork(api.OptimismChainID, "Optimism", nil),
*testutil.CreateNetwork(api.MainnetChainID, "Mainnet Duplicate", nil),
}

ganacheTokenOverride := params.TokenOverride{
Expand All @@ -153,11 +154,11 @@ func TestOverrideGanacheTokenOverrides(t *testing.T) {
}

// Call OverrideGanacheTokenOverrides
updatedNetworks := networkhelper.OverrideGanacheToken(networks, "url", testutil.EthereumChainID, ganacheTokenOverride)
updatedNetworks := networkhelper.OverrideGanacheToken(networks, "url", api.MainnetChainID, ganacheTokenOverride)

// Verify that only networks with the specified ChainID have the token override applied
for _, network := range updatedNetworks {
if network.ChainID == testutil.EthereumChainID {
if network.ChainID == api.MainnetChainID {
require.NotNil(t, network.TokenOverrides, "TokenOverrides should not be nil for ChainID %d", network.ChainID)
assert.Contains(t, network.TokenOverrides, ganacheTokenOverride, "TokenOverrides should contain the ganache token")
} else {
Expand Down
63 changes: 50 additions & 13 deletions params/networkhelper/validate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ package networkhelper
import (
"testing"

"github.com/stretchr/testify/require"

"gopkg.in/go-playground/validator.v9"

"github.com/status-im/status-go/params"
)

// Test suite for Network and RpcProvider validation
func TestValidation(t *testing.T) {
validate := validator.New()
validate := GetValidator()

// Test cases for RpcProvider
providerTests := []struct {
Expand Down Expand Up @@ -51,21 +52,58 @@ func TestValidation(t *testing.T) {
},
expectErr: true,
},
{
name: "BasicAuth without Login",
provider: params.RpcProvider{
ChainID: 1,
Name: "BasicAuth Provider",
URL: "https://provider.example.com",
Type: params.UserProviderType,
AuthType: params.BasicAuth,
},
expectErr: true,
},
{
name: "TokenAuth without Token",
provider: params.RpcProvider{
ChainID: 1,
Name: "TokenAuth Provider",
URL: "https://provider.example.com",
Type: params.UserProviderType,
AuthType: params.TokenAuth,
},
expectErr: true,
},
{
name: "NoAuth with Login",
provider: params.RpcProvider{
ChainID: 1,
Name: "NoAuth Provider",
URL: "https://provider.example.com",
Type: params.UserProviderType,
AuthType: params.NoAuth,
AuthLogin: "user",
},
expectErr: true,
},
}

for _, test := range providerTests {
t.Run("RpcProvider: "+test.name, func(t *testing.T) {
err := validate.Struct(test.provider)
if test.expectErr && err == nil {
t.Errorf("Expected error but got nil for test case '%s'", test.name)
}
if !test.expectErr && err != nil {
t.Errorf("Did not expect error but got '%v' for test case '%s'", err, test.name)
if test.expectErr {
require.Error(t, err, "Expected error but got nil for test case '%s'", test.name)
} else {
require.NoError(t, err, "Did not expect error but got '%v' for test case '%s'", err, test.name)
}
})
}
}

// Test cases for Network
func TestNetworkValidation(t *testing.T) {
validate := validator.New()

// Test cases for Network
networkTests := []struct {
name string
network params.Network
Expand Down Expand Up @@ -136,11 +174,10 @@ func TestValidation(t *testing.T) {
for _, test := range networkTests {
t.Run("Network: "+test.name, func(t *testing.T) {
err := validate.Struct(test.network)
if test.expectErr && err == nil {
t.Errorf("Expected error but got nil for test case '%s'", test.name)
}
if !test.expectErr && err != nil {
t.Errorf("Did not expect error but got '%v' for test case '%s'", err, test.name)
if test.expectErr {
require.Error(t, err, "Expected error but got nil for test case '%s'", test.name)
} else {
require.NoError(t, err, "Did not expect error but got '%v' for test case '%s'", err, test.name)
}
})
}
Expand Down
Loading

0 comments on commit 5df7c7e

Please sign in to comment.