public BlockHeaderBuilder populateFrom(final SealableBlockHeader sealableBlockHeader) {
    checkNotNull(sealableBlockHeader);
    parentHash(sealableBlockHeader.getParentHash());
    ommersHash(sealableBlockHeader.getOmmersHash());
    coinbase(sealableBlockHeader.getCoinbase());
    stateRoot(sealableBlockHeader.getStateRoot());
    transactionsRoot(sealableBlockHeader.getTransactionsRoot());
    receiptsRoot(sealableBlockHeader.getReceiptsRoot());
    logsBloom(sealableBlockHeader.getLogsBloom());
    difficulty(sealableBlockHeader.getDifficulty());
    number(sealableBlockHeader.getNumber());
    gasLimit(sealableBlockHeader.getGasLimit());
    gasUsed(sealableBlockHeader.getGasUsed());
    timestamp(sealableBlockHeader.getTimestamp());
    extraData(sealableBlockHeader.getExtraData());
    baseFee(sealableBlockHeader.getBaseFee().orElse(null));
    sealableBlockHeader.getPrevRandao().ifPresent(this::prevRandao);
    withdrawalsRoot(sealableBlockHeader.getWithdrawalsRoot().orElse(null));
    sealableBlockHeader.getBlobGasUsed().ifPresent(this::blobGasUsed);
    sealableBlockHeader.getExcessBlobGas().ifPresent(this::excessBlobGas);
    sealableBlockHeader.getParentBeaconBlockRoot().ifPresent(this::parentBeaconBlockRoot);
    requestsHash(sealableBlockHeader.getRequestsHash().orElse(null));
    return this;
  }
A utility class for building block headers.
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/BlockHeaderBuilder.java