From 3e4a13d03832505277a5172c37ffbc114d387f8f Mon Sep 17 00:00:00 2001 From: Daniel Liu Date: Tue, 18 Mar 2025 18:24:12 +0800 Subject: [PATCH] rpc: accept `finalized` as block number --- eth/api_backend.go | 6 ++++-- internal/jsre/deps/web3.js | 2 +- rpc/types.go | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/eth/api_backend.go b/eth/api_backend.go index 3a11fe9f1a..03d3a66ba2 100644 --- a/eth/api_backend.go +++ b/eth/api_backend.go @@ -78,7 +78,8 @@ func (b *EthApiBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNum // Otherwise resolve and return the block if blockNr == rpc.LatestBlockNumber { return b.eth.blockchain.CurrentBlock().Header(), nil - } else if blockNr == rpc.CommittedBlockNumber { + } + if blockNr == rpc.CommittedBlockNumber { if b.eth.chainConfig.XDPoS == nil { return nil, errors.New("PoW does not support confirmed block lookup") } @@ -131,7 +132,8 @@ func (b *EthApiBackend) BlockByNumber(ctx context.Context, blockNr rpc.BlockNumb // Otherwise resolve and return the block if blockNr == rpc.LatestBlockNumber { return b.eth.blockchain.CurrentBlock(), nil - } else if blockNr == rpc.CommittedBlockNumber { + } + if blockNr == rpc.CommittedBlockNumber { if b.eth.chainConfig.XDPoS == nil { return nil, errors.New("PoW does not support confirmed block lookup") } diff --git a/internal/jsre/deps/web3.js b/internal/jsre/deps/web3.js index 4547be3281..609b37fcb8 100644 --- a/internal/jsre/deps/web3.js +++ b/internal/jsre/deps/web3.js @@ -3696,7 +3696,7 @@ var outputBigNumberFormatter = function (number) { }; var isPredefinedBlockNumber = function (blockNumber) { - return ['latest','pending','earliest','committed'].indexOf(blockNumber) >= 0; + return ['latest','pending','earliest','committed', 'finalized'].indexOf(blockNumber) >= 0; }; var inputDefaultBlockNumberFormatter = function (blockNumber) { diff --git a/rpc/types.go b/rpc/types.go index 366d6d1e98..42d927e217 100644 --- a/rpc/types.go +++ b/rpc/types.go @@ -101,7 +101,7 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { case "pending": *bn = PendingBlockNumber return nil - case "committed": + case "committed", "finalized": *bn = CommittedBlockNumber return nil } @@ -181,7 +181,7 @@ func (bnh *BlockNumberOrHash) UnmarshalJSON(data []byte) error { bn := PendingBlockNumber bnh.BlockNumber = &bn return nil - case "committed": + case "committed", "finalized": bn := CommittedBlockNumber bnh.BlockNumber = &bn return nil