You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I encountered an issue with transaction encoding, where the transaction ID returned by calling the ID() function does not match the transaction ID found on the blockchain. After further review, I think this is caused by payloadCanonicalForm(), which was added as a temporary solution for issue #286 since version 0.26.4. https://github.com/onflow/flow-go-sdk/blob/master/transaction.go#L373
Steps to Reproduce
I used several transactions to test this
txID:=flow.HexToID(TXID_FROM_BLOCKCHAIN_EXPLORER)
tx, _:=flowClient.GetTransaction(ctx, txID)
fmt.Printf("\nTx ID: %s, \nTx ID from SDK: %s\n", txID.Hex(), tx.ID().Hex())
the results are as follows:
Tx ID: 2e16e084fa64aaa5a7d886ba4c5f1646daa297b9b4e4efa6a006b606573671d3,
Tx ID from SDK: c42aad97d7d6815c7a11d84f413a4846286bd051d657bef299ad730b20f964a5,
Tx ID: 35d8dce0c5fd0357af05aa98ff133386c39ecf277c2c745d89125eebf88e33bb,
Tx ID from SDK: be2147e6dd88e0ebaf289c9bd9e020d02d940d49f99ee399601de3045f8dd096,
Tx ID: 4aabde51d996ef6f1d3ddb5a68e87fa016b122502d4cd1a7a67a196c4c360ee6,
Tx ID from SDK: 97563ff30e917834737655c38b1a9d3e3ba8c06c3f297070c0c92110be956bfd,
Tx ID: 159a6e313ada5feb109033e4d744c746e7f9af4c4ad482bce176f0a6d55913df,
Tx ID from SDK: 80eca1c33e7df980326cffb6fa81d92a7968f2f49b35b24f5db2b98b850cd5c3,
Tx ID: 5c31bde864d4bab7861129e9167dc87ddecc11411b4ebd4525a8b288a0cc44b9,
Tx ID from SDK: eca84a892715ac3b403ed67c0b176f8aba2ffb37d9c732dbbf11dd01fe59cc02,
Tx ID: 5e5ce254cfae3a85e5bf060b54c5c165c4d0a0a53fb38a73987c79af6d7d20a1,
Tx ID from SDK: 5ae2c3906ae12a584ec86c1897f0ae0c906fef906d12ba40197750b0607e3010,
Tx ID: 6a257b002f39742217358220fd2227954d7c5826329940ed8fa37d5fc97ae15e,
Tx ID from SDK: 7ff38861d0c32f3450e2d5d6fb2ad0b5572ad372e236ce922e5f0a7a7f2ed6ea,
Tx ID: 7ebc61d0e3b4f67af4127351c45756ec4c2d17e05bc5bfe4550ccf3dd960a406,
Tx ID from SDK: 59c6ac6850f80d4e551c93d9492081988ef6c5ba0520f6ea66f7ca3dccd94193,
Tx ID: 818432ec83530c143765ad402f50d6940d5182d4a7f82863528669e5b7cabec2,
Tx ID from SDK: 9ad6bfd7f4ffbf3048bafd687aa2b80440f091381293d57d27590ee25093fc22,
Tx ID: 81b2897ace93b4b26a70e22920d60f052870fda747abc311345cfd09d94a1e8d,
Tx ID from SDK: d8b3d90e04c4b1f0c3299179e5a7367698e838da977c60a370e87d9b829ff09c,
The text was updated successfully, but these errors were encountered:
@h0rs3fa11 thank you for reporting. The problem is we didn't define a canonical format, and thus, JS SDK builds a different ID which the PR mentioned fixed, since JSON marshaller in GO adds an extra new line. Not sure what a good workaround would be, but for sure final solution is for the format to be defined, which is the work that's already in progress I believe. Will gather more context and provide another comment.
Instructions
Problem
I encountered an issue with transaction encoding, where the transaction ID returned by calling the
ID()
function does not match the transaction ID found on the blockchain. After further review, I think this is caused bypayloadCanonicalForm()
, which was added as a temporary solution for issue #286 since version 0.26.4.https://github.com/onflow/flow-go-sdk/blob/master/transaction.go#L373
Steps to Reproduce
I used several transactions to test this
the results are as follows:
The text was updated successfully, but these errors were encountered: