accounts/external: fill account-cache if that hasn't already been done, fixes #20995 (#20998)

This commit is contained in:
Martin Holst Swende 2020-04-30 18:57:06 +02:00 committed by Igor Mandrigin
parent 434245bb01
commit 28b2a2a78b

View File

@ -137,6 +137,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