File tree 1 file changed +20
-2
lines changed
consensus/istanbul/backend
1 file changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -119,8 +119,14 @@ func (sb *Backend) distributeEpochRewards(header *types.Header, state *state.Sta
119
119
return err
120
120
}
121
121
122
- if err := sb .distributeCommunityRewards (vmRunner , communityReward ); err != nil {
123
- return err
122
+ if sb .ChainConfig ().IsGFork (header .Number ) {
123
+ if err := sb .distributeCommunityRewards (vmRunner , communityReward ); err != nil {
124
+ return err
125
+ }
126
+ } else {
127
+ if err := sb .distributeCommunityRewardsWithReserveFallback (vmRunner , communityReward ); err != nil {
128
+ return err
129
+ }
124
130
}
125
131
126
132
if err := sb .distributeVoterRewards (vmRunner , valSet , totalVoterRewards , uptimes ); err != nil {
@@ -174,6 +180,18 @@ func (sb *Backend) distributeValidatorRewards(vmRunner vm.EVMRunner, valSet []is
174
180
}
175
181
176
182
func (sb * Backend ) distributeCommunityRewards (vmRunner vm.EVMRunner , communityReward * big.Int ) error {
183
+ governanceAddress , err := contracts .GetRegisteredAddress (vmRunner , config .GovernanceRegistryId )
184
+ if err != nil {
185
+ return err
186
+ }
187
+ if governanceAddress != common .ZeroAddress {
188
+ // TODO: How to split eco fund here
189
+ return gold_token .Mint (vmRunner , governanceAddress , communityReward )
190
+ }
191
+ return nil
192
+ }
193
+
194
+ func (sb * Backend ) distributeCommunityRewardsWithReserveFallback (vmRunner vm.EVMRunner , communityReward * big.Int ) error {
177
195
governanceAddress , err := contracts .GetRegisteredAddress (vmRunner , config .GovernanceRegistryId )
178
196
if err != nil {
179
197
return err
You can’t perform that action at this time.
0 commit comments