public Set<Transaction> transactionsWithAllTypes(final int atLeast) {
    checkArgument(atLeast >= 0);
    final HashSet<TransactionType> remainingTransactionTypes =
        new HashSet<>(
            Set.of(TransactionType.FRONTIER, TransactionType.ACCESS_LIST, TransactionType.EIP1559));
    final HashSet<Transaction> transactions = new HashSet<>();
    while (transactions.size() < atLeast || !remainingTransactionTypes.isEmpty()) {
      final Transaction newTransaction = transaction();
      transactions.add(newTransaction);
      remainingTransactionTypes.remove(newTransaction.getType());
    }
    return transactions;
  }
Generates a sequence of blocks with some accounts and account storage pre-populated with random
data.
ethereum/core/src/test-support/java/org/hyperledger/besu/ethereum/core/BlockDataGenerator.java