mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
should handle crit error in backend file
This commit is contained in:
parent
8909b21925
commit
e5082863de
2 changed files with 11 additions and 13 deletions
|
|
@ -313,7 +313,8 @@ func GetRewardForCheckpoint(chain consensus.ChainReader, blockSignerAddr common.
|
||||||
block := chain.GetHeaderByNumber(i)
|
block := chain.GetHeaderByNumber(i)
|
||||||
addrs, err := GetSignersFromContract(blockSignerAddr, client, block.Hash())
|
addrs, err := GetSignersFromContract(blockSignerAddr, client, block.Hash())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Crit("Fail to get signers from smartcontract.", "error", err, "blockNumber", i)
|
log.Error("Fail to get signers from smartcontract.", "error", err, "blockNumber", i)
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
// Filter duplicate address.
|
// Filter duplicate address.
|
||||||
if len(addrs) > 0 {
|
if len(addrs) > 0 {
|
||||||
|
|
@ -410,7 +411,8 @@ func GetRewardBalancesRate(foudationWalletAddr common.Address, masterAddr common
|
||||||
opts := new(bind.CallOpts)
|
opts := new(bind.CallOpts)
|
||||||
voters, err := validator.GetVoters(opts, masterAddr)
|
voters, err := validator.GetVoters(opts, masterAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Crit("Fail to get voters", "error", err)
|
log.Error("Fail to get voters", "error", err)
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(voters) > 0 {
|
if len(voters) > 0 {
|
||||||
|
|
@ -422,7 +424,8 @@ func GetRewardBalancesRate(foudationWalletAddr common.Address, masterAddr common
|
||||||
for _, voteAddr := range voters {
|
for _, voteAddr := range voters {
|
||||||
voterCap, err := validator.GetVoterCap(opts, masterAddr, voteAddr)
|
voterCap, err := validator.GetVoterCap(opts, masterAddr, voteAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Crit("Fail to get vote capacity", "error", err)
|
log.Error("Fail to get vote capacity", "error", err)
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
totalCap.Add(totalCap, voterCap)
|
totalCap.Add(totalCap, voterCap)
|
||||||
|
|
|
||||||
|
|
@ -292,8 +292,7 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
|
||||||
c.HookReward = func(chain consensus.ChainReader, state *state.StateDB, header *types.Header) (error, map[string]interface{}) {
|
c.HookReward = func(chain consensus.ChainReader, state *state.StateDB, header *types.Header) (error, map[string]interface{}) {
|
||||||
client, err := eth.blockchain.GetClient()
|
client, err := eth.blockchain.GetClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Fail to connect IPC client for blockSigner", "error", err)
|
log.Crit("Fail to connect IPC client for blockSigner", "error", err)
|
||||||
return err, nil
|
|
||||||
}
|
}
|
||||||
number := header.Number.Uint64()
|
number := header.Number.Uint64()
|
||||||
rCheckpoint := chain.Config().Posv.RewardCheckpoint
|
rCheckpoint := chain.Config().Posv.RewardCheckpoint
|
||||||
|
|
@ -313,20 +312,17 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
|
||||||
totalSigner := new(uint64)
|
totalSigner := new(uint64)
|
||||||
signers, err := contracts.GetRewardForCheckpoint(chain, addr, number, rCheckpoint, client, totalSigner)
|
signers, err := contracts.GetRewardForCheckpoint(chain, addr, number, rCheckpoint, client, totalSigner)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Fail to get signers for reward checkpoint", "error", err)
|
log.Crit("Fail to get signers for reward checkpoint", "error", err)
|
||||||
return err, nil
|
|
||||||
}
|
}
|
||||||
rewards["signers"] = signers
|
rewards["signers"] = signers
|
||||||
rewardSigners, err := contracts.CalculateRewardForSigner(chainReward, signers, *totalSigner)
|
rewardSigners, err := contracts.CalculateRewardForSigner(chainReward, signers, *totalSigner)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Fail to calculate reward for signers", "error", err)
|
log.Crit("Fail to calculate reward for signers", "error", err)
|
||||||
return err, nil
|
|
||||||
}
|
}
|
||||||
// Get validator.
|
// Get validator.
|
||||||
validator, err := contract.NewTomoValidator(common.HexToAddress(common.MasternodeVotingSMC), client)
|
validator, err := contract.NewTomoValidator(common.HexToAddress(common.MasternodeVotingSMC), client)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Fail get instance of Tomo Validator", "error", err)
|
log.Crit("Fail get instance of Tomo Validator", "error", err)
|
||||||
return err, nil
|
|
||||||
}
|
}
|
||||||
// Add reward for coin holders.
|
// Add reward for coin holders.
|
||||||
voterResults := make(map[common.Address]interface{})
|
voterResults := make(map[common.Address]interface{})
|
||||||
|
|
@ -334,8 +330,7 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
|
||||||
for signer, calcReward := range rewardSigners {
|
for signer, calcReward := range rewardSigners {
|
||||||
err, rewards := contracts.CalculateRewardForHolders(foudationWalletAddr, validator, state, signer, calcReward)
|
err, rewards := contracts.CalculateRewardForHolders(foudationWalletAddr, validator, state, signer, calcReward)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Fail to calculate reward for holders.", "error", err)
|
log.Crit("Fail to calculate reward for holders.", "error", err)
|
||||||
return err, nil
|
|
||||||
}
|
}
|
||||||
voterResults[signer] = rewards
|
voterResults[signer] = rewards
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue