@Override
  public void putPayloadById(final PayloadWrapper newPayload) {
    final var newBlockWithReceipts = newPayload.blockWithReceipts();
    final var newBlockValue = newPayload.blockValue();

    synchronized (blocksInProgress) {
      final Optional<PayloadWrapper> maybeCurrBestPayload =
          retrievePayloadById(newPayload.payloadIdentifier());

      maybeCurrBestPayload.ifPresent(
          currBestPayload -> {
            if (newBlockValue.greaterThan(currBestPayload.blockValue())) {
              LOG.atDebug()
                  .setMessage(
                      "New proposal for payloadId {} {} is better than the previous one {} by {}")
                  .addArgument(newPayload.payloadIdentifier())
                  .addArgument(() -> logBlockProposal(newBlockWithReceipts.getBlock()))
                  .addArgument(
                      () -> logBlockProposal(currBestPayload.blockWithReceipts().getBlock()))
                  .addArgument(
                      () ->
                          newBlockValue
                              .subtract(currBestPayload.blockValue())
                              .toHumanReadableString())
                  .log();

              blocksInProgress.removeAll(
                  streamPayloadsById(newPayload.payloadIdentifier()).toList());

              logCurrentBestBlock(newPayload);
            }
          });
      blocksInProgress.add(newPayload);
    }
  }
Instantiates a new Post merge context.

@param difficulty the difficulty
consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/PostMergeContext.java