From eb4dd078109836bc07bddb4daf50c98c0d8036c1 Mon Sep 17 00:00:00 2001 From: xinran chen Date: Tue, 23 Jul 2024 19:09:19 +0800 Subject: [PATCH] enable recordNotFound --- core/blockchain/blockchain.go | 47 ++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/core/blockchain/blockchain.go b/core/blockchain/blockchain.go index 77077443..d97540bb 100644 --- a/core/blockchain/blockchain.go +++ b/core/blockchain/blockchain.go @@ -1,14 +1,12 @@ package blockchain import ( - "github.com/pkg/errors" "github.com/sirupsen/logrus" . "github.com/yu-org/yu/common" "github.com/yu-org/yu/common/yerror" "github.com/yu-org/yu/config" . "github.com/yu-org/yu/core/types" ysql "github.com/yu-org/yu/infra/storage/sql" - "gorm.io/gorm" ) type BlockChain struct { @@ -45,13 +43,16 @@ func (bc *BlockChain) NewEmptyBlock() *Block { func (bc *BlockChain) GetGenesis() (*Block, error) { var block BlocksScheme - err := bc.chain.Db().Where("height = ?", 0).First(&block).Error + result := bc.chain.Db().Where("height = ?", 0).Find(&block) + err := result.Error + if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - return nil, yerror.ErrBlockNotFound - } return nil, err } + if result.RowsAffected == 0 { + return nil, yerror.ErrBlockNotFound + } + cb, err := block.toBlock() if err != nil { return nil, err @@ -117,15 +118,17 @@ func (bc *BlockChain) ExistsBlock(blockHash Hash) (bool, error) { func (bc *BlockChain) GetCompactBlock(blockHash Hash) (*CompactBlock, error) { var bs BlocksScheme - err := bc.chain.Db().Where(&BlocksScheme{ + result := bc.chain.Db().Where(&BlocksScheme{ Hash: blockHash.String(), - }).First(&bs).Error + }).Find(&bs) + err := result.Error + if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - return nil, yerror.ErrBlockNotFound - } return nil, err } + if result.RowsAffected == 0 { + return nil, yerror.ErrBlockNotFound + } return bs.toBlock() } @@ -139,16 +142,19 @@ func (bc *BlockChain) GetBlock(blockHash Hash) (*Block, error) { func (bc *BlockChain) GetCompactBlockByHeight(height BlockNum) (*CompactBlock, error) { var bs BlocksScheme - err := bc.chain.Db().Where(&BlocksScheme{ + result := bc.chain.Db().Where(&BlocksScheme{ Height: height, Finalize: true, - }).First(&bs).Error + }).Find(&bs) + err := result.Error + if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - return nil, yerror.ErrBlockNotFound - } return nil, err } + + if result.RowsAffected == 0 { + return nil, yerror.ErrBlockNotFound + } return bs.toBlock() } @@ -286,13 +292,14 @@ func (bc *BlockChain) LastFinalized() (*Block, error) { func (bc *BlockChain) GetEndCompactBlock() (*CompactBlock, error) { var bs BlocksScheme - err := bc.chain.Db().Raw("select * from blockchain where height = (select max(height) from blockchain)").First(&bs).Error + result := bc.chain.Db().Raw("select * from blockchain where height = (select max(height) from blockchain)").Find(&bs) + err := result.Error if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - return nil, yerror.ErrBlockNotFound - } return nil, err } + if result.RowsAffected == 0 { + return nil, yerror.ErrBlockNotFound + } return bs.toBlock() }