Algorand2 SDK Generating random Transaction hash for the transactions using TxId() method - Algorand
Algorand2 SDK Generating random Transaction hash for the transactions using TxId() method
post by Sowna on Apr 26, 2023
Hi @fabrice
I am using Algorand2 SDK, below is my code to get the transaction hash for the transactions but it is returning random transaction hashes which are not matching with the explorer hash for the transaction
string ALGOD_API_ADDR = "http://1localhost:8887/";
string ALGOD_API_TOKEN = "8300d867cc2dbc9398dff961d0dbaefae8eaf8730217f5c468a358a4";
var httpClient = HttpClientConfigurator.ConfigureHttpClient(ALGOD_API_ADDR, ALGOD_API_TOKEN);
DefaultApi algodApiInstance= new DefaultApi(httpClient);
var blockinfo = await algodApiInstance.GetBlockAsync(211518);
foreach (var txndata in blockinfo.Block.Transactions)
{
string trsnsactionHash=txndata.Tx.TxID();
}
post by fabrice on Apr 26, 2023
The issue is that transactions read from the block API need to be processed before being able to compute their transaction ID.
See Calculating Transaction ID - #2 by fabrice
You can see some Go code for that there: indexer/util.go at a63f591c59bc64ea870c742b0197c072003ed0e6 · algorand/indexer · GitHub
You can adapt it to Java.
But the easiest solution is really to use an indexer.
PS: I’ve fixed indentation in code and wrote it between ``` to make it easier to read.
post by FrankS on May 1, 2023
Actually I think that issue is to do with the genesis id / hash stuff being missing in the block transactions…
@Sowna you can probably fix it by iterating over the transactions in the block and setting the missing genesis field(s) (I forget which ones but I think Fabrice linked to them). The TxId is a computed field, and when the node returns the transactions in the block, it "compresses" out the fields that belong to the block. Those then need to be re-added into the transaction to get the right id.
However, I should probably add a utility method in the SDK to be honest.
post by Sowna on May 4, 2023
Thank you @FrankS, It worked after setting the genesis fields.
post by Sowna on May 17, 2023
Hi @FrankS Signed transaction is not having Receiver Rewards, it is null here but explorer is having value. Can you please help me with this
post by FrankS on May 17, 2023
Hey there. Don’t you wanna join the Discord? I am on the NET SDK channel there, but people will be able to help you out too if I am not around.
post by Sowna on May 17, 2023
sure, I will join but do you have solution for above issue
post by FrankS on May 17, 2023
Yeah I don’t understand the issue. I don’t know what “receiver rewards” is in this context.
post by Sowna on May 17, 2023
Hi @FrankS,
Using Algorand2 SDK able to get the block data which contains all the signed transactions
example for block no. 17497913
Transaction “M2JNAHUX2D4M3ZRYGCR5OJOW2OMAQNIXMVDJOAXWRIDFWVX6LTIQ” below the result where SenderRewards is null which supposed to be 0.000003
Please help me with this
Hi @fabrice, do you have any idea regarding this issue?
post by FrankS on May 17, 2023
Sorry I don’t know anything about the rewards mechanisms. You’ll get more help on Discord.
post by Sowna on May 17, 2023
No problem @FrankS, I have posted the question in Discord channel.