diff --git a/accounts/external/backend.go b/accounts/external/backend.go index 6089ca98444676d35d3c671dce12a0d005d8a381..175458e8076eeac56b598884c462bf534ec23abc 100644 --- a/accounts/external/backend.go +++ b/accounts/external/backend.go @@ -131,6 +131,12 @@ func (api *ExternalSigner) Accounts() []accounts.Account { func (api *ExternalSigner) Contains(account accounts.Account) bool { api.cacheMu.RLock() defer api.cacheMu.RUnlock() + if api.cache == nil { + // If we haven't already fetched the accounts, it's time to do so now + api.cacheMu.RUnlock() + api.Accounts() + api.cacheMu.RLock() + } for _, a := range api.cache { if a.Address == account.Address && (account.URL == (accounts.URL{}) || account.URL == api.URL()) { return true