From 8224bc8b9ca5a9fc8cfcc61832a595f409025cc5 Mon Sep 17 00:00:00 2001 From: maskpp Date: Fri, 10 Feb 2023 17:11:39 +0800 Subject: [PATCH] feat(rpc.BlockNumber): Add "finalized" and "safe" case in `marshal and unmarshal` interface. (#213) Add finalized, safe case --- rpc/types.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/rpc/types.go b/rpc/types.go index c1cf5304ed..9af557c9b8 100644 --- a/rpc/types.go +++ b/rpc/types.go @@ -87,6 +87,12 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { case "pending": *bn = PendingBlockNumber return nil + case "finalized": + *bn = FinalizedBlockNumber + return nil + case "safe": + *bn = SafeBlockNumber + return nil } blckNum, err := hexutil.DecodeUint64(input) @@ -111,6 +117,10 @@ func (bn BlockNumber) MarshalText() ([]byte, error) { return []byte("latest"), nil case PendingBlockNumber: return []byte("pending"), nil + case FinalizedBlockNumber: + return []byte("finalized"), nil + case SafeBlockNumber: + return []byte("safe"), nil default: return hexutil.Uint64(bn).MarshalText() } @@ -157,6 +167,14 @@ func (bnh *BlockNumberOrHash) UnmarshalJSON(data []byte) error { bn := PendingBlockNumber bnh.BlockNumber = &bn return nil + case "finalized": + bn := FinalizedBlockNumber + bnh.BlockNumber = &bn + return nil + case "safe": + bn := SafeBlockNumber + bnh.BlockNumber = &bn + return nil default: if len(input) == 66 { hash := common.Hash{}