diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98fbbdaf82..002752d6aa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: if: (github.event.action != 'closed' || github.event.pull_request.merged == true) strategy: matrix: - os: [ ubuntu-20.04, macos-11 ] # list of os: https://github.com/actions/virtual-environments + os: [ ubuntu-20.04 ] # list of os: https://github.com/actions/virtual-environments runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 @@ -63,7 +63,7 @@ jobs: - name: test-integration run: make test-integration - + - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 with: diff --git a/ethclient/ethclient.go b/ethclient/ethclient.go index 6e8915358b..13a2e46d25 100644 --- a/ethclient/ethclient.go +++ b/ethclient/ethclient.go @@ -533,10 +533,23 @@ func toBlockNumArg(number *big.Int) string { if number == nil { return "latest" } + pending := big.NewInt(-1) + finalized := big.NewInt(int64(rpc.FinalizedBlockNumber)) + safe := big.NewInt(int64(rpc.SafeBlockNumber)) + if number.Cmp(pending) == 0 { return "pending" } + + if number.Cmp(finalized) == 0 { + return "finalized" + } + + if number.Cmp(safe) == 0 { + return "safe" + } + return hexutil.EncodeBig(number) } diff --git a/ethclient/gethclient/gethclient.go b/ethclient/gethclient/gethclient.go index 538e23727d..2abeeaaf5c 100644 --- a/ethclient/gethclient/gethclient.go +++ b/ethclient/gethclient/gethclient.go @@ -183,10 +183,23 @@ func toBlockNumArg(number *big.Int) string { if number == nil { return "latest" } + pending := big.NewInt(-1) + finalized := big.NewInt(int64(rpc.FinalizedBlockNumber)) + safe := big.NewInt(int64(rpc.SafeBlockNumber)) + if number.Cmp(pending) == 0 { return "pending" } + + if number.Cmp(finalized) == 0 { + return "finalized" + } + + if number.Cmp(safe) == 0 { + return "safe" + } + return hexutil.EncodeBig(number) } diff --git a/rpc/types.go b/rpc/types.go index 46b08caf68..e4d40ab98f 100644 --- a/rpc/types.go +++ b/rpc/types.go @@ -61,9 +61,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: