dedis / popstellar

Proof-of-personhood System
GNU Affero General Public License v3.0
35 stars 8 forks source link

[BUG] Digital Cash Transactions History Wrong Receiver Displayed #1923

Open Kaz-ookid opened 2 months ago

Kaz-ookid commented 2 months ago

Description

When sending coins to another user, and opening the Transaction History (top right corner), we can see the recent send. It displays : To: {$receiver_token_hash}. But this token hash is clearly not the one we sent coins to, and is not even 32 bytes (a PoP Token/Public Key length). This feels wrong and should be investigated.

This only happens for transactions for which we are the sender.

Expected behavior

Display the token of the receiver of the transaction.

How to reproduce

  1. Create a LAO, Join it with another device, create a RollCall, Scan your second device and close the RollCall
  2. Go to Digital Cash
  3. Click on Send and remember the user token
  4. Enter a non-null amount and click on Send
  5. See the Receipt view
  6. Click in the top right corner on the Transaction History icon
  7. See the Transaction History
  8. Click on the recent transaction to deploy the details
  9. See the error (wrong hash of the receiver token)

Version & Environment

This bug was reproduced on:

Front-ends:
Back-ends:

Impact

Low user experience impact, as it is not a much used feature for now. However, it will be a lot more confusing once we get the username display from #1915.

Possible root cause

https://github.com/dedis/popstellar/blob/e47fa9acd0045b71e4db8057dbaee4aac6025011/fe2-android/app/src/main/java/com/github/dedis/popstellar/ui/lao/digitalcash/HistoryListAdapter.kt#L111 This line is responsible of what to display after the To:. Need to understand where those hashes come from and what they represent, as they can't possibly represent users tokens (less than 32 bytes long)

Screenshots

This is not the token I sent coins to. (the visual bug has been fixed in #1921 image