public BlockAddedObserver createBlockchainObserver() {
    return addedBlockContext ->
        ethContext
            .getScheduler()
            .executeServiceTask(
                () -> {
                  final AtomicBoolean foundNewPivotBlock = new AtomicBoolean(false);
                  pivotBlockSelector.check(
                      (____, isNewPivotBlock) -> {
                        if (isNewPivotBlock) {
                          foundNewPivotBlock.set(true);
                        }
                      });

                  final boolean isNewPivotBlockFound = foundNewPivotBlock.get();
                  final boolean isBlockchainCaughtUp =
                      snapSyncState.isWaitingBlockchain()
                          && !pivotBlockSelector.isBlockchainBehind();

                  if (snapSyncState.isHealTrieInProgress()
                      && (isNewPivotBlockFound || isBlockchainCaughtUp)) {
                    snapSyncState.setWaitingBlockchain(false);
                    reloadTrieHeal();
                  }
                });
  }
Adds an account to the list of accounts to be repaired during the healing process. If the
account is not already in the list, it is added to both the snap context and the internal set
of accounts to be repaired.

@param account The account to be added for repair.
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadState.java