@@ -61,11 +61,11 @@ func RegisterExtras[C ChainConfigHooks, R RulesHooks](e Extras[C, R]) ExtraPaylo
61
61
62
62
getter := e .getter ()
63
63
registeredExtras = & extraConstructors {
64
- chainConfig : pseudo .NewConstructor [C ](),
65
- rules : pseudo .NewConstructor [R ](),
66
- reuseJSONRoot : e .ReuseJSONRoot ,
67
- newForRules : e .newForRules ,
68
- getter : getter ,
64
+ newChainConfig : pseudo .NewConstructor [C ](). Zero ,
65
+ newRules : pseudo .NewConstructor [R ](). Zero ,
66
+ reuseJSONRoot : e .ReuseJSONRoot ,
67
+ newForRules : e .newForRules ,
68
+ getter : getter ,
69
69
}
70
70
return getter
71
71
}
@@ -97,9 +97,9 @@ func TestOnlyClearRegisteredExtras() {
97
97
var registeredExtras * extraConstructors
98
98
99
99
type extraConstructors struct {
100
- chainConfig , rules pseudo.Constructor
101
- reuseJSONRoot bool
102
- newForRules func (_ * ChainConfig , _ * Rules , blockNum * big.Int , isMerge bool , timestamp uint64 ) * pseudo.Type
100
+ newChainConfig , newRules func () * pseudo.Type
101
+ reuseJSONRoot bool
102
+ newForRules func (_ * ChainConfig , _ * Rules , blockNum * big.Int , isMerge bool , timestamp uint64 ) * pseudo.Type
103
103
// use top-level hooksFrom<X>() functions instead of these as they handle
104
104
// instances where no [Extras] were registered.
105
105
getter interface {
@@ -110,7 +110,7 @@ type extraConstructors struct {
110
110
111
111
func (e * Extras [C , R ]) newForRules (c * ChainConfig , r * Rules , blockNum * big.Int , isMerge bool , timestamp uint64 ) * pseudo.Type {
112
112
if e .NewRules == nil {
113
- return registeredExtras .rules . Zero ()
113
+ return registeredExtras .newRules ()
114
114
}
115
115
rExtra := e .NewRules (c , r , e .getter ().FromChainConfig (c ), blockNum , isMerge , timestamp )
116
116
return pseudo .From (rExtra ).Type
@@ -190,7 +190,7 @@ func (c *ChainConfig) extraPayload() *pseudo.Type {
190
190
panic (fmt .Sprintf ("%T.ExtraPayload() called before RegisterExtras()" , c ))
191
191
}
192
192
if c .extra == nil {
193
- c .extra = registeredExtras .chainConfig . Zero ()
193
+ c .extra = registeredExtras .newChainConfig ()
194
194
}
195
195
return c .extra
196
196
}
@@ -202,7 +202,7 @@ func (r *Rules) extraPayload() *pseudo.Type {
202
202
panic (fmt .Sprintf ("%T.ExtraPayload() called before RegisterExtras()" , r ))
203
203
}
204
204
if r .extra == nil {
205
- r .extra = registeredExtras .rules . Zero ()
205
+ r .extra = registeredExtras .newRules ()
206
206
}
207
207
return r .extra
208
208
}
0 commit comments