mirror of
https://github.com/vacp2p/linea-monorepo.git
synced 2026-01-09 04:08:01 -05:00
* feat: first commit for transaction exclusion api service * feat: removed debug logs and improved params error handling * fix: jacocoRootReport error * feat: improved json request param parsings * feat: added docker container and github workflow pipeline for transaction exclusion api * feat: added rejection stage in response and use txHash and rejectReason as primary key of tables * feat: separate database into read and write config and each with dedicated connection * fix: e2e testing error * feat: removed redundant commands in Makefile * feat: updated transaction exclusion api default image tag in compose file * feat: added metric and change param name from reasonMessage to reason * feat: added integration and unit tests and use reasonMessage for both request and response * fix: transaction-exclusion-api unit test * feat: added e2e tests and remove reasonMessage from get response and redundant codes * feat: updated README.md and removed abi file * feat: updated image version of transaction exclusion api service in compose file * feat: updated README and added more test cases * feat: updated transaction exclusion api default image tag in compose file * feat: decoupled transaction exclusion api from coordinator package * feat: removed unnecessary dependencies to prover client * feat: moved persistence:db package to jvm-libs * feat: removed migration file dir location config from transaction exclusion api * fix: db migration location for fee history integration test * changed db column name timestamp to reject_timestamp and add dto for ModuleOverflow to remove all jackson dependencies in core module * feat: rejected transaction dao and config refactoring * feat: removed repository service and using persistence retryer * feat: updated transaction exclusion api default image tag in compose file * feat: updated log and increase retry backoff delay to avoid repetitive error logs * feat: added support of list request on save method and added dto for RejectedTransaction * feat: revised gradle.build dependencies * feat: switch from shadow jar to zipped jar * feat: updated transaction exclusion api default image tag in compose file * feat: updated sql and tables and changes for PR comments * feat: improved log message for duplicate key error * feat: updated transaction exclusion api default image tag in compose file * feat: avoid redundant logs on periodic db cleanup * feat: revised request handlers plus better test assertions on insertion * fix: test case * feat: parse save method json request with jackson * feat: extracted db migrations from the coordinator and transaction-exclusion app * feat: decoupled coordinator modules from jvm-libs persistence db test module * feat: updated dockerfile of transaction-exclusion-api * feat: removed the find check before metric increment on save rejected transaction * feat: updated docker base image for tx-exclusion-api image buid and queryable window config * feat: skip migration scripts on read db instance * feat: updated more percise jvm-libs change filtering on transaction-exclusion-api * feat: updated coordinator config for geth node l2 gas pricing recipients * feat: update runners with specific version and removed the use of retry for transaction exclusion api testing * feat: add integration test for transaction exclusion app * feat: update local stack docker compose and workflow for transaction exclusion * feat: add e2e test for transaction exclusion * feat: skip the sequencer test in transaction exclusion e2e test * feat: revert sequencer config poa-block-txs-selection-max-time * feat: remove incorrect comment * feat: added explicitly assertion if tx exclusion is not defined and simplify the localStackPostgresDbOnly in build.gradle * feat: remove beforeAll in test suite with it.concurrent * feat: set coordinator config blob-compressor-version as V1_0_1 explicitly for traces-v2 * feat: update coordinator config test * feat: change default prefix not to be coordinator specific * feat: place persistence:db under jvm-libs:generic and fixed conflicts from latest main * fix: remove dependency to resolve circular dependency issue * test: switch from localStackPostgresDbOnlyComposeUp to localStackComposeUp * feat: replace GITHUB_SHA with github.event.pull_request.head.sha in computing commit tag * feat: update filter change file lists for transaction exclusion api
113 lines
4.8 KiB
Groovy
113 lines
4.8 KiB
Groovy
plugins {
|
|
id 'net.consensys.zkevm.kotlin-application-conventions'
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(':transaction-exclusion-api:core')
|
|
implementation project(':transaction-exclusion-api:persistence:rejectedtransaction')
|
|
implementation project(':jvm-libs:generic:extensions:futures')
|
|
implementation project(':jvm-libs:generic:extensions:kotlin')
|
|
implementation project(':jvm-libs:generic:json-rpc')
|
|
implementation project(':jvm-libs:generic:persistence:db')
|
|
implementation project(':jvm-libs:generic:vertx-helper')
|
|
implementation project(':jvm-libs:linea:core:long-running-service')
|
|
implementation project(':jvm-libs:linea:core:metrics')
|
|
implementation project(':jvm-libs:linea:metrics:micrometer')
|
|
|
|
implementation "com.github.ben-manes.caffeine:caffeine:${libs.versions.caffeine.get()}"
|
|
implementation "io.vertx:vertx-core"
|
|
implementation "io.vertx:vertx-web"
|
|
implementation "io.vertx:vertx-health-check"
|
|
implementation "io.vertx:vertx-lang-kotlin"
|
|
implementation "io.vertx:vertx-config"
|
|
implementation "io.vertx:vertx-micrometer-metrics"
|
|
implementation "info.picocli:picocli:${libs.versions.picoli.get()}"
|
|
implementation "com.sksamuel.hoplite:hoplite-core:${libs.versions.hoplite.get()}"
|
|
implementation "com.sksamuel.hoplite:hoplite-toml:${libs.versions.hoplite.get()}"
|
|
implementation "io.micrometer:micrometer-registry-prometheus:${libs.versions.micrometer.get()}"
|
|
implementation "com.fasterxml.jackson.core:jackson-annotations:${libs.versions.jackson.get()}"
|
|
implementation "com.fasterxml.jackson.core:jackson-databind:${libs.versions.jackson.get()}"
|
|
implementation "com.fasterxml.jackson.module:jackson-module-kotlin:${libs.versions.jackson.get()}"
|
|
|
|
implementation "org.hyperledger.besu:besu-datatypes:${libs.versions.besu.get()}"
|
|
implementation "org.hyperledger.besu:evm:${libs.versions.besu.get()}"
|
|
implementation "org.hyperledger.besu.internal:rlp:${libs.versions.besu.get()}"
|
|
implementation "org.hyperledger.besu.internal:core:${libs.versions.besu.get()}"
|
|
implementation "org.hyperledger.besu.internal:crypto:${libs.versions.besu.get()}"
|
|
|
|
api("io.netty:netty-transport-native-epoll:${libs.versions.netty.get()}:linux-x86_64") {
|
|
because "It enables native transport for Linux."
|
|
// Note that its version should match netty version used in Vertx
|
|
}
|
|
api("io.netty:netty-transport-native-kqueue:${libs.versions.netty.get()}:osx-x86_64") {
|
|
because "It enables native transport for Mac OSX."
|
|
// Note that its version should match netty version used in Vertx
|
|
}
|
|
|
|
testImplementation "io.vertx:vertx-junit5"
|
|
testImplementation "io.rest-assured:rest-assured:${libs.versions.restassured.get()}"
|
|
testImplementation "io.rest-assured:json-schema-validator:${libs.versions.restassured.get()}"
|
|
testImplementation "net.javacrumbs.json-unit:json-unit-assertj:${libs.versions.jsonUnit.get()}"
|
|
testImplementation testFixtures(project(":jvm-libs:generic:extensions:kotlin"))
|
|
testImplementation testFixtures(project(":jvm-libs:generic:persistence:db"))
|
|
testImplementation testFixtures(project(":transaction-exclusion-api:core"))
|
|
}
|
|
|
|
application {
|
|
mainClass = 'net.consensys.linea.transactionexclusion.app.TransactionExclusionAppMain'
|
|
}
|
|
|
|
jar {
|
|
archiveBaseName = 'transaction-exclusion-api'
|
|
manifest {
|
|
attributes(
|
|
'Class-Path': configurations.runtimeClasspath.collect { it.getName() }.findAll {it.endsWith('jar') }.join(' '),
|
|
'Main-Class': 'net.consensys.linea.transactionexclusion.app.TransactionExclusionAppMain',
|
|
'Multi-Release': 'true'
|
|
)
|
|
}
|
|
}
|
|
|
|
distributions {
|
|
main {
|
|
distributionBaseName = 'transaction-exclusion-api'
|
|
}
|
|
}
|
|
|
|
run {
|
|
workingDir = rootProject.projectDir
|
|
jvmArgs = [
|
|
"-Dvertx.configurationFile=config/transaction-exclusion-api/vertx.json",
|
|
"-Dlog4j2.configurationFile=config/transaction-exclusion-api/log4j2-dev.xml"
|
|
] + System.properties.entrySet()
|
|
.findAll { it.key.startsWith("config") }
|
|
.collect { "-D${it.key}=${it.value}" }
|
|
args = ["config/transaction-exclusion-api/transaction-exclusion-app-docker.config.toml",
|
|
"config/transaction-exclusion-api/transaction-exclusion-app-local-dev.config.overrides.toml"]
|
|
}
|
|
|
|
sourceSets {
|
|
integrationTest {
|
|
kotlin {
|
|
compileClasspath += main.output
|
|
runtimeClasspath += main.output
|
|
}
|
|
compileClasspath += sourceSets.main.output + sourceSets.main.compileClasspath + sourceSets.test.compileClasspath
|
|
runtimeClasspath += sourceSets.main.output + sourceSets.main.runtimeClasspath + sourceSets.test.runtimeClasspath
|
|
}
|
|
}
|
|
|
|
task integrationTest(type: Test) {
|
|
test ->
|
|
systemProperty "vertx.configurationFile", "vertx-options.json"
|
|
|
|
description = "Runs integration tests."
|
|
group = "verification"
|
|
useJUnitPlatform()
|
|
|
|
classpath = sourceSets.integrationTest.runtimeClasspath
|
|
testClassesDirs = sourceSets.integrationTest.output.classesDirs
|
|
|
|
dependsOn(":localStackComposeUp")
|
|
}
|