@@ -30,6 +30,8 @@ const (
30
30
type NetworkState struct {
31
31
// Map from subnet id to elastic subnet tx id
32
32
SubnetID2ElasticSubnetID map [string ]string `json:"subnetID2ElasticSubnetID"`
33
+ // Map from blockchain id to blockchain aliases
34
+ BlockchainAliases map [string ][]string `json:"blockchainAliases"`
33
35
}
34
36
35
37
// snapshots generated using older ANR versions may contain deprecated avago flags
@@ -203,6 +205,7 @@ func (ln *localNetwork) SaveSnapshot(ctx context.Context, snapshotName string) (
203
205
}
204
206
networkState := NetworkState {
205
207
SubnetID2ElasticSubnetID : subnetID2ElasticSubnetID ,
208
+ BlockchainAliases : ln .blockchainAliases ,
206
209
}
207
210
networkStateJSON , err := json .MarshalIndent (networkState , "" , " " )
208
211
if err != nil {
@@ -328,13 +331,23 @@ func (ln *localNetwork) loadSnapshot(
328
331
}
329
332
ln .subnetID2ElasticSubnetID [subnetID ] = elasticSubnetID
330
333
}
334
+ ln .blockchainAliases = networkState .BlockchainAliases
331
335
}
332
336
if err := ln .loadConfig (ctx , networkConfig ); err != nil {
333
337
return err
334
338
}
335
339
if err := ln .healthy (ctx ); err != nil {
336
340
return err
337
341
}
342
+ // add aliases included in the snapshot state
343
+ for blockchainID , blockchainAliases := range ln .blockchainAliases {
344
+ for _ , blockchainAlias := range blockchainAliases {
345
+ if err := ln .setBlockchainAlias (ctx , blockchainID , blockchainAlias ); err != nil {
346
+ return err
347
+ }
348
+ }
349
+ }
350
+ // add aliases for blockchain names
338
351
node := ln .getNode ()
339
352
blockchains , err := node .GetAPIClient ().PChainAPI ().GetBlockchains (ctx )
340
353
if err != nil {
@@ -344,10 +357,9 @@ func (ln *localNetwork) loadSnapshot(
344
357
if blockchain .Name == "C-Chain" || blockchain .Name == "X-Chain" {
345
358
continue
346
359
}
347
- for nodeName , node := range ln .nodes {
348
- if err := node .client .AdminAPI ().AliasChain (ctx , blockchain .ID .String (), blockchain .Name ); err != nil {
349
- return fmt .Errorf ("failure to register blockchain alias %v on node %v: %w" , blockchain .Name , nodeName , err )
350
- }
360
+ if err := ln .setBlockchainAlias (ctx , blockchain .ID .String (), blockchain .Name ); err != nil {
361
+ // non fatal error: not required by user
362
+ ln .log .Warn (err .Error ())
351
363
}
352
364
}
353
365
return nil
0 commit comments