plugins {
  id 'net.consensys.zkevm.kotlin-common-minimal-conventions'
}

configurations {
  testFixturesDeps {
    extendsFrom implementation // Inherit plugin's dependencies
    canBeConsumed = false
    canBeResolved = false
  }
  testFixturesImplementation.extendsFrom testFixturesDeps
}

dependencies {
  api platform("io.vertx:vertx-stack-depchain:${libs.versions.vertx.get()}")
  //<utils>
  implementation "com.michael-bull.kotlin-result:kotlin-result:${libs.versions.kotlinResult.get()}"
  implementation ("tech.pegasys.teku.internal:async:${libs.versions.teku.get()}") {
    exclude group: 'org.slf4j'
    exclude group: 'com.github.jnr'
    exclude group: 'com.squareup.okhttp3'
    exclude group: 'org.apache.logging.log4j'
    exclude group: 'tech.pegasys.teku.internal', module: 'metrics'
    exclude group: 'tech.pegasys.teku.internal', module: 'time'
  } because("We are using Teku's SafeFuture, an improved/extension of CompletableFuture.")

  //<logging>
  implementation "org.apache.logging.log4j:log4j-api:${libs.versions.log4j.get()}"
  implementation "org.apache.logging.log4j:log4j-core:${libs.versions.log4j.get()}"
  //</logging>

  //<testing>
  testImplementation("io.vertx:vertx-junit5")
  //</testing>
}
