@@ -83,6 +83,7 @@ type receiver struct {
8383 l log.Logger
8484 src types.BtpAddress
8585 dst types.BtpAddress
86+ bn BeaconNetwork
8687 cl * client.ConsensusLayer
8788 el * client.ExecutionLayer
8889 bmc * client.BMC
@@ -114,14 +115,21 @@ func newReceiver(src, dst types.BtpAddress, endpoint string, opt map[string]inte
114115 ht : make (map [int64 ]* ssz.Node ),
115116 cp : make (map [int64 ]* phase0.BeaconBlockHeader ),
116117 }
117- r .el , err = client .NewExecutionLayer (endpoint , l )
118- if err != nil {
119- l .Panicf ("failed to connect to %s, %v" , endpoint , err )
120- }
118+
121119 r .cl , err = client .NewConsensusLayer (opt ["consensus_endpoint" ].(string ), l )
122120 if err != nil {
123121 l .Panicf ("failed to connect to %s, %v" , opt ["consensus_endpoint" ].(string ), err )
124122 }
123+ r .bn , err = getBeaconNetwork (r .cl )
124+ if err != nil {
125+ l .Panicf ("fail to get beacon network, %v" , err )
126+ }
127+ r .l .Debugf ("Detected beacon network : %s" , r .bn .String ())
128+
129+ r .el , err = client .NewExecutionLayer (endpoint , l )
130+ if err != nil {
131+ l .Panicf ("failed to connect to %s, %v" , endpoint , err )
132+ }
125133 r .bmc , err = client .NewBMC (common .HexToAddress (r .src .ContractAddress ()), r .el .GetBackend ())
126134 if err != nil {
127135 l .Panicf ("fail to get instance of BMC %s, %v" , r .src .ContractAddress (), err )
@@ -332,7 +340,7 @@ func (r *receiver) blockProofDataViaBlockRoots(bls *types.BMCLinkStatus, mp *mes
332340
333341func (r * receiver ) blockProofDataViaHistoricalSummaries (bls * types.BMCLinkStatus , mp * messageProofData ) (* blockProofData , error ) {
334342 header := mp .Header .Beacon
335- gindex := proof .HistoricalSummariesIdxToGIndex (SlotToHistoricalSummariesIndex (header .Slot ))
343+ gindex := proof .HistoricalSummariesIdxToGIndex (SlotToHistoricalSummariesIndex (r . bn , header .Slot ))
336344 r .l .Debugf ("make blockProofData with historicalSummaries. finalized: %d, slot:%d, gIndex:%d" ,
337345 bls .Verifier .Height , header .Slot , gindex )
338346 bp , err := r .cl .GetStateProofWithGIndex (strconv .FormatInt (bls .Verifier .Height , 10 ), gindex )
@@ -363,7 +371,7 @@ func (r *receiver) blockProofDataViaHistoricalSummaries(bls *types.BMCLinkStatus
363371
364372func (r * receiver ) getHistoricalSummariesTrie (slot int64 ) (* ssz.Node , error ) {
365373 roots := make ([][]byte , SlotPerHistoricalRoot )
366- start := int64 (HistoricalSummariesStartSlot (phase0 .Slot (slot )))
374+ start := int64 (HistoricalSummariesStartSlot (r . bn , phase0 .Slot (slot )))
367375 r .l .Debugf ("getHistoricalSummariesTrie slot:%d start:%d" , slot , start )
368376 if ht , ok := r .ht [start ]; ! ok {
369377 var prevRoot []byte
0 commit comments