@@ -38,8 +38,11 @@ func newChainSyncFlags() *chainSyncFlags {
3838}
3939
4040// Intersect points (last block of previous era) for each era on testnet/mainnet
41- var eraIntersect = map [int ]map [string ][]interface {}{
42- TESTNET_MAGIC : map [string ][]interface {}{
41+ var eraIntersect = map [string ]map [string ][]interface {}{
42+ "unknown" : map [string ][]interface {}{
43+ "genesis" : []interface {}{},
44+ },
45+ "testnet" : map [string ][]interface {}{
4346 "genesis" : []interface {}{},
4447 "byron" : []interface {}{},
4548 // Last block of epoch 73 (Byron era)
@@ -53,7 +56,7 @@ var eraIntersect = map[int]map[string][]interface{}{
5356 // Last block of epoch 214 (Alonzo era)
5457 "babbage" : []interface {}{62510369 , "d931221f9bc4cae34de422d9f4281a2b0344e86aac6b31eb54e2ee90f44a09b9" },
5558 },
56- MAINNET_MAGIC : map [string ][]interface {}{
59+ "mainnet" : map [string ][]interface {}{
5760 "genesis" : []interface {}{},
5861 "byron" : []interface {}{},
5962 // Last block of epoch 207 (Byron era)
@@ -66,11 +69,11 @@ var eraIntersect = map[int]map[string][]interface{}{
6669 "alonzo" : []interface {}{39916796 , "e72579ff89dc9ed325b723a33624b596c08141c7bd573ecfff56a1f7229e4d09" },
6770 // TODO: add Babbage starting point after mainnet hard fork
6871 },
69- PREPROD_MAGIC : map [string ][]interface {}{
72+ "preprod" : map [string ][]interface {}{
7073 "genesis" : []interface {}{},
7174 "alonzo" : []interface {}{},
7275 },
73- PREVIEW_MAGIC : map [string ][]interface {}{
76+ "preview" : map [string ][]interface {}{
7477 "genesis" : []interface {}{},
7578 "alonzo" : []interface {}{},
7679 // Last block of epoch 3 (Alonzo era)
@@ -102,9 +105,19 @@ func testChainSync(f *globalFlags) {
102105 os .Exit (1 )
103106 }
104107
105- if _ , ok := eraIntersect [f.networkMagic ][chainSyncFlags.startEra ]; ! ok {
106- fmt .Printf ("ERROR: unknown era '%s' specified as chain-sync start point\n " , chainSyncFlags .startEra )
107- os .Exit (1 )
108+ var intersectPoint []interface {}
109+ if _ , ok := eraIntersect [f .network ]; ! ok {
110+ if chainSyncFlags .startEra != "genesis" {
111+ fmt .Printf ("ERROR: only 'genesis' is supported for -start-era for unknown networks\n " )
112+ os .Exit (1 )
113+ }
114+ intersectPoint = eraIntersect ["unknown" ]["genesis" ]
115+ } else {
116+ if _ , ok := eraIntersect [f.network ][chainSyncFlags.startEra ]; ! ok {
117+ fmt .Printf ("ERROR: unknown era '%s' specified as chain-sync start point\n " , chainSyncFlags .startEra )
118+ os .Exit (1 )
119+ }
120+ intersectPoint = eraIntersect [f.network ][chainSyncFlags.startEra ]
108121 }
109122
110123 conn := createClientConnection (f )
@@ -144,11 +157,11 @@ func testChainSync(f *globalFlags) {
144157 os .Exit (1 )
145158 }
146159 point = tip .Point
147- } else if len (eraIntersect [f. networkMagic ][chainSyncFlags. startEra ] ) > 0 {
160+ } else if len (intersectPoint ) > 0 {
148161 // Slot
149- slot := uint64 (eraIntersect [f. networkMagic ][chainSyncFlags. startEra ] [0 ].(int ))
162+ slot := uint64 (intersectPoint [0 ].(int ))
150163 // Block hash
151- hash , _ := hex .DecodeString (eraIntersect [f. networkMagic ][chainSyncFlags. startEra ] [1 ].(string ))
164+ hash , _ := hex .DecodeString (intersectPoint [1 ].(string ))
152165 point = common .NewPoint (slot , hash )
153166 } else {
154167 point = common .NewPointOrigin ()
0 commit comments