From f9e8fba11b1e06794f89b7fb5175480a3eded5f2 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') diff --git a/core/blockchain.go b/core/blockchain.go index c5e2f6bf4..b4a2882dd 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 v1.2.3