From c7a711c1f14c6c9f7e97ba9cff0e086bdfe20e1c Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Sat, 7 Jan 2023 01:11:58 +0100 Subject: [PATCH] Fix handling of invalid contract info --- api/worker.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/api/worker.go b/api/worker.go index 150bbe5b..1f78db72 100644 --- a/api/worker.go +++ b/api/worker.go @@ -619,17 +619,19 @@ func (w *Worker) getContractDescriptorInfo(cd bchain.AddressDescriptor, typeFrom if err != nil { glog.Errorf("GetContractInfo from chain error %v, contract %v", err, cd) } else { - if len(blockchainContractInfo.Name) > 0 && blockchainContractInfo.Name[0] != 0 { + if blockchainContractInfo != nil && len(blockchainContractInfo.Name) > 0 && blockchainContractInfo.Name[0] != 0 { contractInfo.Name = blockchainContractInfo.Name } else { contractInfo.Name = "" } - if len(blockchainContractInfo.Symbol) > 0 && blockchainContractInfo.Symbol[0] != 0 { + if blockchainContractInfo != nil && len(blockchainContractInfo.Symbol) > 0 && blockchainContractInfo.Symbol[0] != 0 { contractInfo.Symbol = blockchainContractInfo.Symbol } else { contractInfo.Symbol = "" } - contractInfo.Decimals = blockchainContractInfo.Decimals + if blockchainContractInfo != nil { + contractInfo.Decimals = blockchainContractInfo.Decimals + } if err = w.db.StoreContractInfo(contractInfo); err != nil { glog.Errorf("StoreContractInfo error %v, contract %v", err, cd) }