From 9fef24917a9c643341de200c3a4045148e9e9ab1 Mon Sep 17 00:00:00 2001 From: Anthony Laibe <491074+alaibe@users.noreply.github.com> Date: Mon, 11 Apr 2022 18:35:18 +0200 Subject: [PATCH] fix: generation path (#2637) --- multiaccounts/settings/columns.go | 6 ++++++ multiaccounts/settings/database.go | 8 ++++++++ services/accounts/accounts.go | 12 ++++++------ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/multiaccounts/settings/columns.go b/multiaccounts/settings/columns.go index db0a78a0f..aac4eef68 100644 --- a/multiaccounts/settings/columns.go +++ b/multiaccounts/settings/columns.go @@ -386,6 +386,11 @@ var ( dBColumnName: "webview_allow_permission_requests", valueHandler: BoolHandler, } + WalletRootAddress = SettingField{ + reactFieldName: "wallet-root-address", + dBColumnName: "wallet_root_address", + valueHandler: AddressHandler, + } SettingFieldRegister = []SettingField{ AnonMetricsShouldSend, @@ -447,6 +452,7 @@ var ( UseMailservers, Usernames, WakuBloomFilterMode, + WalletRootAddress, WalletSetUpPassed, WalletVisibleTokens, WebviewAllowPermissionRequests, diff --git a/multiaccounts/settings/database.go b/multiaccounts/settings/database.go index ed54f7c88..15dfbf0ad 100644 --- a/multiaccounts/settings/database.go +++ b/multiaccounts/settings/database.go @@ -532,3 +532,11 @@ func (db *Database) SetPinnedMailservers(mailservers map[string]string) error { func (db *Database) SetUseMailservers(value bool) error { return db.SaveSettingField(UseMailservers, value) } + +func (db *Database) GetWalletRoodAddress() (rst types.Address, err error) { + err = db.makeSelectRow(WalletRootAddress).Scan(&rst) + if err == sql.ErrNoRows { + return rst, nil + } + return +} diff --git a/services/accounts/accounts.go b/services/accounts/accounts.go index 87bebff51..46ecf67e1 100644 --- a/services/accounts/accounts.go +++ b/services/accounts/accounts.go @@ -17,7 +17,7 @@ import ( "github.com/status-im/status-go/params" ) -const pathWalletRoot = "m/44'/60'/0'/0/0" +const pathWalletRoot = "m/44'/60'/0'/0" const pathDefaultWallet = pathWalletRoot + "/0" func NewAccountsAPI(manager *account.GethManager, config *params.NodeConfig, db *accounts.Database, feed *event.Feed) *API { @@ -81,7 +81,7 @@ func (api *API) AddAccountWithMnemonic( return err } - accountInfos, err := api.manager.AccountsGenerator().StoreDerivedAccounts(generatedAccountInfo.ID, password, []string{pathWalletRoot}) + accountInfos, err := api.manager.AccountsGenerator().StoreDerivedAccounts(generatedAccountInfo.ID, password, []string{pathDefaultWallet}) if err != nil { return err } @@ -95,8 +95,8 @@ func (api *API) AddAccountWithMnemonic( } account := accounts.Account{ - Address: types.Address(common.HexToAddress(accountInfos[pathWalletRoot].Address)), - PublicKey: types.HexBytes(accountInfos[pathWalletRoot].PublicKey), + Address: types.Address(common.HexToAddress(accountInfos[pathDefaultWallet].Address)), + PublicKey: types.HexBytes(accountInfos[pathDefaultWallet].PublicKey), Type: "seed", Name: name, Emoji: emoji, @@ -162,7 +162,7 @@ func (api *API) GenerateAccount( return err } - address, err := api.db.GetWalletAddress() + address, err := api.db.GetWalletRoodAddress() if err != nil { return err } @@ -195,7 +195,7 @@ func (api *API) GenerateAccount( Name: name, Emoji: emoji, Color: color, - Path: path, + Path: fmt.Sprint(pathWalletRoot, "/", newDerivedPath), } err = api.db.SaveSettingField(settings.LatestDerivedPath, newDerivedPath)