v.countReward()
// send transactions
- if err := v.sendRewardTransaction(); err != nil {
- panic(err)
- }
+ v.sendRewardTransaction()
+
}
func (v *Vote) getCoinbaseReward() error {
}
}
-func (v *Vote) sendRewardTransaction() error {
+func (v *Vote) sendRewardTransaction() {
for _, node := range v.nodes {
coinbaseReward, ok := v.coinBaseReward[node.XPub]
if !ok {
if voterRewards, ok := v.voterRewards[node.XPub]; ok {
txID, err := v.sendReward(coinbaseReward.totalReward, node, voterRewards)
if err != nil {
- return err
+ log.WithFields(log.Fields{"error": err, "node": node}).Error("send reward transaction")
+ continue
}
log.Info("tx_id: ", txID)
}
}
close(v.quit)
- return nil
}
func (v *Vote) sendReward(coinbaseReward uint64, node config.VoteRewardConfig, voterReward *voterReward) (string, error) {
"github.com/jinzhu/gorm"
log "github.com/sirupsen/logrus"
+ cmn "github.com/tendermint/tmlibs/common"
"github.com/vapor/errors"
"github.com/vapor/protocol/bc"
if err == gorm.ErrRecordNotFound {
blockStr, _, err := keeper.node.GetBlockByHeight(0)
if err != nil {
- panic(err)
+ cmn.Exit(cmn.Fmt("Failed to get genenis block:[%s]", err.Error()))
}
block := &types.Block{}
if err := block.UnmarshalText([]byte(blockStr)); err != nil {
- panic(err)
+ cmn.Exit(cmn.Fmt("unmarshal block:[%s]", err.Error()))
}
if err := keeper.insertBlockState(db, block); err != nil {
- panic(err)
+ cmn.Exit(cmn.Fmt("Failed to insert blockState:[%s]", err.Error()))
}
} else {
- panic(err)
+ cmn.Exit(cmn.Fmt("Failed to get blockState:[%s]", err.Error()))
}
}