From 84f8776bf74bbf525ab5e716d16b4e678c56a7a1 Mon Sep 17 00:00:00 2001 From: Sonic Date: Thu, 3 Jan 2019 17:18:50 +0800 Subject: core, indexer, dex: fix DexconApp block deliver after synced (#122) When starts a bp node to sync with the network, bc.chainLastHeight map may not be initialized yet. Just return error if we can not get chain last height when preparing payload and verify block. --- core/blockchain.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'core/blockchain.go') diff --git a/core/blockchain.go b/core/blockchain.go index 72837e324..d6e116008 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -395,12 +395,13 @@ func (bc *BlockChain) GetCostInConfirmedBlocks(chainID uint32, address common.Ad return cost, exist } -func (bc *BlockChain) GetChainLastConfirmedHeight(chainID uint32) uint64 { - val, ok := bc.chainLastHeight.Load(chainID) - if !ok { - panic(fmt.Errorf("failed to get chain last height, chainID = %d", chainID)) +func (bc *BlockChain) GetChainLastConfirmedHeight(chainID uint32) (uint64, bool) { + val := uint64(0) + v, ok := bc.chainLastHeight.Load(chainID) + if ok { + val = v.(uint64) } - return val.(uint64) + return val, ok } func (bc *BlockChain) GetAddressInfo(chainID uint32, address common.Address) ( -- cgit