Fix handling of invalid contract info

This commit is contained in:
Martin Boehm 2023-01-07 01:11:58 +01:00 committed by Martin
parent f6d816f2c0
commit c7a711c1f1

View File

@ -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)
}