When the latest RollCall is re-opened, FE2 client considers the user to have no available token anymore, until the RollCall is closed again. This means we cannot send Chirps, use DigitalCash or see our Token in Tokens tab, until this RC is closed again?
Expected behavior
If we received a Token from a finished RollCall, this Token should remain valid even if the RC re-opens afterwards.
How to reproduce
Create a LAO, Join it with another device, create a RollCall, Scan your second device and close the RollCall
Use the second device and see that the token is valid (send chirps, check Tokens tab)
On first device (organizer), re-open the RollCall
See, for example, error toast in Chirps feed, and the fact that you cannot send Chirps anymore.
Front-ends:
[ ] Fe1-Web (please include browser's names & version)
[x] Fe2-Android (please specify if phone or emulation, and Android version)
[ ] Not applicable
Back-ends:
[ ] Be1-Go
[ ] Be2-Scala
[ ] Not applicable
Impact
Large user experience and availability impact. If a RollCall is re-opened, you are denied of your actions as a fair user that participated in a RollCall
A very quick check shows that it only returns roll calls which state is CLOSED. This statement is not sufficient to infer the presence of a valid PoP Token, as described in this Issue.
Description
When the latest
RollCall
is re-opened, FE2 client considers the user to have no available token anymore, until theRollCall
is closed again. This means we cannot sendChirps
, useDigitalCash
or see our Token inTokens
tab, until thisRC
is closed again?Expected behavior
If we received a Token from a finished
RollCall
, this Token should remain valid even if theRC
re-opens afterwards.How to reproduce
RollCall
, Scan your second device and close theRollCall
Tokens
tab)RollCall
Chirps
feed, and the fact that you cannot sendChirps
anymore.Front-ends:
Back-ends:
Impact
Large user experience and availability impact. If a
RollCall
is re-opened, you are denied of your actions as a fair user that participated in aRollCall
Possible root cause
https://github.com/dedis/popstellar/blob/e47fa9acd0045b71e4db8057dbaee4aac6025011/fe2-android/app/src/main/java/com/github/dedis/popstellar/ui/lao/digitalcash/DigitalCashViewModel.kt#L252-L253 All fragments/viewmodels are retrieving
PoP Token
this way. Maybe investigate whygetLastClosedRollCall()
function does not take into account a previously closed but re-openedRollCall
.A very quick check shows that it only returns roll calls which state is
CLOSED
. This statement is not sufficient to infer the presence of a validPoP Token
, as described in this Issue.