fix: upsert community customer token
This commit is contained in:
parent
eda1f5482b
commit
740f66a8ff
|
@ -120,7 +120,7 @@ type managerOptions struct {
|
||||||
|
|
||||||
type TokenManager interface {
|
type TokenManager interface {
|
||||||
GetBalancesByChain(ctx context.Context, accounts, tokens []gethcommon.Address, chainIDs []uint64) (map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big, error)
|
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)
|
GetAllChainIDs() ([]uint64, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,8 +161,8 @@ func (m *DefaultTokenManager) GetBalancesByChain(ctx context.Context, accounts,
|
||||||
return resp, err
|
return resp, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *DefaultTokenManager) UpsertCustom(t token.Token) error {
|
func (m *DefaultTokenManager) FindOrCreateTokenByAddress(ctx context.Context, chainID uint64, address gethcommon.Address) *token.Token {
|
||||||
return m.tokenManager.UpsertCustom(t)
|
return m.tokenManager.FindOrCreateTokenByAddress(ctx, chainID, address)
|
||||||
}
|
}
|
||||||
|
|
||||||
type ManagerOption func(*managerOptions)
|
type ManagerOption func(*managerOptions)
|
||||||
|
@ -1308,17 +1308,7 @@ func (m *Manager) handleCommunityDescriptionMessageCommon(community *Community,
|
||||||
}
|
}
|
||||||
|
|
||||||
for chainID, address := range tokenMetadata.ContractAddresses {
|
for chainID, address := range tokenMetadata.ContractAddresses {
|
||||||
token := token.Token{
|
_ = m.tokenManager.FindOrCreateTokenByAddress(context.Background(), chainID, gethcommon.HexToAddress(address))
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,7 +136,7 @@ func (m *testTokenManager) GetBalancesByChain(ctx context.Context, accounts, tok
|
||||||
return m.response, nil
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
@ -75,7 +76,7 @@ func (m *TokenManagerMock) GetBalancesByChain(ctx context.Context, accounts, tok
|
||||||
return *m.Balances, nil
|
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
|
time.Sleep(100 * time.Millisecond) // simulate response time
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue