mirror of
https://github.com/status-im/status-go.git
synced 2025-02-25 21:25:33 +00:00
Account's address was used as a primary key in accounts db and as a deterministic id of an account in some API calls. Also it was used as a part of the name of the account specific database. This revealed some extra information about the account and wasn't necessary. At first the hash of the address was planned to be used as a deterministic id, but we already have a keyUid which is calculated as sha256 hash of account's public key and has similar properties: - it is deterministic - doesn't reveal accounts public key or address in plain
28 lines
789 B
Go
28 lines
789 B
Go
package accounts
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/status-im/status-go/account"
|
|
"github.com/status-im/status-go/multiaccounts"
|
|
)
|
|
|
|
var (
|
|
// ErrUpdatingWrongAccount raised if caller tries to update any other account except one used for login.
|
|
ErrUpdatingWrongAccount = errors.New("failed to updating wrong account. please login with that account first")
|
|
)
|
|
|
|
func NewMultiAccountsAPI(db *multiaccounts.Database, manager *account.Manager) *MultiAccountsAPI {
|
|
return &MultiAccountsAPI{db: db, manager: manager}
|
|
}
|
|
|
|
// MultiAccountsAPI is class with methods available over RPC.
|
|
type MultiAccountsAPI struct {
|
|
db *multiaccounts.Database
|
|
manager *account.Manager
|
|
}
|
|
|
|
func (api *MultiAccountsAPI) UpdateAccount(account multiaccounts.Account) error {
|
|
return api.db.UpdateAccount(account)
|
|
}
|