From 114046881b47b9d340800b6de4dbf78a672aa3c1 Mon Sep 17 00:00:00 2001 From: Marian Vanderka Date: Mon, 26 Nov 2018 16:05:36 +0100 Subject: [PATCH] add id val to processed trx from api --- .../decent/sdk/model/ProcessedTransaction.kt | 18 +++++++++++++++++- .../java/ch/decent/sdk/api/OperationsTest.kt | 1 - .../ch/decent/sdk/api/TransactionApiTest.kt | 5 ++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/library/src/main/java/ch/decent/sdk/model/ProcessedTransaction.kt b/library/src/main/java/ch/decent/sdk/model/ProcessedTransaction.kt index c0d8f36a..1f507201 100644 --- a/library/src/main/java/ch/decent/sdk/model/ProcessedTransaction.kt +++ b/library/src/main/java/ch/decent/sdk/model/ProcessedTransaction.kt @@ -1,8 +1,14 @@ package ch.decent.sdk.model +import ch.decent.sdk.crypto.Sha256Hash +import ch.decent.sdk.net.serialization.ByteSerializable +import ch.decent.sdk.net.serialization.bytes +import ch.decent.sdk.utils.hex +import com.google.common.primitives.Bytes import com.google.gson.JsonArray import com.google.gson.annotations.SerializedName import org.threeten.bp.LocalDateTime +import org.threeten.bp.ZoneOffset data class ProcessedTransaction( @SerializedName("signatures") val signatures: List, @@ -12,4 +18,14 @@ data class ProcessedTransaction( @SerializedName("ref_block_num") val refBlockNum: Int, @SerializedName("ref_block_prefix") val refBlockPrefix: Long, @SerializedName("operation_results") val opResults: List -) \ No newline at end of file +) : ByteSerializable { + override val bytes: ByteArray + get() = Bytes.concat( + BlockData(refBlockNum, refBlockPrefix, expiration.toEpochSecond(ZoneOffset.UTC)).bytes, + operations.bytes(), + byteArrayOf(0) //extensions + ) + + val id: String + get() = Sha256Hash.hash(bytes).take(20).toByteArray().hex() +} \ No newline at end of file diff --git a/library/src/test/java/ch/decent/sdk/api/OperationsTest.kt b/library/src/test/java/ch/decent/sdk/api/OperationsTest.kt index 83120633..66a2ed05 100644 --- a/library/src/test/java/ch/decent/sdk/api/OperationsTest.kt +++ b/library/src/test/java/ch/decent/sdk/api/OperationsTest.kt @@ -12,7 +12,6 @@ import org.junit.After import org.junit.Before import org.junit.Test import org.slf4j.LoggerFactory -import java.lang.IllegalArgumentException import java.math.BigInteger class OperationsTest { diff --git a/library/src/test/java/ch/decent/sdk/api/TransactionApiTest.kt b/library/src/test/java/ch/decent/sdk/api/TransactionApiTest.kt index 48b403e4..26e95ca3 100644 --- a/library/src/test/java/ch/decent/sdk/api/TransactionApiTest.kt +++ b/library/src/test/java/ch/decent/sdk/api/TransactionApiTest.kt @@ -28,16 +28,15 @@ class TransactionApiTest(channel: Channel) : BaseApiTest(channel) { } - // transaction_history_plugin not loaded ? - @Ignore @Test fun `should get a transaction by ID`() { - val test = api.transactionApi.getTransaction("a9e89715f18f0bb0595b012720a10700000000000022230000000000020160e3160000000000000102c03f8e840c1699fd7808c2bb858e249c688c5be8acf0a0c1c484ab0cfb27f0a802e0ced80260630f641f61f6d6959f32b5c43b1a38be55666b98abfe8bafcc556b002ea2558d64350a204bc2a1ee670302ceddb897c2d351fa0496ff089c934e35e030f8ae4f3f9397a70000011f140e5744bcef282147ef3f0bab8df46f49704a99046d6ea5db37ab3113e0f45935fd94af7b33189ad34fa1666ab7e54aa127d725e2018fb6b68771aacef54c41") + val test = api.transactionApi.getTransaction("322d451fb1dc9b3ec6bc521395f4547a8b62eb3f") .subscribeOn(Schedulers.newThread()) .test() test.awaitTerminalEvent() test.assertComplete() .assertNoErrors() + .assertValue { it.id == "322d451fb1dc9b3ec6bc521395f4547a8b62eb3f"} }