Merge pull request #919 from gzliudan/final-block

rpc: support keyword `finalized` as block number
This commit is contained in:
Daniel Liu 2025-03-19 17:48:37 +08:00 committed by GitHub
commit 79e7aef66b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 7 additions and 5 deletions

View file

@ -78,7 +78,8 @@ func (b *EthApiBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNum
// Otherwise resolve and return the block // Otherwise resolve and return the block
if blockNr == rpc.LatestBlockNumber { if blockNr == rpc.LatestBlockNumber {
return b.eth.blockchain.CurrentBlock().Header(), nil return b.eth.blockchain.CurrentBlock().Header(), nil
} else if blockNr == rpc.CommittedBlockNumber { }
if blockNr == rpc.CommittedBlockNumber {
if b.eth.chainConfig.XDPoS == nil { if b.eth.chainConfig.XDPoS == nil {
return nil, errors.New("PoW does not support confirmed block lookup") 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 // Otherwise resolve and return the block
if blockNr == rpc.LatestBlockNumber { if blockNr == rpc.LatestBlockNumber {
return b.eth.blockchain.CurrentBlock(), nil return b.eth.blockchain.CurrentBlock(), nil
} else if blockNr == rpc.CommittedBlockNumber { }
if blockNr == rpc.CommittedBlockNumber {
if b.eth.chainConfig.XDPoS == nil { if b.eth.chainConfig.XDPoS == nil {
return nil, errors.New("PoW does not support confirmed block lookup") return nil, errors.New("PoW does not support confirmed block lookup")
} }

View file

@ -3696,7 +3696,7 @@ var outputBigNumberFormatter = function (number) {
}; };
var isPredefinedBlockNumber = function (blockNumber) { 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) { var inputDefaultBlockNumberFormatter = function (blockNumber) {

View file

@ -101,7 +101,7 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error {
case "pending": case "pending":
*bn = PendingBlockNumber *bn = PendingBlockNumber
return nil return nil
case "committed": case "committed", "finalized":
*bn = CommittedBlockNumber *bn = CommittedBlockNumber
return nil return nil
} }
@ -181,7 +181,7 @@ func (bnh *BlockNumberOrHash) UnmarshalJSON(data []byte) error {
bn := PendingBlockNumber bn := PendingBlockNumber
bnh.BlockNumber = &bn bnh.BlockNumber = &bn
return nil return nil
case "committed": case "committed", "finalized":
bn := CommittedBlockNumber bn := CommittedBlockNumber
bnh.BlockNumber = &bn bnh.BlockNumber = &bn
return nil return nil