From f41306667ccd5ca38ccdf5bb61c40e0c8378489d Mon Sep 17 00:00:00 2001 From: Milan Cerovsky Date: Fri, 21 Feb 2025 11:44:13 +0100 Subject: [PATCH] Transaction fields propagation --- .../android/sdk/fixture/TransactionOverviewFixture.kt | 4 +++- .../sdk/internal/db/derived/AllTransactionView.kt | 10 +++++++++- .../sdk/internal/model/DbTransactionOverview.kt | 2 ++ .../z/ecc/android/sdk/model/TransactionOverview.kt | 6 +++++- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/fixture/TransactionOverviewFixture.kt b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/fixture/TransactionOverviewFixture.kt index 9165c92bf..dff8d0ea1 100644 --- a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/fixture/TransactionOverviewFixture.kt +++ b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/fixture/TransactionOverviewFixture.kt @@ -59,6 +59,8 @@ object TransactionOverviewFixture { memoCount = memoCount, blockTimeEpochSeconds = blockTimeEpochSeconds, transactionState = transactionState, - isShielding = isShielding + isShielding = isShielding, + totalSpent = NET_VALUE, + totalReceived = NET_VALUE ) } diff --git a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/internal/db/derived/AllTransactionView.kt b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/internal/db/derived/AllTransactionView.kt index 586bca81b..c5de96857 100644 --- a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/internal/db/derived/AllTransactionView.kt +++ b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/internal/db/derived/AllTransactionView.kt @@ -113,6 +113,8 @@ internal class AllTransactionView( val expiryHeightIndex = cursor.getColumnIndex(AllTransactionViewDefinition.COLUMN_INTEGER_EXPIRY_HEIGHT) val rawIndex = cursor.getColumnIndex(AllTransactionViewDefinition.COLUMN_BLOB_RAW) val netValueIndex = cursor.getColumnIndex(AllTransactionViewDefinition.COLUMN_LONG_ACCOUNT_BALANCE_DELTA) + val totalSpentIndex = cursor.getColumnIndex(AllTransactionViewDefinition.COLUMN_LONG_TOTAL_SPENT) + val totalReceivedIndex = cursor.getColumnIndex(AllTransactionViewDefinition.COLUMN_LONG_TOTAL_RECEIVED) val feePaidIndex = cursor.getColumnIndex(AllTransactionViewDefinition.COLUMN_LONG_FEE_PAID) val isChangeIndex = cursor.getColumnIndex(AllTransactionViewDefinition.COLUMN_BOOLEAN_IS_CHANGE) val receivedNoteCountIndex = @@ -146,13 +148,15 @@ internal class AllTransactionView( raw = cursor.getBlobOrNull(rawIndex)?.let { FirstClassByteArray(it) }, isSentTransaction = isSent, netValue = Zatoshi(netValueLong.absoluteValue), + totalSpent = Zatoshi(cursor.getLong(totalSpentIndex)), + totalReceived = Zatoshi(cursor.getLong(totalReceivedIndex)), feePaid = cursor.getLongOrNull(feePaidIndex)?.let { Zatoshi(it) }, isChange = cursor.getInt(isChangeIndex) != 0, receivedNoteCount = cursor.getInt(receivedNoteCountIndex), sentNoteCount = cursor.getInt(sentNoteCountIndex), memoCount = cursor.getInt(memoCountIndex), blockTimeEpochSeconds = cursor.getLongOrNull(blockTimeIndex), - isShielding = cursor.getIntOrNull(isShielding) == 1 + isShielding = cursor.getIntOrNull(isShielding) == 1, ) } @@ -234,6 +238,10 @@ internal object AllTransactionViewDefinition { const val COLUMN_LONG_ACCOUNT_BALANCE_DELTA = "account_balance_delta" // $NON-NLS + const val COLUMN_LONG_TOTAL_SPENT = "total_spent" // $NON-NLS + + const val COLUMN_LONG_TOTAL_RECEIVED = "total_received" // $NON-NLS + const val COLUMN_LONG_FEE_PAID = "fee_paid" // $NON-NLS const val COLUMN_BOOLEAN_IS_CHANGE = "has_change" // $NON-NLS diff --git a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/internal/model/DbTransactionOverview.kt b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/internal/model/DbTransactionOverview.kt index 3d812a394..daf2312f7 100644 --- a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/internal/model/DbTransactionOverview.kt +++ b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/internal/model/DbTransactionOverview.kt @@ -13,6 +13,8 @@ internal data class DbTransactionOverview internal constructor( val raw: FirstClassByteArray?, val isSentTransaction: Boolean, val netValue: Zatoshi, + val totalSpent: Zatoshi, + val totalReceived: Zatoshi, val feePaid: Zatoshi?, val isChange: Boolean, val receivedNoteCount: Int, diff --git a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/model/TransactionOverview.kt b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/model/TransactionOverview.kt index 7e25f89c5..90c41a574 100644 --- a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/model/TransactionOverview.kt +++ b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/model/TransactionOverview.kt @@ -21,6 +21,8 @@ data class TransactionOverview internal constructor( val raw: FirstClassByteArray?, val isSentTransaction: Boolean, val netValue: Zatoshi, + val totalSpent: Zatoshi, + val totalReceived: Zatoshi, val feePaid: Zatoshi?, val isChange: Boolean, val receivedNoteCount: Int, @@ -57,7 +59,9 @@ data class TransactionOverview internal constructor( dbTransactionOverview.minedHeight, dbTransactionOverview.expiryHeight ), - isShielding = dbTransactionOverview.isShielding + isShielding = dbTransactionOverview.isShielding, + totalSpent = dbTransactionOverview.totalSpent, + totalReceived = dbTransactionOverview.totalReceived ) } }