@@ -68,10 +68,17 @@ var (
6868 ElectraForkVersionHoodi = "0x60000910"
6969 ElectraForkVersionMainnet = "0x05000000"
7070
71+ FuluForkVersionHolesky = "0x07017000"
72+ FuluForkVersionSepolia = "0x90000075"
73+ FuluForkVersionGoerli = "0x06001020"
74+ FuluForkVersionHoodi = "0x70000910"
75+ FuluForkVersionMainnet = "0x06000000"
76+
7177 ForkVersionStringBellatrix = "bellatrix"
7278 ForkVersionStringCapella = "capella"
7379 ForkVersionStringDeneb = "deneb"
7480 ForkVersionStringElectra = "electra"
81+ ForkVersionStringFulu = "fulu"
7582)
7683
7784type EthNetworkDetails struct {
@@ -82,12 +89,14 @@ type EthNetworkDetails struct {
8289 CapellaForkVersionHex string
8390 DenebForkVersionHex string
8491 ElectraForkVersionHex string
92+ FuluForkVersionHex string
8593
8694 DomainBuilder phase0.Domain
8795 DomainBeaconProposerBellatrix phase0.Domain
8896 DomainBeaconProposerCapella phase0.Domain
8997 DomainBeaconProposerDeneb phase0.Domain
9098 DomainBeaconProposerElectra phase0.Domain
99+ DomainBeaconProposerFulu phase0.Domain
91100}
92101
93102func NewEthNetworkDetails (networkName string ) (ret * EthNetworkDetails , err error ) {
@@ -97,11 +106,13 @@ func NewEthNetworkDetails(networkName string) (ret *EthNetworkDetails, err error
97106 var capellaForkVersion string
98107 var denebForkVersion string
99108 var electraForkVersion string
109+ var fuluForkVersion string
100110 var domainBuilder phase0.Domain
101111 var domainBeaconProposerBellatrix phase0.Domain
102112 var domainBeaconProposerCapella phase0.Domain
103113 var domainBeaconProposerDeneb phase0.Domain
104114 var domainBeaconProposerElectra phase0.Domain
115+ var domainBeaconProposerFulu phase0.Domain
105116
106117 switch networkName {
107118 case EthNetworkHolesky :
@@ -111,41 +122,47 @@ func NewEthNetworkDetails(networkName string) (ret *EthNetworkDetails, err error
111122 capellaForkVersion = CapellaForkVersionHolesky
112123 denebForkVersion = DenebForkVersionHolesky
113124 electraForkVersion = ElectraForkVersionHolesky
125+ fuluForkVersion = FuluForkVersionHolesky
114126 case EthNetworkSepolia :
115127 genesisForkVersion = GenesisForkVersionSepolia
116128 genesisValidatorsRoot = GenesisValidatorsRootSepolia
117129 bellatrixForkVersion = BellatrixForkVersionSepolia
118130 capellaForkVersion = CapellaForkVersionSepolia
119131 denebForkVersion = DenebForkVersionSepolia
120132 electraForkVersion = ElectraForkVersionSepolia
133+ fuluForkVersion = FuluForkVersionSepolia
121134 case EthNetworkGoerli :
122135 genesisForkVersion = GenesisForkVersionGoerli
123136 genesisValidatorsRoot = GenesisValidatorsRootGoerli
124137 bellatrixForkVersion = BellatrixForkVersionGoerli
125138 capellaForkVersion = CapellaForkVersionGoerli
126139 denebForkVersion = DenebForkVersionGoerli
127140 electraForkVersion = ElectraForkVersionGoerli
141+ fuluForkVersion = FuluForkVersionGoerli
128142 case EthNetworkHoodi :
129143 genesisForkVersion = GenesisForkVersionHoodi
130144 genesisValidatorsRoot = GenesisValidatorsRootHoodi
131145 bellatrixForkVersion = BellatrixForkVersionHoodi
132146 capellaForkVersion = CapellaForkVersionHoodi
133147 denebForkVersion = DenebForkVersionHoodi
134148 electraForkVersion = ElectraForkVersionHoodi
149+ fuluForkVersion = FuluForkVersionHoodi
135150 case EthNetworkMainnet :
136151 genesisForkVersion = GenesisForkVersionMainnet
137152 genesisValidatorsRoot = GenesisValidatorsRootMainnet
138153 bellatrixForkVersion = BellatrixForkVersionMainnet
139154 capellaForkVersion = CapellaForkVersionMainnet
140155 denebForkVersion = DenebForkVersionMainnet
141156 electraForkVersion = ElectraForkVersionMainnet
157+ fuluForkVersion = FuluForkVersionMainnet
142158 case EthNetworkCustom :
143159 genesisForkVersion = os .Getenv ("GENESIS_FORK_VERSION" )
144160 genesisValidatorsRoot = os .Getenv ("GENESIS_VALIDATORS_ROOT" )
145161 bellatrixForkVersion = os .Getenv ("BELLATRIX_FORK_VERSION" )
146162 capellaForkVersion = os .Getenv ("CAPELLA_FORK_VERSION" )
147163 denebForkVersion = os .Getenv ("DENEB_FORK_VERSION" )
148164 electraForkVersion = os .Getenv ("ELECTRA_FORK_VERSION" )
165+ fuluForkVersion = os .Getenv ("FULU_FORK_VERSION" )
149166 default :
150167 return nil , fmt .Errorf ("%w: %s" , ErrUnknownNetwork , networkName )
151168 }
@@ -175,6 +192,11 @@ func NewEthNetworkDetails(networkName string) (ret *EthNetworkDetails, err error
175192 return nil , err
176193 }
177194
195+ domainBeaconProposerFulu , err = ComputeDomain (boostSsz .DomainTypeBeaconProposer , fuluForkVersion , genesisValidatorsRoot )
196+ if err != nil {
197+ return nil , err
198+ }
199+
178200 return & EthNetworkDetails {
179201 Name : networkName ,
180202 GenesisForkVersionHex : genesisForkVersion ,
@@ -183,11 +205,13 @@ func NewEthNetworkDetails(networkName string) (ret *EthNetworkDetails, err error
183205 CapellaForkVersionHex : capellaForkVersion ,
184206 DenebForkVersionHex : denebForkVersion ,
185207 ElectraForkVersionHex : electraForkVersion ,
208+ FuluForkVersionHex : fuluForkVersion ,
186209 DomainBuilder : domainBuilder ,
187210 DomainBeaconProposerBellatrix : domainBeaconProposerBellatrix ,
188211 DomainBeaconProposerCapella : domainBeaconProposerCapella ,
189212 DomainBeaconProposerDeneb : domainBeaconProposerDeneb ,
190213 DomainBeaconProposerElectra : domainBeaconProposerElectra ,
214+ DomainBeaconProposerFulu : domainBeaconProposerFulu ,
191215 }, nil
192216}
193217
@@ -206,6 +230,7 @@ func (e *EthNetworkDetails) String() string {
206230 DomainBeaconProposerCapella: %x,
207231 DomainBeaconProposerDeneb: %x
208232 DomainBeaconProposerElectra: %x
233+ DomainBeaconProposerFulu: %x
209234}` ,
210235 e .Name ,
211236 e .GenesisForkVersionHex ,
@@ -218,7 +243,8 @@ func (e *EthNetworkDetails) String() string {
218243 e .DomainBeaconProposerBellatrix ,
219244 e .DomainBeaconProposerCapella ,
220245 e .DomainBeaconProposerDeneb ,
221- e .DomainBeaconProposerElectra )
246+ e .DomainBeaconProposerElectra ,
247+ e .DomainBeaconProposerFulu )
222248}
223249
224250// PubkeyHex represents a hex-encoded public key.
0 commit comments