From f702d77aae0ce52708432ac423ddd4f692b636fa Mon Sep 17 00:00:00 2001 From: Puneethkumar CK Date: Sun, 12 Apr 2026 23:15:21 +0200 Subject: [PATCH] EVM-2: add EVM API DTO records to prism-api module Co-Authored-By: Claude Opus 4.6 (1M context) --- .../prism/api/EvmAccountResponse.java | 19 ++++++++++++++ .../prism/api/EvmBlockResponse.java | 22 ++++++++++++++++ .../prism/api/EvmStatsResponse.java | 18 +++++++++++++ .../prism/api/EvmTokenTransferResponse.java | 22 ++++++++++++++++ .../prism/api/EvmTransactionResponse.java | 25 +++++++++++++++++++ .../prism/api/EvmTransferResponse.java | 20 +++++++++++++++ 6 files changed, 126 insertions(+) create mode 100644 prism-api/src/main/java/com/stablebridge/prism/api/EvmAccountResponse.java create mode 100644 prism-api/src/main/java/com/stablebridge/prism/api/EvmBlockResponse.java create mode 100644 prism-api/src/main/java/com/stablebridge/prism/api/EvmStatsResponse.java create mode 100644 prism-api/src/main/java/com/stablebridge/prism/api/EvmTokenTransferResponse.java create mode 100644 prism-api/src/main/java/com/stablebridge/prism/api/EvmTransactionResponse.java create mode 100644 prism-api/src/main/java/com/stablebridge/prism/api/EvmTransferResponse.java diff --git a/prism-api/src/main/java/com/stablebridge/prism/api/EvmAccountResponse.java b/prism-api/src/main/java/com/stablebridge/prism/api/EvmAccountResponse.java new file mode 100644 index 0000000..226f1c5 --- /dev/null +++ b/prism-api/src/main/java/com/stablebridge/prism/api/EvmAccountResponse.java @@ -0,0 +1,19 @@ +package com.stablebridge.prism.api; + +import java.time.Instant; + +import com.fasterxml.jackson.databind.PropertyNamingStrategies; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + +import lombok.Builder; + +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) +@Builder(toBuilder = true) +public record EvmAccountResponse( + String address, + long blockNumber, + long transactionCount, + Instant firstSeen, + Instant lastSeen, + Instant createdAt +) {} diff --git a/prism-api/src/main/java/com/stablebridge/prism/api/EvmBlockResponse.java b/prism-api/src/main/java/com/stablebridge/prism/api/EvmBlockResponse.java new file mode 100644 index 0000000..1546566 --- /dev/null +++ b/prism-api/src/main/java/com/stablebridge/prism/api/EvmBlockResponse.java @@ -0,0 +1,22 @@ +package com.stablebridge.prism.api; + +import java.time.Instant; + +import com.fasterxml.jackson.databind.PropertyNamingStrategies; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + +import lombok.Builder; + +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) +@Builder(toBuilder = true) +public record EvmBlockResponse( + long blockNumber, + String blockHash, + String parentHash, + Instant timestamp, + int transactionCount, + long gasUsed, + long gasLimit, + String baseFeePerGas, + Instant createdAt +) {} diff --git a/prism-api/src/main/java/com/stablebridge/prism/api/EvmStatsResponse.java b/prism-api/src/main/java/com/stablebridge/prism/api/EvmStatsResponse.java new file mode 100644 index 0000000..cfd5852 --- /dev/null +++ b/prism-api/src/main/java/com/stablebridge/prism/api/EvmStatsResponse.java @@ -0,0 +1,18 @@ +package com.stablebridge.prism.api; + +import com.fasterxml.jackson.databind.PropertyNamingStrategies; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + +import lombok.Builder; + +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) +@Builder(toBuilder = true) +public record EvmStatsResponse( + long totalTransactions, + long totalFailed, + long totalTransfers, + long totalTokenTransfers, + long totalAccounts, + long totalBlocks, + long latestBlock +) {} diff --git a/prism-api/src/main/java/com/stablebridge/prism/api/EvmTokenTransferResponse.java b/prism-api/src/main/java/com/stablebridge/prism/api/EvmTokenTransferResponse.java new file mode 100644 index 0000000..f1f3d16 --- /dev/null +++ b/prism-api/src/main/java/com/stablebridge/prism/api/EvmTokenTransferResponse.java @@ -0,0 +1,22 @@ +package com.stablebridge.prism.api; + +import java.time.Instant; + +import com.fasterxml.jackson.databind.PropertyNamingStrategies; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + +import lombok.Builder; + +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) +@Builder(toBuilder = true) +public record EvmTokenTransferResponse( + long id, + String txHash, + long blockNumber, + int logIndex, + String tokenAddress, + String from, + String to, + String value, + Instant createdAt +) {} diff --git a/prism-api/src/main/java/com/stablebridge/prism/api/EvmTransactionResponse.java b/prism-api/src/main/java/com/stablebridge/prism/api/EvmTransactionResponse.java new file mode 100644 index 0000000..b769131 --- /dev/null +++ b/prism-api/src/main/java/com/stablebridge/prism/api/EvmTransactionResponse.java @@ -0,0 +1,25 @@ +package com.stablebridge.prism.api; + +import java.time.Instant; + +import com.fasterxml.jackson.databind.PropertyNamingStrategies; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + +import lombok.Builder; + +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) +@Builder(toBuilder = true) +public record EvmTransactionResponse( + String txHash, + long blockNumber, + String blockHash, + int transactionIndex, + String from, + String to, + String value, + boolean status, + long gasUsed, + String effectiveGasPrice, + int type, + Instant createdAt +) {} diff --git a/prism-api/src/main/java/com/stablebridge/prism/api/EvmTransferResponse.java b/prism-api/src/main/java/com/stablebridge/prism/api/EvmTransferResponse.java new file mode 100644 index 0000000..7d75c1a --- /dev/null +++ b/prism-api/src/main/java/com/stablebridge/prism/api/EvmTransferResponse.java @@ -0,0 +1,20 @@ +package com.stablebridge.prism.api; + +import java.time.Instant; + +import com.fasterxml.jackson.databind.PropertyNamingStrategies; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + +import lombok.Builder; + +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) +@Builder(toBuilder = true) +public record EvmTransferResponse( + long id, + String txHash, + long blockNumber, + String from, + String to, + String value, + Instant createdAt +) {}