diff --git a/common/version/version.go b/common/version/version.go index ce95304847..7f2043871f 100644 --- a/common/version/version.go +++ b/common/version/version.go @@ -5,7 +5,7 @@ import ( "runtime/debug" ) -var tag = "v4.5.20" +var tag = "v4.5.21" var commit = func() string { if info, ok := debug.ReadBuildInfo(); ok { diff --git a/rollup/internal/controller/relayer/l2_relayer.go b/rollup/internal/controller/relayer/l2_relayer.go index 8c74418fad..470b8e5d05 100644 --- a/rollup/internal/controller/relayer/l2_relayer.go +++ b/rollup/internal/controller/relayer/l2_relayer.go @@ -220,7 +220,7 @@ func (r *Layer2Relayer) initializeGenesis() error { chunk := &encoding.Chunk{Blocks: []*encoding.Block{{Header: genesis}}} err = r.db.Transaction(func(dbTX *gorm.DB) error { - if err = r.l2BlockOrm.InsertL2Blocks(r.ctx, chunk.Blocks); err != nil { + if err = r.l2BlockOrm.InsertL2Blocks(r.ctx, chunk.Blocks, dbTX); err != nil { return fmt.Errorf("failed to insert genesis block: %v", err) } diff --git a/rollup/internal/orm/l2_block.go b/rollup/internal/orm/l2_block.go index f21c797dbf..c147347d94 100644 --- a/rollup/internal/orm/l2_block.go +++ b/rollup/internal/orm/l2_block.go @@ -173,7 +173,7 @@ func (o *L2Block) GetL2BlocksInRange(ctx context.Context, startBlockNumber uint6 } // InsertL2Blocks inserts l2 blocks into the "l2_block" table. -func (o *L2Block) InsertL2Blocks(ctx context.Context, blocks []*encoding.Block) error { +func (o *L2Block) InsertL2Blocks(ctx context.Context, blocks []*encoding.Block, dbTX ...*gorm.DB) error { var l2Blocks []L2Block for _, block := range blocks { header, err := json.Marshal(block.Header) @@ -203,7 +203,11 @@ func (o *L2Block) InsertL2Blocks(ctx context.Context, blocks []*encoding.Block) l2Blocks = append(l2Blocks, l2Block) } - db := o.db.WithContext(ctx) + db := o.db + if len(dbTX) > 0 && dbTX[0] != nil { + db = dbTX[0] + } + db = db.WithContext(ctx) db = db.Model(&L2Block{}) if err := db.Create(&l2Blocks).Error; err != nil {