@@ -11,7 +11,7 @@ import (
11
11
// preserving user-defined providers and maintaining the Enabled state.
12
12
func MergeProvidersPreservingUsersAndEnabledState (currentProviders , newProviders []params.RpcProvider ) []params.RpcProvider {
13
13
// Create a map for quick lookup of the Enabled state by Name
14
- enabledState := make (map [string ]bool )
14
+ enabledState := make (map [string ]bool , len ( currentProviders ) )
15
15
for _ , provider := range currentProviders {
16
16
enabledState [provider .Name ] = provider .Enabled
17
17
}
@@ -24,7 +24,7 @@ func MergeProvidersPreservingUsersAndEnabledState(currentProviders, newProviders
24
24
}
25
25
26
26
// Retain current providers of type UserProviderType and add them to the beginning of the list
27
- var mergedProviders []params.RpcProvider
27
+ mergedProviders := make ( []params.RpcProvider , 0 , len ( currentProviders ) + len ( newProviders ))
28
28
for _ , provider := range currentProviders {
29
29
if provider .Type == params .UserProviderType {
30
30
mergedProviders = append (mergedProviders , provider )
@@ -119,58 +119,51 @@ func OverrideEmbeddedProxyProviders(networks []params.Network, enabled bool, use
119
119
120
120
func OverrideDirectProvidersAuth (networks []params.Network , authTokens map [string ]string ) []params.Network {
121
121
updatedNetworks := make ([]params.Network , len (networks ))
122
- for i , network := range networks {
123
- updatedNetwork := network
124
- updatedProviders := make ([]params.RpcProvider , len (network .RpcProviders ))
122
+ copy (updatedNetworks , networks )
125
123
126
- for j , provider := range network .RpcProviders {
127
- updatedProvider := provider
128
-
129
- if provider .Type == params .EmbeddedDirectProviderType {
130
- host , err := extractHost (provider .URL )
131
- if err == nil {
132
- for suffix , token := range authTokens {
133
- if strings .HasSuffix (host , suffix ) && token != "" {
134
- updatedProvider .AuthType = params .TokenAuth
135
- updatedProvider .AuthToken = token
136
- break
137
- }
138
- }
139
- }
124
+ for i := range updatedNetworks {
125
+ network := & updatedNetworks [i ]
126
+
127
+ for j := range network .RpcProviders {
128
+ provider := & network .RpcProviders [j ]
129
+
130
+ if provider .Type != params .EmbeddedDirectProviderType {
131
+ continue
140
132
}
141
133
142
- updatedProviders [j ] = updatedProvider
143
- }
134
+ host , err := extractHost (provider .URL )
135
+ if err != nil {
136
+ continue
137
+ }
144
138
145
- updatedNetwork .RpcProviders = updatedProviders
146
- updatedNetworks [i ] = updatedNetwork
139
+ for suffix , token := range authTokens {
140
+ if strings .HasSuffix (host , suffix ) && token != "" {
141
+ provider .AuthType = params .TokenAuth
142
+ provider .AuthToken = token
143
+ break
144
+ }
145
+ }
146
+ }
147
147
}
148
148
return updatedNetworks
149
149
}
150
150
151
151
func OverrideGanacheToken (networks []params.Network , ganacheURL string , chainID uint64 , tokenOverride params.TokenOverride ) []params.Network {
152
152
updatedNetworks := make ([]params.Network , len (networks ))
153
- for i , network := range networks {
154
- updatedNetwork := network
153
+ copy (updatedNetworks , networks )
155
154
156
- if network . ChainID == chainID {
157
- updatedProviders := make ([]params. RpcProvider , len ( network . RpcProviders ))
155
+ for i := range updatedNetworks {
156
+ network := & updatedNetworks [ i ]
158
157
159
- for j , provider := range network .RpcProviders {
160
- updatedProvider := provider
161
- if ganacheURL != "" {
162
- updatedProvider .URL = ganacheURL
163
- }
164
- updatedProviders [j ] = updatedProvider
165
- }
166
-
167
- updatedNetwork .RpcProviders = updatedProviders
168
- updatedNetwork .TokenOverrides = []params.TokenOverride {
169
- tokenOverride ,
158
+ if network .ChainID != chainID {
159
+ continue
160
+ }
161
+ for j := range network .RpcProviders {
162
+ if ganacheURL != "" {
163
+ network .RpcProviders [j ].URL = ganacheURL
170
164
}
171
165
}
172
-
173
- updatedNetworks [i ] = updatedNetwork
166
+ network .TokenOverrides = []params.TokenOverride {tokenOverride }
174
167
}
175
168
return updatedNetworks
176
169
}
0 commit comments