Fix/mobile issue 15899 : error when trying login under updated password (#3493)
* fix: unable to reset password for newly created account using CreateAccountAndLogin * remove unnecessary print * add TestCreateAccountAndLogin * update TestCreateAccountAndLogin * bump version
This commit is contained in:
parent
0f0b6f7578
commit
c7aebfeed3
|
@ -0,0 +1,62 @@
|
||||||
|
package api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/protocol/requests"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestCreateAccountAndLogin(t *testing.T) {
|
||||||
|
rootDir := t.TempDir()
|
||||||
|
t.Logf("TestCreateAccountAndLogin: rootDir: %s", rootDir)
|
||||||
|
|
||||||
|
requestJSONTemplateString := `
|
||||||
|
{
|
||||||
|
"upstreamConfig":"https://eth-archival.gateway.pokt.network/v1/lb/3ef2018191814b7e1009b8d9",
|
||||||
|
"openseaAPIKey":"",
|
||||||
|
"wakuV2Nameserver":"1.1.1.1",
|
||||||
|
"mnemonic":null,
|
||||||
|
"verifyENSContractAddress":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
|
||||||
|
"backupDisabledDataDir":"%s",
|
||||||
|
"password":"0x20756cad9b728c8225fd8cedb6badaf8731e174506950219ea657cd54f35f46c",
|
||||||
|
"displayName":"%s",
|
||||||
|
"logEnabled":true,
|
||||||
|
"verifyTransactionChainID":1,
|
||||||
|
"currentNetwork":"mainnet_rpc",
|
||||||
|
"customizationColor":"blue",
|
||||||
|
"previewPrivacy":true,
|
||||||
|
"verifyTransactionURL":"https://eth-archival.gateway.pokt.network/v1/lb/3ef2018191814b7e1009b8d9",
|
||||||
|
"imagePath":null,
|
||||||
|
"verifyENSURL":"https://eth-archival.gateway.pokt.network/v1/lb/3ef2018191814b7e1009b8d9",
|
||||||
|
"logLevel":"INFO",
|
||||||
|
"logFilePath":"%s",
|
||||||
|
"networkId":1
|
||||||
|
}
|
||||||
|
`
|
||||||
|
requestJSON := fmt.Sprintf(requestJSONTemplateString, rootDir, "user1", rootDir)
|
||||||
|
var request requests.CreateAccount
|
||||||
|
err := json.Unmarshal([]byte(requestJSON), &request)
|
||||||
|
require.NoError(t, err)
|
||||||
|
statusBackend := NewGethStatusBackend()
|
||||||
|
err = statusBackend.CreateAccountAndLogin(&request)
|
||||||
|
require.NoError(t, err)
|
||||||
|
t.Logf("TestCreateAccountAndLogin: create account user1 and login successfully")
|
||||||
|
// wait waku node start working
|
||||||
|
time.Sleep(2 * time.Second)
|
||||||
|
|
||||||
|
t.Logf("TestCreateAccountAndLogin: logouting")
|
||||||
|
err = statusBackend.Logout()
|
||||||
|
require.NoError(t, err)
|
||||||
|
t.Logf("TestCreateAccountAndLogin: logout done")
|
||||||
|
|
||||||
|
requestJSON = fmt.Sprintf(requestJSONTemplateString, rootDir, "user2", rootDir)
|
||||||
|
err = json.Unmarshal([]byte(requestJSON), &request)
|
||||||
|
require.NoError(t, err)
|
||||||
|
err = statusBackend.CreateAccountAndLogin(&request)
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
|
@ -744,7 +744,7 @@ func (b *GethStatusBackend) GetKeyUIDByMnemonic(mnemonic string) (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *GethStatusBackend) generateOrImportAccount(mnemonic string, request *requests.CreateAccount) error {
|
func (b *GethStatusBackend) generateOrImportAccount(mnemonic string, request *requests.CreateAccount) error {
|
||||||
keystoreDir := filepath.Join(request.BackupDisabledDataDir, keystoreRelativePath)
|
keystoreDir := keystoreRelativePath
|
||||||
|
|
||||||
b.UpdateRootDataDir(request.BackupDisabledDataDir)
|
b.UpdateRootDataDir(request.BackupDisabledDataDir)
|
||||||
err := b.OpenAccounts()
|
err := b.OpenAccounts()
|
||||||
|
@ -779,7 +779,7 @@ func (b *GethStatusBackend) generateOrImportAccount(mnemonic string, request *re
|
||||||
|
|
||||||
userKeyStoreDir := filepath.Join(keystoreDir, info.KeyUID)
|
userKeyStoreDir := filepath.Join(keystoreDir, info.KeyUID)
|
||||||
// Initialize keystore dir with account
|
// Initialize keystore dir with account
|
||||||
if err := b.accountManager.InitKeystore(userKeyStoreDir); err != nil {
|
if err := b.accountManager.InitKeystore(filepath.Join(b.rootDataDir, userKeyStoreDir)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -813,6 +813,8 @@ func (b *GethStatusBackend) generateOrImportAccount(mnemonic string, request *re
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// when we set nodeConfig.KeyStoreDir, value of nodeConfig.KeyStoreDir should not contain the rootDataDir
|
||||||
|
// loadNodeConfig will add rootDataDir to nodeConfig.KeyStoreDir
|
||||||
nodeConfig.KeyStoreDir = userKeyStoreDir
|
nodeConfig.KeyStoreDir = userKeyStoreDir
|
||||||
|
|
||||||
walletDerivedAccount := derivedAddresses[pathDefaultWallet]
|
walletDerivedAccount := derivedAddresses[pathDefaultWallet]
|
||||||
|
|
|
@ -16,8 +16,6 @@ type CreateAccount struct {
|
||||||
Password string `json:"password"`
|
Password string `json:"password"`
|
||||||
ImagePath string `json:"imagePath"`
|
ImagePath string `json:"imagePath"`
|
||||||
CustomizationColor string `json:"customizationColor"`
|
CustomizationColor string `json:"customizationColor"`
|
||||||
// RootKeystoreDir is the directory where keys are stored
|
|
||||||
RootKeystoreDir string `json:"rootKeystoreDir"`
|
|
||||||
// BackupDisabledDataDir is the directory where backup is disabled
|
// BackupDisabledDataDir is the directory where backup is disabled
|
||||||
BackupDisabledDataDir string `json:"backupDisabledDataDir"`
|
BackupDisabledDataDir string `json:"backupDisabledDataDir"`
|
||||||
|
|
||||||
|
@ -53,10 +51,6 @@ func ValidateAccountCreationRequest(c CreateAccount) error {
|
||||||
return ErrCreateAccountInvalidCustomizationColor
|
return ErrCreateAccountInvalidCustomizationColor
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(c.RootKeystoreDir) == 0 {
|
|
||||||
return ErrCreateAccountInvalidRootKeystoreDir
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(c.BackupDisabledDataDir) == 0 {
|
if len(c.BackupDisabledDataDir) == 0 {
|
||||||
return ErrCreateAccountInvalidBackupDisabledDataDir
|
return ErrCreateAccountInvalidBackupDisabledDataDir
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue