From 584d60c63f5e3084e378a947cb97bd2af6e58abe Mon Sep 17 00:00:00 2001 From: Nguyen Sy Thanh Son Date: Mon, 14 Jan 2019 12:09:20 +0000 Subject: [PATCH] db receipt lacks txs --- contracts/utils.go | 6 +++--- eth/backend.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/utils.go b/contracts/utils.go index 15be3165d2..e8967b6fdb 100644 --- a/contracts/utils.go +++ b/contracts/utils.go @@ -307,7 +307,7 @@ func DecryptRandomizeFromSecretsAndOpening(secrets [][32]byte, opening [32]byte) } // Calculate reward for reward checkpoint. -func GetRewardForCheckpoint(c *posv.Posv, chain consensus.ChainReader, number uint64, rCheckpoint uint64, totalSigner *uint64) (map[common.Address]*rewardLog, error) { +func GetRewardForCheckpoint(chainDb ethdb.Database, c *posv.Posv, chain consensus.ChainReader, number uint64, rCheckpoint uint64, totalSigner *uint64) (map[common.Address]*rewardLog, error) { // Not reward for singer of genesis block and only calculate reward at checkpoint block. prevCheckpoint := number - (rCheckpoint * 2) startBlockNumber := prevCheckpoint + 1 @@ -332,12 +332,12 @@ func GetRewardForCheckpoint(c *posv.Posv, chain consensus.ChainReader, number ui log.Debug("Failed get from cached", "hash", header.Hash().String(), "number", i) block := chain.GetBlock(header.Hash(), i) txs := block.Transactions() - receipts := core.GetBlockReceipts(c.GetDb(), header.Hash(), i) + receipts := core.GetBlockReceipts(chainDb, header.Hash(), i) var signTxs []*types.Transaction for _, tx := range txs { if tx.IsSigningTransaction() { - var b uint + b := types.ReceiptStatusSuccessful for _, r := range receipts { if r.TxHash == tx.Hash() { b = r.Status diff --git a/eth/backend.go b/eth/backend.go index cdd9788b71..c50b4adf8a 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -312,7 +312,7 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) { chainReward = rewardInflation(chainReward, number, common.BlocksPerYear) totalSigner := new(uint64) - signers, err := contracts.GetRewardForCheckpoint(c, chain, number, rCheckpoint, totalSigner) + signers, err := contracts.GetRewardForCheckpoint(eth.chainDb, c, chain, number, rCheckpoint, totalSigner) log.Debug("Time Get Signers", "block", header.Number.Uint64(), "time", common.PrettyDuration(time.Since(start))) if err != nil {