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
After a mnemonic restore, a historical on-chain receive opens the Received Bitcoin sheet and the sheet stays up. Home is behind it, so TotalBalance-primary never appears.
@migration_1 failed for React Native v1.1.3, v1.1.4, and v1.1.6. migration_2, migration_3, and migration_4 passed. The final attempt for v1.1.4 and v1.1.6 shows Received Bitcoin for 500,000 sats. That is the on-chain deposit mined in the React Native app a few minutes before native restore. Home behind the sheet already shows 346,380. The test then fails with:
Error: element ("android=new UiSelector().resourceId("TotalBalance-primary")") still not displayed after 90000ms
at async restoreWallet (test/helpers/actions.ts:879:3)
at async migration.e2e.ts:185:5
v1.1.3's last screenshot is already on Savings with the same 500,000 receive in the list, so that shard did not die on the sheet.
Expected behavior
A receive that already existed before the restore stays in activity and does not open the Received Bitcoin sheet. After restore, home shows TotalBalance-primary.
A receive that confirms after the restore should still open the sheet.
Steps to Reproduce
On regtest, create a wallet and receive an on-chain payment. Mine it so it is confirmed within the last hour.
The sheet is the final failure on v1.1.4 and v1.1.6. v1.1.3 reached Savings instead. Earlier attempts on v1.1.4 failed differently (launcher, then Savings missing the spending amount).
Additional context
Mnemonic restore, not an in-place update. Any seed restore can hit this, including a native 2.5 wallet restored onto master, when a receive was confirmed within the last hour. Older confirms stay quiet because of the one-hour check. An in-place 2.5 update does not replay history as a new receive.
restoreWallet sets pendingRestoreActivitySeenSince so replayed history stays silent. The first on-chain sync marks activities started before that time as seen and then clears the hold. This deposit was inside the one-hour window, and the sheet still showed, so the hold did not suppress it.
The install-on-top migration path skips the sheet while migration loading is up. That matches migration_2 / migration_3 / migration_4 passing on the same run.
What happened?
After a mnemonic restore, a historical on-chain receive opens the Received Bitcoin sheet and the sheet stays up. Home is behind it, so
TotalBalance-primarynever appears.Nightly E2E Migration on
master44c82ed(includes #1299): https://github.com/synonymdev/bitkit-android/actions/runs/36084528765@migration_1failed for React Native v1.1.3, v1.1.4, and v1.1.6.migration_2,migration_3, andmigration_4passed. The final attempt for v1.1.4 and v1.1.6 shows Received Bitcoin for 500,000 sats. That is the on-chain deposit mined in the React Native app a few minutes before native restore. Home behind the sheet already shows 346,380. The test then fails with:v1.1.3's last screenshot is already on Savings with the same 500,000 receive in the list, so that shard did not die on the sheet.
Expected behavior
A receive that already existed before the restore stays in activity and does not open the Received Bitcoin sheet. After restore, home shows
TotalBalance-primary.A receive that confirms after the restore should still open the sheet.
Steps to Reproduce
TotalBalance-primaryis not reachable.Logs / Screenshots / Recordings
Bitkit Version
master44c82ed, E2E build. Includes #1299.Device / OS
CI emulator, Android 13.
BACKEND=regtest.Reproducibility
Often (>50%)
The sheet is the final failure on v1.1.4 and v1.1.6. v1.1.3 reached Savings instead. Earlier attempts on v1.1.4 failed differently (launcher, then Savings missing the spending amount).
Additional context
restoreWalletsetspendingRestoreActivitySeenSinceso replayed history stays silent. The first on-chain sync marks activities started before that time as seen and then clears the hold. This deposit was inside the one-hour window, and the sheet still showed, so the hold did not suppress it.migration_2/migration_3/migration_4passing on the same run.