Skip to content

Commit

Permalink
client: add FinalizedHeader/Block to use the fast finality
Browse files Browse the repository at this point in the history
  • Loading branch information
NathanBSC committed Aug 3, 2023
1 parent c208d28 commit 013b606
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions ethclient/ethclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,32 @@ func (ec *Client) HeaderByNumber(ctx context.Context, number *big.Int) (*types.H
return head, err
}

// GetFinalizedHeader returns the requested finalized block header.
// - probabilisticFinalized should be in range [2,21],
// then the block header with number `max(fastFinalized, latest-probabilisticFinalized)` is returned
func (ec *Client) FinalizedHeader(ctx context.Context, probabilisticFinalized *big.Int) (*types.Header, error) {
var head *types.Header
err := ec.c.CallContext(ctx, &head, "eth_getFinalizedHeader", toBlockNumArg(probabilisticFinalized))
if err == nil && head == nil {
err = ethereum.NotFound
}
return head, err
}

// GetFinalizedBlock returns the requested finalized block.
// - probabilisticFinalized should be in range [2,21],
// then the block with number `max(fastFinalized, latest-probabilisticFinalized)` is returned
// - When fullTx is true all transactions in the block are returned, otherwise
// only the transaction hash is returned.
func (ec *Client) FinalizedBlock(ctx context.Context, probabilisticFinalized *big.Int, fullTx bool) (*types.Block, error) {
var block *types.Block
err := ec.c.CallContext(ctx, &block, "eth_getFinalizedBlock", toBlockNumArg(probabilisticFinalized), fullTx)
if err == nil && block == nil {
err = ethereum.NotFound
}
return block, err
}

// GetDiffAccounts returns changed accounts in a specific block number.
func (ec *Client) GetDiffAccounts(ctx context.Context, number *big.Int) ([]common.Address, error) {
accounts := make([]common.Address, 0)
Expand Down

0 comments on commit 013b606

Please sign in to comment.