From fd233e3d88e95c4f15d03818f69e5a95a6411e8b Mon Sep 17 00:00:00 2001 From: JianGuo Date: Tue, 25 Jun 2024 15:30:05 +0800 Subject: [PATCH] Modify code --- jsonrpc/endpoints_zkevm.go | 36 ----------------------------- jsonrpc/endpoints_zkevm_xlayer.go | 38 +++++++++++++++++++++++++++++++ state/helper.go | 8 ++----- state/transaction.go | 2 +- 4 files changed, 41 insertions(+), 43 deletions(-) diff --git a/jsonrpc/endpoints_zkevm.go b/jsonrpc/endpoints_zkevm.go index 252f092fdc..a819bc4896 100644 --- a/jsonrpc/endpoints_zkevm.go +++ b/jsonrpc/endpoints_zkevm.go @@ -195,42 +195,6 @@ func (z *ZKEVMEndpoints) GetBatchByNumber(batchNumber types.BatchNumber, fullTx return rpcBatch, nil } -// GetBatchDataByNumbers returns the batch data for batches by numbers, XLayer -func (z *ZKEVMEndpoints) GetBatchDataByNumbers(filter types.BatchFilter) (interface{}, types.Error) { - ctx := context.Background() - - var batchNumbers []uint64 - for _, bn := range filter.Numbers { - n, rpcErr := bn.GetNumericBatchNumber(ctx, z.state, z.etherman, nil) - if rpcErr != nil { - return nil, rpcErr - } - batchNumbers = append(batchNumbers, n) - } - - batchesData, err := z.state.GetBatchL2DataByNumbers(ctx, batchNumbers, nil) - if errors.Is(err, state.ErrNotFound) { - return nil, nil - } else if err != nil { - return RPCErrorResponse(types.DefaultErrorCode, - fmt.Sprintf("couldn't load batch data from state by numbers %v", filter.Numbers), err, true) - } - - var ret []*types.BatchData - for _, n := range batchNumbers { - data := &types.BatchData{Number: types.ArgUint64(n)} - if b, ok := batchesData[n]; ok { - data.BatchL2Data = b - data.Empty = false - } else { - data.Empty = true - } - ret = append(ret, data) - } - - return types.BatchDataResult{Data: ret}, nil -} - // GetFullBlockByNumber returns information about a block by block number func (z *ZKEVMEndpoints) GetFullBlockByNumber(number types.BlockNumber, fullTx bool) (interface{}, types.Error) { ctx := context.Background() diff --git a/jsonrpc/endpoints_zkevm_xlayer.go b/jsonrpc/endpoints_zkevm_xlayer.go index 56643a7af6..9e304570b9 100644 --- a/jsonrpc/endpoints_zkevm_xlayer.go +++ b/jsonrpc/endpoints_zkevm_xlayer.go @@ -2,10 +2,12 @@ package jsonrpc import ( "context" + "errors" "fmt" "github.com/0xPolygonHermez/zkevm-node/hex" "github.com/0xPolygonHermez/zkevm-node/jsonrpc/types" + "github.com/0xPolygonHermez/zkevm-node/state" ) // GetBatchSealTime returns the seal time @@ -24,3 +26,39 @@ func (z *ZKEVMEndpoints) GetBatchSealTime(batchNumber types.BatchNumber) (interf return hex.EncodeUint64(sealTime), nil } + +// GetBatchDataByNumbers returns the batch data for batches by numbers, XLayer +func (z *ZKEVMEndpoints) GetBatchDataByNumbers(filter types.BatchFilter) (interface{}, types.Error) { + ctx := context.Background() + + var batchNumbers []uint64 + for _, bn := range filter.Numbers { + n, rpcErr := bn.GetNumericBatchNumber(ctx, z.state, z.etherman, nil) + if rpcErr != nil { + return nil, rpcErr + } + batchNumbers = append(batchNumbers, n) + } + + batchesData, err := z.state.GetBatchL2DataByNumbers(ctx, batchNumbers, nil) + if errors.Is(err, state.ErrNotFound) { + return nil, nil + } else if err != nil { + return RPCErrorResponse(types.DefaultErrorCode, + fmt.Sprintf("couldn't load batch data from state by numbers %v", filter.Numbers), err, true) + } + + var ret []*types.BatchData + for _, n := range batchNumbers { + data := &types.BatchData{Number: types.ArgUint64(n)} + if b, ok := batchesData[n]; ok { + data.BatchL2Data = b + data.Empty = false + } else { + data.Empty = true + } + ret = append(ret, data) + } + + return types.BatchDataResult{Data: ret}, nil +} diff --git a/state/helper.go b/state/helper.go index 0d4a51c274..3b37d121ee 100644 --- a/state/helper.go +++ b/state/helper.go @@ -287,9 +287,7 @@ func GenerateReceipt(blockNumber *big.Int, processedTx *ProcessTransactionRespon ContractAddress: processedTx.CreateAddress, Logs: processedTx.Logs, } - - // for XLayer - if forkID <= FORKID_ELDERBERRY { + if forkID <= FORKID_ETROG { receipt.PostState = processedTx.StateRoot.Bytes() receipt.CumulativeGasUsed = processedTx.GasUsed } else { @@ -313,9 +311,7 @@ func GenerateReceipt(blockNumber *big.Int, processedTx *ProcessTransactionRespon for i := 0; i < len(receipt.Logs); i++ { receipt.Logs[i].TxHash = processedTx.Tx.Hash() } - - // for XLayer - if forkID <= FORKID_ELDERBERRY { + if forkID <= FORKID_ETROG { if processedTx.RomError == nil { receipt.Status = types.ReceiptStatusSuccessful } else { diff --git a/state/transaction.go b/state/transaction.go index fee29cbe42..f1df72c4ca 100644 --- a/state/transaction.go +++ b/state/transaction.go @@ -225,7 +225,7 @@ func (s *State) StoreL2Block(ctx context.Context, batchNumber uint64, l2Block *P gasLimit := l2Block.GasLimit // We check/set the maximum value of gasLimit for batches <= to ETROG fork. For batches >= to ELDERBERRY fork we use always the value returned by the executor - if forkID <= FORKID_ELDERBERRY && gasLimit > MaxL2BlockGasLimit { + if forkID <= FORKID_ETROG && gasLimit > MaxL2BlockGasLimit { gasLimit = MaxL2BlockGasLimit }