diff --git a/rpc/types.go b/rpc/types.go index 1f7ea53c2e6..bf61b327c91 100644 --- a/rpc/types.go +++ b/rpc/types.go @@ -71,15 +71,15 @@ type BlockNumber int64 type Timestamp uint64 const ( - FinalizeBlockNumber = BlockNumber(-4) - SafeBlockNumber = BlockNumber(-3) - PendingBlockNumber = BlockNumber(-2) - LatestBlockNumber = BlockNumber(-1) - EarliestBlockNumber = BlockNumber(0) + FinalizedBlockNumber = BlockNumber(-4) + SafeBlockNumber = BlockNumber(-3) + PendingBlockNumber = BlockNumber(-2) + LatestBlockNumber = BlockNumber(-1) + EarliestBlockNumber = BlockNumber(0) ) // UnmarshalJSON parses the given JSON fragment into a BlockNumber. It supports: -// - "latest", "earliest" or "pending" as string arguments +// - "latest", "earliest", "pending", "safe", or "finalized" as string arguments // - the block number // Returned errors: // - an invalid block number error when the given argument isn't a known strings @@ -100,6 +100,12 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { case "pending": *bn = PendingBlockNumber return nil + case "safe": + *bn = SafeBlockNumber + return nil + case "finalized": + *bn = FinalizedBlockNumber + return nil case "null": *bn = LatestBlockNumber return nil @@ -173,6 +179,14 @@ func (bnh *BlockNumberOrHash) UnmarshalJSON(data []byte) error { bn := PendingBlockNumber bnh.BlockNumber = &bn return nil + case "safe": + bn := SafeBlockNumber + bnh.BlockNumber = &bn + return nil + case "finalized": + bn := FinalizedBlockNumber + bnh.BlockNumber = &bn + return nil default: if len(input) == 66 { hash := common.Hash{} diff --git a/turbo/rpchelper/helper.go b/turbo/rpchelper/helper.go index b87a61a68d9..6acc313f92e 100644 --- a/turbo/rpchelper/helper.go +++ b/turbo/rpchelper/helper.go @@ -50,7 +50,7 @@ func _GetBlockNumber(requireCanonical bool, blockNrOrHash rpc.BlockNumberOrHash, } case rpc.EarliestBlockNumber: blockNumber = 0 - case rpc.FinalizeBlockNumber: + case rpc.FinalizedBlockNumber: blockNumber, err = GetFinalizedBlockNumber(tx) if err != nil { return 0, common.Hash{}, false, err