Status-react: Unable to advertise one device to another if the same account restored with different whisper ids

Created on 7 Aug 2019  路  22Comments  路  Source: status-im/status-react

Description

Type: Bug
Summary: for all new users after merging https://github.com/status-im/status-react/pull/8601 from the same seed phrase are restored different whisper ids, which makes impossible to pair devices.

Expected behavior

can advertise one device to another

Actual behavior

nothing happens

Reproduction

  • Device A: create account
  • Device B: restore the same account
  • Device A: open Devices > try to advertise Device A to Device B
  • Device B: check devices

Additional Information

bug core-ui-grooming e2e test blocker high-priority high-severity

Most helpful comment

@churik @annadanchenko @cammellos I've found the reason
in #8601 we still use the old method to recover, so develop is wrong you shouldn't test it
here #8687 @dmitryn has the wrong implementation, we need to fix it
sorry for wasting your time! i'll comment in #8687 and we'll fix it with @dmitryn
thanks

All 22 comments

@cammellos created an issue to track progress and discussion...
cc @rachelhamlin @annadanchenko

@gravityblast what is the expected behavior? My understanding is that although wallet key and whisper keys are different if I import the same seed phrase I should get the same wallet key & whisper key, for example:

device-1-whisper-key == device-2-whisper-key 
&& 
device-1-wallet-key == device-2-wallet-key
&&
device-1-wallet-key != device-1-whisper-key

@flexsurfer

My understanding is the same as @cammellos, for one seed phrase we should always have the same whisper and default wallet keys

+1
The default whisper key is on a fixed path (m/43'/60'/1581'/0'/0') so always the same adress when we recover a given seed.
Same thing for the default wallet key (m/44'/60'/0'/0/0)

@annadanchenko @churik this is expected for all new users after merging #8601 from the same seed phrase are restored different whisper ids, this is was the main goal of multiaccount, to make whisper id different, so if you recover old account there should be same wallet address but different whisper id

@churik or do you mean you install fresh build with #8601 , create new account and get new mnemonic, and recover account on another device with this new mnemonic you have different whisper id ?

oh sorry,multiaccounts recovery isn't implemented in #8601 , so whisper id should the same as before #8601

but anyway i can't reproduce this, because i have always the same whisper id for one mnemonic on different devices

@gravityblast what is the expected behavior? My understanding is that although wallet key and whisper keys are different if I import the same seed phrase I should get the same wallet key & whisper key, for example:
device-1-whisper-key == device-2-whisper-key
&&
device-1-wallet-key == device-2-wallet-key
&&
device-1-wallet-key != device-1-whisper-key

@cammellos yes it's correct!

I can reproduce same issue (another whisper key is recovered) on Android build 22 of Recovery v1 PR https://github.com/status-im/status-react/pull/8687

Steps:

  1. on device 1 with build 22 create an account
  2. on device 2 use backup phrase from device 1 to recover account. Once recovered check Contact code in profile. It's expected to be the same on both devices

hm maybe something wrong with the mnemonic phrase when we generate a new account

Thanks, I will triage this and timebox it to 3 hours, will let you know by tomorrow what comes up.

@cammellos first we need to make sure this method MultiAccountGenerateAndDeriveAddresses returns correct mnemonics for generated accounts

I must add that wallet address is the same on device1 and device2, so issue is only for whisper id

you can user this phrase
Screenshot_20190812-124610

Expected Whisper id:
Screenshot_20190812-124624

Expected Wallet address:
Screenshot_20190812-124636

ok that means MultiAccountGenerateAndDeriveAddresses returns wrong whisper ids

@flexsurfer
yes, it is reproducible for develop for new accounts only (created after #8601 )
It is mentioned as expected result here: https://github.com/status-im/status-react/pull/8601#issuecomment-516306789

we provide this path "m/43'/60'/1581'/0'/0" to MultiAccountGenerateAndDeriveAddresses

@churik @annadanchenko @cammellos I've found the reason
in #8601 we still use the old method to recover, so develop is wrong you shouldn't test it
here #8687 @dmitryn has the wrong implementation, we need to fix it
sorry for wasting your time! i'll comment in #8687 and we'll fix it with @dmitryn
thanks

cc @rachelhamlin

can this one be closed now that #8687 is merged ?

Was this page helpful?
0 / 5 - 0 ratings