Skip to content

Commit 2d2c5b4

Browse files
committed
chore: remove pointer receiver from AccountsConfig.
In order to have a single type of receiver for the struct, we need to either have every method with a pointer receiver, or a value one. A value one is not possible since GetOrAddKeystore needs to modify the config. A pointer one is also troublesome because AccountsConfig() returns a value, so calls like b.AccountsConfig().Derive() or similar wouldn't be possible. At the same time AccountsConfig() can't be changed to return a pointer because it needs to lock the accountsConfigLock and returning a pointer would cause data races.
1 parent 1590c51 commit 2d2c5b4

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

backend/backend.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,7 @@ func (backend *Backend) registerKeystore(keystore keystore.Keystore) {
799799
if err != nil {
800800
return errp.WithMessage(err, "could not retrieve keystore name")
801801
}
802-
keystoreCfg := accountsConfig.GetOrAddKeystore(fingerprint)
802+
keystoreCfg := config.GetOrAddKeystore(accountsConfig, fingerprint)
803803
keystoreCfg.Name = keystoreName
804804
keystoreCfg.LastConnected = time.Now()
805805
return nil

backend/config/accounts.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ func (cfg AccountsConfig) IsAccountWatchonly(account *Account) (bool, error) {
168168

169169
// GetOrAddKeystore looks up the keystore by root fingerprint. If it does not exist, one is added to
170170
// the list of keystores and the newly created one is returned.
171-
func (cfg *AccountsConfig) GetOrAddKeystore(rootFingerprint []byte) *Keystore {
171+
func GetOrAddKeystore(cfg *AccountsConfig, rootFingerprint []byte) *Keystore {
172172
ks, err := cfg.LookupKeystore(rootFingerprint)
173173
if err == nil {
174174
return ks

backend/config/accounts_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,19 +98,19 @@ func TestGetOrAddKeystore(t *testing.T) {
9898
fp1 := []byte("aaaa")
9999
fp2 := []byte("bbbb")
100100

101-
ks := cfg.GetOrAddKeystore(fp1)
101+
ks := GetOrAddKeystore(cfg, fp1)
102102
ks.Name = "ks1"
103103

104104
require.Len(t, cfg.Keystores, 1)
105105
require.Equal(t, ks, cfg.Keystores[0])
106106
require.Equal(t, fp1, []byte(cfg.Keystores[0].RootFingerprint))
107107
require.Equal(t, "ks1", cfg.Keystores[0].Name)
108108

109-
ks = cfg.GetOrAddKeystore(fp1)
109+
ks = GetOrAddKeystore(cfg, fp1)
110110
require.Len(t, cfg.Keystores, 1)
111111
require.Equal(t, "ks1", ks.Name)
112112

113-
ks = cfg.GetOrAddKeystore(fp2)
113+
ks = GetOrAddKeystore(cfg, fp2)
114114
ks.Name = "ks2"
115115

116116
require.Len(t, cfg.Keystores, 2)

0 commit comments

Comments
 (0)