From 08ba436d8bb3ec53d0a1c24ada8a260abbd775af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Garamv=C3=B6lgyi?= Date: Fri, 27 Jan 2023 01:53:31 +0100 Subject: [PATCH] patch: Add safe and finalized tags to ethclient SDK (#202) add safe and finalized tags to ethclient SDK --- ethclient/ethclient.go | 14 +++++++++++++- rpc/types.go | 8 +++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ethclient/ethclient.go b/ethclient/ethclient.go index 1f2693735b..9378b5f571 100644 --- a/ethclient/ethclient.go +++ b/ethclient/ethclient.go @@ -547,10 +547,22 @@ func toBlockNumArg(number *big.Int) string { if number == nil { return "latest" } - pending := big.NewInt(-1) + latest := big.NewInt(int64(rpc.LatestBlockNumber)) + if number.Cmp(latest) == 0 { + return "latest" + } + pending := big.NewInt(int64(rpc.PendingBlockNumber)) if number.Cmp(pending) == 0 { return "pending" } + finalized := big.NewInt(int64(rpc.FinalizedBlockNumber)) + if number.Cmp(finalized) == 0 { + return "finalized" + } + safe := big.NewInt(int64(rpc.SafeBlockNumber)) + if number.Cmp(safe) == 0 { + return "safe" + } return hexutil.EncodeBig(number) } diff --git a/rpc/types.go b/rpc/types.go index 07726ce178..c1cf5304ed 100644 --- a/rpc/types.go +++ b/rpc/types.go @@ -58,9 +58,11 @@ type jsonWriter interface { type BlockNumber int64 const ( - PendingBlockNumber = BlockNumber(-2) - LatestBlockNumber = BlockNumber(-1) - EarliestBlockNumber = BlockNumber(0) + SafeBlockNumber = BlockNumber(-4) + FinalizedBlockNumber = BlockNumber(-3) + PendingBlockNumber = BlockNumber(-2) + LatestBlockNumber = BlockNumber(-1) + EarliestBlockNumber = BlockNumber(0) ) // UnmarshalJSON parses the given JSON fragment into a BlockNumber. It supports: