From 37c9eb1a9d3f539a0beec7ed7fa371012318cbdd Mon Sep 17 00:00:00 2001 From: Anthony Laibe <491074+alaibe@users.noreply.github.com> Date: Mon, 24 Oct 2022 08:45:14 +0200 Subject: [PATCH] fix: token override when scanning (#2910) --- contracts/contracts.go | 12 ++++++++++++ services/wallet/token.go | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/contracts/contracts.go b/contracts/contracts.go index 2bcad97a9..fdc43d6b3 100644 --- a/contracts/contracts.go +++ b/contracts/contracts.go @@ -1,6 +1,9 @@ package contracts import ( + "context" + "errors" + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/ethclient" "github.com/status-im/status-go/contracts/directory" @@ -159,6 +162,15 @@ func (c *ContractMaker) NewEthScan(chainID uint64) (*ethscan.BalanceScanner, err return nil, err } + bytecode, err := backend.CodeAt(context.Background(), contractAddr, nil) + if err != nil { + return nil, err + } + + if len(bytecode) == 0 { + return nil, errors.New("is not a contract") + } + return ethscan.NewBalanceScanner( contractAddr, backend, diff --git a/services/wallet/token.go b/services/wallet/token.go index 67f7aab9f..508b40117 100644 --- a/services/wallet/token.go +++ b/services/wallet/token.go @@ -47,13 +47,13 @@ func NewTokenManager( networkManager *network.Manager, ) *TokenManager { tokenManager := &TokenManager{db, RPCClient, networkManager} - // Check the networks' custom tokens to see if we must update the tokenStore networks := networkManager.GetConfiguredNetworks() for _, network := range networks { if len(network.TokenOverrides) == 0 { continue } + for _, overrideToken := range network.TokenOverrides { tokensMap, ok := tokenStore[network.ChainID] if !ok {