algorand / algorand/java-algorand-sdk

TransactionId empty if SignedTransaction initialized by constructor @JsonCreator

未关闭
#424 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug Team Lamprey
主要语言
Java
星标
73
派生
71
平均合并
41 分钟
30 天内合并 PR
2

描述

## Problem

The SignedTransaction created by deserialization JSON (@JSONCreator) doesn't fill the attribute transactionId.
https://github.com/algorand/java-algorand-sdk/blob/develop/src/main/java/com/algorand/algosdk/transaction/SignedTransaction.java#L80

So with Atomic Composer if I put a TxnSigner as a external request that works with deserialization of SignedTransaction, It will not work cause the transactionId is emtpy.
https://github.com/algorand/java-algorand-sdk/blob/develop/src/main/java/com/algorand/algosdk/transaction/AtomicTransactionComposer.java#L188

## Solution

We could add the transactionId into the constructor through@JSONCreator or other options proposed by barnji:
instead of using the txid directly from signed transaction object, use signedtransaction.tx.getTxId() or w/e its called in the atc.
it'd be redundant hashing possibly but safer in the case of a enc/dec stxn

## Dependencies

No dependencies

## Urgency

Low Urgency, easy to implement a workaround

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。