diff --git a/protocol/communities/manager.go b/protocol/communities/manager.go index 73d72b05a..4b2f55af8 100644 --- a/protocol/communities/manager.go +++ b/protocol/communities/manager.go @@ -120,7 +120,7 @@ type managerOptions struct { type TokenManager interface { GetBalancesByChain(ctx context.Context, accounts, tokens []gethcommon.Address, chainIDs []uint64) (map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big, error) - UpsertCustom(token token.Token) error + FindOrCreateTokenByAddress(ctx context.Context, chainID uint64, address gethcommon.Address) *token.Token GetAllChainIDs() ([]uint64, error) } @@ -161,8 +161,8 @@ func (m *DefaultTokenManager) GetBalancesByChain(ctx context.Context, accounts, return resp, err } -func (m *DefaultTokenManager) UpsertCustom(t token.Token) error { - return m.tokenManager.UpsertCustom(t) +func (m *DefaultTokenManager) FindOrCreateTokenByAddress(ctx context.Context, chainID uint64, address gethcommon.Address) *token.Token { + return m.tokenManager.FindOrCreateTokenByAddress(ctx, chainID, address) } type ManagerOption func(*managerOptions) @@ -1308,17 +1308,7 @@ func (m *Manager) handleCommunityDescriptionMessageCommon(community *Community, } for chainID, address := range tokenMetadata.ContractAddresses { - token := token.Token{ - Address: gethcommon.HexToAddress(address), - ChainID: chainID, - Symbol: tokenMetadata.Symbol, - Name: tokenMetadata.Name, - Decimals: uint(tokenMetadata.Decimals), - } - err := m.tokenManager.UpsertCustom(token) - if err != nil { - return nil, err - } + _ = m.tokenManager.FindOrCreateTokenByAddress(context.Background(), chainID, gethcommon.HexToAddress(address)) } } } diff --git a/protocol/communities/manager_test.go b/protocol/communities/manager_test.go index ccacec879..12d0f6aec 100644 --- a/protocol/communities/manager_test.go +++ b/protocol/communities/manager_test.go @@ -136,7 +136,7 @@ func (m *testTokenManager) GetBalancesByChain(ctx context.Context, accounts, tok return m.response, nil } -func (m *testTokenManager) UpsertCustom(token token.Token) error { +func (m *testTokenManager) FindOrCreateTokenByAddress(ctx context.Context, chainID uint64, address gethcommon.Address) *token.Token { return nil } diff --git a/protocol/communities_messenger_helpers_test.go b/protocol/communities_messenger_helpers_test.go index 1fdc9ce3b..c01d6d747 100644 --- a/protocol/communities_messenger_helpers_test.go +++ b/protocol/communities_messenger_helpers_test.go @@ -5,6 +5,7 @@ import ( "crypto/ecdsa" "encoding/json" "errors" + "io/ioutil" "sync" "time" @@ -75,7 +76,7 @@ func (m *TokenManagerMock) GetBalancesByChain(ctx context.Context, accounts, tok return *m.Balances, nil } -func (m *TokenManagerMock) UpsertCustom(token walletToken.Token) error { +func (m *TokenManagerMock) FindOrCreateTokenByAddress(ctx context.Context, chainID uint64, address gethcommon.Address) *walletToken.Token { time.Sleep(100 * time.Millisecond) // simulate response time return nil }