diff --git a/core/tx_pool.go b/core/tx_pool.go index 9f6016bc38..493d8115d2 100644 --- a/core/tx_pool.go +++ b/core/tx_pool.go @@ -586,7 +586,7 @@ func (pool *TxPool) validateTx(tx *types.Transaction, local bool) error { if pool.currentState.GetBalance(from).Cmp(tx.Cost()) < 0 { return ErrInsufficientFunds } - if tx.To().String() != common.BlockSigners { + if tx.To() != nil && tx.To().String() != common.BlockSigners { intrGas, err := IntrinsicGas(tx.Data(), tx.To() == nil, pool.homestead) if err != nil { return err diff --git a/eth/backend.go b/eth/backend.go index 7fcac749e0..c59bb5236a 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -217,7 +217,7 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) { if number > 0 && prevCheckpoint > 0 { // Not reward for singer of genesis block and only calculate reward at checkpoint block. startBlockNumber := number - (rCheckpoint * 2) + 1 - endBlockNumber := startBlockNumber + rCheckpoint - 2 + endBlockNumber := startBlockNumber + rCheckpoint - 1 signers := make(map[common.Address]*rewardLog) validators := make(map[common.Address]*rewardLog) totalSigner := uint64(0)