From 9c25a75572f5b7220e55104a7c72652c109f040b Mon Sep 17 00:00:00 2001 From: Devon Bear Date: Mon, 30 Oct 2023 12:11:01 -0400 Subject: [PATCH] fix(miner): Do not use pending block for now (#1255) --- eth/polar/api_backend.go | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/eth/polar/api_backend.go b/eth/polar/api_backend.go index b810b98d7..22f86b435 100644 --- a/eth/polar/api_backend.go +++ b/eth/polar/api_backend.go @@ -243,8 +243,10 @@ func (b *backend) BlockByNumber(_ context.Context, number rpc.BlockNumber) (*typ // Pending block is only known by the miner switch number { case rpc.PendingBlockNumber: - block := b.polar.miner.PendingBlock() - return block, nil + header := b.polar.blockchain.CurrentBlock() + return b.polar.blockchain.GetBlock(header.Hash(), header.Number.Uint64()), nil + // block := b.polar.miner.PendingBlock() + // return block, nil // Otherwise resolve and return the block case rpc.LatestBlockNumber: header := b.polar.blockchain.CurrentBlock() @@ -307,16 +309,25 @@ func (b *backend) StateAndHeaderByNumber( ctx context.Context, number rpc.BlockNumber, ) (state.StateDB, *types.Header, error) { + var header *types.Header // Pending state is only known by the miner if number == rpc.PendingBlockNumber { - block, state := b.polar.miner.Pending() - return state, block.Header(), nil - } - // Otherwise resolve the block number and return its state - header, err := b.HeaderByNumber(ctx, number) - if err != nil { - return nil, nil, err + header = b.polar.blockchain.CurrentBlock() + // The above code is returning a block from the blockchain based on the given header + // hash and block + // number. + // return b.polar.blockchain.GetBlock(header.Hash(), header.Number.Uint64()), nil + // block, state := b.polar.miner.Pending() + // return state, block.Header(), nil + } else { + // Otherwise resolve the block number and return its state + var err error + header, err = b.HeaderByNumber(ctx, number) + if err != nil { + return nil, nil, err + } } + if header == nil { // to match Geth return nil, nil, core.ErrBlockNotFound