@@ -2,9 +2,10 @@ package network_test
2
2
3
3
import (
4
4
"database/sql"
5
- "github.com/status-im/status-go/api"
6
5
"testing"
7
6
7
+ "github.com/status-im/status-go/api"
8
+
8
9
"github.com/status-im/status-go/appdatabase"
9
10
"github.com/status-im/status-go/params"
10
11
"github.com/status-im/status-go/params/networkhelper"
@@ -36,14 +37,12 @@ func (s *NetworkManagerTestSuite) SetupTest() {
36
37
initNetworks := []params.Network {
37
38
* testutil .CreateNetwork (api .MainnetChainID , "Ethereum Mainnet" , []params.RpcProvider {
38
39
testutil .CreateProvider (api .MainnetChainID , "Infura Mainnet" , params .UserProviderType , true , "https://mainnet.infura.io" ),
39
- testutil .CreateProvider (api .MainnetChainID , "Backup Mainnet" , params .EmbeddedProxyProviderType , false , "https://backup.mainnet.provider.com" ),
40
40
}),
41
41
* testutil .CreateNetwork (api .SepoliaChainID , "Sepolia Testnet" , []params.RpcProvider {
42
42
testutil .CreateProvider (api .SepoliaChainID , "Infura Sepolia" , params .UserProviderType , true , "https://sepolia.infura.io" ),
43
43
}),
44
44
* testutil .CreateNetwork (api .OptimismChainID , "Optimistic Ethereum" , []params.RpcProvider {
45
45
testutil .CreateProvider (api .OptimismChainID , "Infura Optimism" , params .UserProviderType , true , "https://optimism.infura.io" ),
46
- testutil .CreateProvider (api .OptimismChainID , "Backup Optimism" , params .EmbeddedDirectProviderType , false , "https://backup.optimism.provider.com" ),
47
46
}),
48
47
}
49
48
err = persistence .SetNetworks (initNetworks )
@@ -75,29 +74,6 @@ func (s *NetworkManagerTestSuite) assertDbNetworks(expectedNetworks []params.Net
75
74
testutil .CompareNetworksList (s .T (), expectedNetworksPtr , savedNetworks )
76
75
}
77
76
78
- func (s * NetworkManagerTestSuite ) TestInitNetworksWithChangedAuth () {
79
- // Change auth token for a provider
80
- updatedNetworks := []params.Network {
81
- * testutil .CreateNetwork (api .MainnetChainID , "Ethereum Mainnet" , []params.RpcProvider {
82
- testutil .CreateProvider (api .MainnetChainID , "Infura Mainnet" , params .UserProviderType , true , "https://mainnet.infura.io" ),
83
- {
84
- Name : "Backup Mainnet" ,
85
- ChainID : api .MainnetChainID ,
86
- Type : params .EmbeddedProxyProviderType ,
87
- Enabled : false ,
88
- URL : "https://backup.mainnet.provider.com" ,
89
- AuthType : params .TokenAuth ,
90
- AuthToken : "new-token" ,
91
- },
92
- }),
93
- }
94
-
95
- // Re-initialize and assert
96
- err := s .manager .InitEmbeddedNetworks (updatedNetworks )
97
- s .Require ().NoError (err )
98
- s .assertDbNetworks (updatedNetworks )
99
- }
100
-
101
77
func (s * NetworkManagerTestSuite ) TestUserAddsCustomProviders () {
102
78
// Adding custom providers
103
79
customProviders := []params.RpcProvider {
@@ -126,7 +102,7 @@ func (s *NetworkManagerTestSuite) TestInitNetworksKeepsUserProviders() {
126
102
// Re-initialize networks
127
103
initNetworks := []params.Network {
128
104
* testutil .CreateNetwork (api .MainnetChainID , "Ethereum Mainnet" , []params.RpcProvider {
129
- testutil .CreateProvider (api .MainnetChainID , "Infura Mainnet" , params .UserProviderType , true , "https://mainnet.infura.io" ),
105
+ testutil .CreateProvider (api .MainnetChainID , "Infura Mainnet" , params .EmbeddedProxyProviderType , true , "https://mainnet.infura.io" ),
130
106
}),
131
107
}
132
108
err = s .manager .InitEmbeddedNetworks (initNetworks )
@@ -139,6 +115,81 @@ func (s *NetworkManagerTestSuite) TestInitNetworksKeepsUserProviders() {
139
115
testutil .CompareProvidersList (s .T (), expectedProviders , foundNetwork .RpcProviders )
140
116
}
141
117
118
+ func (s * NetworkManagerTestSuite ) TestInitNetworksDoesNotSaveEmbeddedProviders () {
119
+ persistence := db .NewNetworksPersistence (s .db )
120
+ s .Require ().NoError (persistence .DeleteAllNetworks ())
121
+
122
+ // Re-initialize networks
123
+ initNetworks := []params.Network {
124
+ * testutil .CreateNetwork (api .MainnetChainID , "Ethereum Mainnet" , []params.RpcProvider {
125
+ testutil .CreateProvider (api .MainnetChainID , "Infura Mainnet" , params .EmbeddedProxyProviderType , true , "https://mainnet.infura.io" ),
126
+ }),
127
+ }
128
+ err := s .manager .InitEmbeddedNetworks (initNetworks )
129
+ s .Require ().NoError (err )
130
+
131
+ // Check that embedded providers are not saved using persistence
132
+ networks , err := persistence .GetNetworks (false , nil )
133
+ s .Require ().NoError (err )
134
+ s .Require ().Len (networks , 1 )
135
+ s .Require ().Len (networks [0 ].RpcProviders , 0 )
136
+ }
137
+
138
+ func (s * NetworkManagerTestSuite ) TestInitEmbeddedNetworks () {
139
+ // Re-initialize networks
140
+ initNetworks := []params.Network {
141
+ * testutil .CreateNetwork (api .MainnetChainID , "Ethereum Mainnet" , []params.RpcProvider {
142
+ testutil .CreateProvider (api .MainnetChainID , "Infura Mainnet" , params .EmbeddedProxyProviderType , true , "https://mainnet.infura.io" ),
143
+ }),
144
+ }
145
+ expectedProviders := networkhelper .GetEmbeddedProviders (initNetworks [0 ].RpcProviders )
146
+ err := s .manager .InitEmbeddedNetworks (initNetworks )
147
+ s .Require ().NoError (err )
148
+
149
+ // functor tests if embedded providers are present in the networks
150
+ expectEmbeddedProviders := func (networks []* params.Network ) {
151
+ for _ , network := range networks {
152
+ if network .ChainID == api .MainnetChainID {
153
+ storedEmbeddedProviders := networkhelper .GetEmbeddedProviders (network .RpcProviders )
154
+ testutil .CompareProvidersList (s .T (), expectedProviders , storedEmbeddedProviders )
155
+ }
156
+ }
157
+ }
158
+
159
+ // GetAll
160
+ networks , err := s .manager .GetAll ()
161
+ s .Require ().NoError (err )
162
+ expectEmbeddedProviders (networks )
163
+
164
+ // Get
165
+ networks , err = s .manager .Get (false )
166
+ s .Require ().NoError (err )
167
+ expectEmbeddedProviders (networks )
168
+
169
+ // GetActiveNetworks
170
+ networks , err = s .manager .GetActiveNetworks ()
171
+ s .Require ().NoError (err )
172
+ expectEmbeddedProviders (networks )
173
+
174
+ // GetCombinedNetworks
175
+ combinedNetworks , err := s .manager .GetCombinedNetworks ()
176
+ s .Require ().NoError (err )
177
+ for _ , combinedNetwork := range combinedNetworks {
178
+ if combinedNetwork .Test != nil && combinedNetwork .Test .ChainID == api .MainnetChainID {
179
+ storedEmbeddedProviders := networkhelper .GetEmbeddedProviders (combinedNetwork .Test .RpcProviders )
180
+ testutil .CompareProvidersList (s .T (), expectedProviders , storedEmbeddedProviders )
181
+ }
182
+ if combinedNetwork .Prod != nil && combinedNetwork .Prod .ChainID == api .MainnetChainID {
183
+ storedEmbeddedProviders := networkhelper .GetEmbeddedProviders (combinedNetwork .Prod .RpcProviders )
184
+ testutil .CompareProvidersList (s .T (), expectedProviders , storedEmbeddedProviders )
185
+ }
186
+ }
187
+
188
+ // GetEmbeddedNetworks
189
+ embeddedNetworks := s .manager .GetEmbeddedNetworks ()
190
+ expectEmbeddedProviders (testutil .ConvertNetworksToPointers (embeddedNetworks ))
191
+ }
192
+
142
193
func (s * NetworkManagerTestSuite ) TestLegacyFieldPopulation () {
143
194
// Create initial test networks with various providers
144
195
initNetworks := []params.Network {
@@ -206,3 +257,22 @@ func (s *NetworkManagerTestSuite) TestLegacyFieldPopulationWithoutUserProviders(
206
257
s .Equal ("https://proxy2.sepolia.io" , network .DefaultFallbackURL )
207
258
s .Empty (network .DefaultFallbackURL2 ) // No third Proxy provider
208
259
}
260
+
261
+ func (s * NetworkManagerTestSuite ) TestUpsertNetwork () {
262
+ // Create a new network
263
+ newNetwork := testutil .CreateNetwork (api .MainnetChainID , "Ethereum Mainnet" , []params.RpcProvider {
264
+ testutil .CreateProvider (api .MainnetChainID , "Infura Mainnet" , params .EmbeddedProxyProviderType , true , "https://mainnet.infura.io" ),
265
+ })
266
+
267
+ // Upsert the network
268
+ err := s .manager .Upsert (newNetwork )
269
+ s .Require ().NoError (err )
270
+
271
+ // Verify the network was upserted without embedded providers
272
+ persistence := db .NewNetworksPersistence (s .db )
273
+ chainID := api .MainnetChainID
274
+ networks , err := persistence .GetNetworks (false , & chainID )
275
+ s .Require ().NoError (err )
276
+ s .Require ().Len (networks , 1 )
277
+ s .Require ().Len (networkhelper .GetEmbeddedProviders (networks [0 ].RpcProviders ), 0 )
278
+ }
0 commit comments