Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -293,10 +293,14 @@ generate: ##@ Run generate for all given packages using go-generate-fast, fallb

generate-contracts:
go generate ./contracts

download-tokens:
go run ./services/wallet/token/token-lists/default-lists/downloader/main.go
echo "Downloading token lists..."; \
GOROOT=$$(go env GOROOT) GOFLAGS="-mod=mod" go run ./services/wallet/token/local-token-lists/default-lists/downloader/main.go; \
echo "token list downloaded successfully"; \

analyze-token-stores:
go run ./services/wallet/token/token-lists/analyzer/main.go
go run ./services/wallet/token/local-token-lists/analyzer/main.go

prepare-release: clean-release
mkdir -p $(RELEASE_DIR)
Expand Down
3 changes: 1 addition & 2 deletions api/geth_backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (

"github.com/imdario/mergo"

"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
ethcrypto "github.com/ethereum/go-ethereum/crypto"
signercore "github.com/ethereum/go-ethereum/signer/core/apitypes"
Expand Down Expand Up @@ -2021,7 +2020,7 @@ func (b *GethStatusBackend) SendTransactionWithSignature(sendArgs wallettypes.Se
return hash, err
}

return b.transactor.SendTransactionWithSignature(common.Address(sendArgs.From), sendArgs.Symbol, txWithSignature)
return b.transactor.SendTransactionWithSignature(&sendArgs, txWithSignature)
}

// HashTransaction validate the transaction and returns new sendArgs and the transaction hash.
Expand Down
22 changes: 15 additions & 7 deletions api/protocol_adaptors.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@ import (
"context"

gethcommon "github.com/ethereum/go-ethereum/common"

"golang.org/x/exp/maps"

"github.com/status-im/status-go/protocol/communities"
"github.com/status-im/status-go/rpc/network"
"github.com/status-im/status-go/services/wallet/token"
tokenTypes "github.com/status-im/status-go/services/wallet/token/types"
tokentypes "github.com/status-im/status-go/services/wallet/token/types"
)

var _ communities.NetworkManager = (*CommunitiesNetworkManager)(nil)
Expand Down Expand Up @@ -43,7 +46,7 @@ func NewCommunitiesTokenManager(tm *token.Manager) *CommunitiesTokenManager {
return &CommunitiesTokenManager{tokenManager: tm}
}

func (m *CommunitiesTokenManager) FindOrCreateTokenByAddress(ctx context.Context, chainID uint64, address gethcommon.Address) *tokenTypes.Token {
func (m *CommunitiesTokenManager) FindOrCreateTokenByAddress(ctx context.Context, chainID uint64, address gethcommon.Address) (*tokentypes.Token, error) {
return m.tokenManager.FindOrCreateTokenByAddress(ctx, chainID, address)
}

Expand All @@ -55,18 +58,23 @@ func NewCommunitiesTokenBalanceManager(tm *token.Manager) *CommunitiesTokenBalan
return &CommunitiesTokenBalanceManager{tokenManager: tm}
}

func (m *CommunitiesTokenBalanceManager) GetBalancesByChain(ctx context.Context, accounts, tokenAddresses []gethcommon.Address, chainIDs []uint64) (communities.BalancesByChain, error) {
chainClients, err := m.tokenManager.RPCClient.EthClients(chainIDs)
func (m *CommunitiesTokenBalanceManager) GetBalancesByChain(ctx context.Context, accounts []gethcommon.Address, tokens []*tokentypes.Token) (communities.BalancesByChain, error) {
chainIDs := make(map[uint64]struct{}, 0)
for _, token := range tokens {
chainIDs[token.ChainID] = struct{}{}
}

chainClients, err := m.tokenManager.RPCClient.EthClients(maps.Keys(chainIDs))
if err != nil {
return nil, err
}

resp, err := m.tokenManager.GetBalancesByChain(context.Background(), chainClients, accounts, tokenAddresses)
resp, err := m.tokenManager.GetBalancesByChain(context.Background(), chainClients, accounts, tokens)
return resp, err
}

func (m *CommunitiesTokenBalanceManager) GetCachedBalancesByChain(ctx context.Context, accounts, tokenAddresses []gethcommon.Address, chainIDs []uint64) (communities.BalancesByChain, error) {
resp, err := m.tokenManager.GetCachedBalancesByChain(accounts, tokenAddresses, chainIDs)
func (m *CommunitiesTokenBalanceManager) GetCachedBalancesByChain(ctx context.Context, accounts []gethcommon.Address, tokens []*tokentypes.Token) (communities.BalancesByChain, error) {
resp, err := m.tokenManager.GetCachedBalancesByChain(accounts, tokens)
if err != nil {
return resp, err
}
Expand Down
453 changes: 235 additions & 218 deletions contracts/hop/address.go

Large diffs are not rendered by default.

9 changes: 7 additions & 2 deletions contracts/snt/address.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ import (
var errorNotAvailableOnChainID = errors.New("not available for chainID")

var contractAddressByChainID = map[uint64]common.Address{
1: common.HexToAddress("0x744d70fdbe2ba4cf95131626614a1763df805b9e"), // mainnet
11155111: common.HexToAddress("0xE452027cdEF746c7Cd3DB31CB700428b16cD8E51"), // sepolia
1: common.HexToAddress("0x744d70fdbe2ba4cf95131626614a1763df805b9e"), // mainnet
10: common.HexToAddress("0x650af3c15af43dcb218406d30784416d64cfb6b2"), // optimism
8453: common.HexToAddress("0x662015ec830df08c0fc45896fab726542e8ac09e"), // base
42161: common.HexToAddress("0x707f635951193ddafbb40971a0fcaab8a6415160"), // arbitrum
11155111: common.HexToAddress("0xE452027cdEF746c7Cd3DB31CB700428b16cD8E51"), // sepolia
84532: common.HexToAddress("0xfdb3b57944943a7724fcc0520ee2b10659969a06"), // base testnet
1660990954: common.HexToAddress("0x1c3ac2a186c6149ae7cb4d716ebbd0766e4f898a"), // status testnet
}

func ContractAddress(chainID uint64) (common.Address, error) {
Expand Down
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ require (
github.com/prometheus/client_model v0.6.1
github.com/schollz/peerdiscovery v1.7.0
github.com/status-im/extkeys v1.4.0
github.com/status-im/go-wallet-sdk v0.0.0-20250924175027-d5faf23a5ef7
github.com/status-im/go-wallet-sdk v0.0.0-20251008130932-65a4ccb7c8c2
github.com/waku-org/go-waku v0.8.1-0.20250825172353-0c3d6dc0a8cc
github.com/waku-org/waku-go-bindings v0.0.0-20250714110306-6feba5b0df4d
github.com/wk8/go-ordered-map/v2 v2.1.7
Expand Down Expand Up @@ -164,6 +164,7 @@ require (
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect
github.com/go-playground/validator/v10 v10.11.1 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
Expand Down
8 changes: 6 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -876,10 +876,14 @@ github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dp
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ=
github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=
github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg=
github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg=
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
Expand Down Expand Up @@ -2067,8 +2071,8 @@ github.com/status-im/go-ethereum v1.10.25-status.24 h1:TOLSwMHbJ1KeLAPljVP7o8jmg
github.com/status-im/go-ethereum v1.10.25-status.24/go.mod h1:kcIyUwKuTYxEXYRTVkvHtV6EyESKuI5EubF3et9cyR8=
github.com/status-im/go-sqlcipher/v4 v4.5.4-status.3 h1:/73h1w1hUfb3wVyTlNrUIwahZxatgesCHa6lwO57C2M=
github.com/status-im/go-sqlcipher/v4 v4.5.4-status.3/go.mod h1:mF2UmIpBnzFeBdu/ypTDb/LdbS0nk0dfSN1WUsWTjMA=
github.com/status-im/go-wallet-sdk v0.0.0-20250924175027-d5faf23a5ef7 h1:/v5gYWYI3qHClTNkgGwAyd9bvrujdHAw7d0ax1a3zOU=
github.com/status-im/go-wallet-sdk v0.0.0-20250924175027-d5faf23a5ef7/go.mod h1:mFt4aWzn/gR/IOWL75oEowJNQaBvpe3DxYQo0woAdCE=
github.com/status-im/go-wallet-sdk v0.0.0-20251008130932-65a4ccb7c8c2 h1:Kojk0nwiwacJTgSGlbhysYCQqgTxGZ1OP7bTfdYK2/o=
github.com/status-im/go-wallet-sdk v0.0.0-20251008130932-65a4ccb7c8c2/go.mod h1:hcM28yVt0wuirr4bqTTgHLw2BbIc2E3FRAR4yrxA/TA=
github.com/status-im/gomoji v1.1.3-0.20220213022530-e5ac4a8732d4 h1:CtobZoiNdHpx+xurFxnuJ1xsGm3oKMfcZkB3vmomJmA=
github.com/status-im/gomoji v1.1.3-0.20220213022530-e5ac4a8732d4/go.mod h1:hmpnZzkzSZJbFYWAUkrPV8I36x7mdYiPhPqnALP4fKA=
github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q=
Expand Down
24 changes: 13 additions & 11 deletions node/get_status_node.go
Original file line number Diff line number Diff line change
Expand Up @@ -359,15 +359,6 @@ func (n *StatusNode) startWithDB(config *params.NodeConfig) error {
}

func (n *StatusNode) createAndStartTokenManager() error {
accDB, err := accounts.NewDB(n.appDB)
if err != nil {
return err
}

n.tokenManager = token.NewTokenManager(n.walletDB, n.rpcClient, community.NewManager(n.appDB, n.mediaServer, nil),
n.rpcClient.GetNetworkManager(), n.appDB, n.mediaServer, &n.walletFeed, n.accountsPublisher, accDB,
token.NewPersistence(n.walletDB))

const (
defaultAutoRefreshInterval = 30 * time.Minute // interval after which we should fetch the token lists from the remote source (or use the default one if remote source is not set)
defaultAutoRefreshCheckInterval = 3 * time.Minute // interval after which we should check if we should trigger the auto-refresh
Expand All @@ -382,8 +373,19 @@ func (n *StatusNode) createAndStartTokenManager() error {
autoRefreshCheckInterval = time.Duration(n.config.WalletConfig.TokensListsAutoRefreshCheckInterval) * time.Second
}

n.tokenManager.Start(context.Background(), autoRefreshInterval, autoRefreshCheckInterval)
return nil
accDB, err := accounts.NewDB(n.appDB)
if err != nil {
return err
}

n.tokenManager, err = token.NewTokenManager(n.walletDB, n.rpcClient, community.NewManager(n.appDB, n.mediaServer, nil),
n.rpcClient.GetNetworkManager(), n.appDB, n.mediaServer, &n.walletFeed, n.accountsPublisher, accDB,
autoRefreshInterval, autoRefreshCheckInterval)
if err != nil {
return err
}

return n.tokenManager.Start(context.Background())
}

func (n *StatusNode) setupRPCClient() (err error) {
Expand Down
13 changes: 8 additions & 5 deletions node/status_node_services.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,11 @@ func (b *StatusNode) initServices(config *params.NodeConfig, mediaServer *server
// Wallet Service is used by wakuExtSrvc/wakuV2ExtSrvc
// Keep this initialization before the other two
if config.WalletConfig.Enabled {
walletService := b.walletService(accDB, b.appDB, b.accountsPublisher, &b.walletFeed, config.WalletConfig.StatusProxyStageName)
services = append(services, walletService)
err := b.createWalletService(accDB, b.appDB, b.accountsPublisher, &b.walletFeed, config.WalletConfig.StatusProxyStageName)
if err != nil {
return err
}
services = append(services, b.walletSrvc)
}

// CollectiblesManager needs the WakuExt service to get metadata for
Expand Down Expand Up @@ -284,9 +287,9 @@ func (b *StatusNode) SetWalletCommunityInfoProvider(provider thirdparty.Communit
}
}

func (b *StatusNode) walletService(accountsDB *accounts.Database, appDB *sql.DB, accountsPublisher *pubsub.Publisher, walletFeed *event.Feed, statusProxyStageName string) *wallet.Service {
func (b *StatusNode) createWalletService(accountsDB *accounts.Database, appDB *sql.DB, accountsPublisher *pubsub.Publisher, walletFeed *event.Feed, statusProxyStageName string) (err error) {
if b.walletSrvc == nil {
b.walletSrvc = wallet.NewService(
b.walletSrvc, err = wallet.NewService(
b.walletDB, accountsDB, appDB, b.rpcClient, accountsPublisher, b.gethAccountsManager, b.transactor, b.config,
b.ensService(b.timeSourceNow()).API().EnsResolver(),
b.pendingTracker,
Expand All @@ -296,7 +299,7 @@ func (b *StatusNode) walletService(accountsDB *accounts.Database, appDB *sql.DB,
statusProxyStageName,
)
}
return b.walletSrvc
return
}

func (b *StatusNode) ethService() *eth.Service {
Expand Down
45 changes: 20 additions & 25 deletions params/network_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package params
import (
"net/url"

"github.com/ethereum/go-ethereum/common"

"github.com/status-im/status-go/pkg/security"

"github.com/status-im/go-wallet-sdk/pkg/tokens/types"
)

// RpcProviderAuthType defines the different types of authentication for RPC providers
Expand Down Expand Up @@ -60,11 +60,6 @@ func (p RpcProvider) GetHost() string {
return u.Host
}

type TokenOverride struct {
Symbol string `json:"symbol"`
Address common.Address `json:"address"`
}

type Network struct {
ChainID uint64 `json:"chainId" validate:"required,gt=0"`
ChainName string `json:"chainName" validate:"required,min=1"`
Expand All @@ -80,30 +75,30 @@ type Network struct {
FallbackURL string `json:"fallbackURL" validate:"omitempty,url"` // Deprecated
OriginalFallbackURL string `json:"originalFallbackURL" validate:"omitempty,url"` // Deprecated

BlockExplorerURL string `json:"blockExplorerUrl,omitempty" validate:"omitempty,url"`
IconURL string `json:"iconUrl,omitempty" validate:"omitempty"`
NativeCurrencyName string `json:"nativeCurrencyName,omitempty" validate:"omitempty,min=1"`
NativeCurrencySymbol string `json:"nativeCurrencySymbol,omitempty" validate:"omitempty,min=1"`
NativeCurrencyDecimals uint64 `json:"nativeCurrencyDecimals" validate:"omitempty"`
IsTest bool `json:"isTest"`
Layer uint64 `json:"layer" validate:"omitempty"`
Enabled bool `json:"enabled"`
ChainColor string `json:"chainColor" validate:"omitempty"`
ShortName string `json:"shortName" validate:"omitempty,min=1"`
TokenOverrides []TokenOverride `json:"tokenOverrides" validate:"omitempty,dive"`
RelatedChainID uint64 `json:"relatedChainId" validate:"omitempty"`
IsActive bool `json:"isActive"`
IsDeactivatable bool `json:"isDeactivatable"`
EIP1559Enabled bool `json:"eip1559Enabled"`
NoBaseFee bool `json:"noBaseFee"`
NoPriorityFee bool `json:"noPriorityFee"`
BlockExplorerURL string `json:"blockExplorerUrl,omitempty" validate:"omitempty,url"`
IconURL string `json:"iconUrl,omitempty" validate:"omitempty"`
NativeCurrencyName string `json:"nativeCurrencyName,omitempty" validate:"omitempty,min=1"`
NativeCurrencySymbol string `json:"nativeCurrencySymbol,omitempty" validate:"omitempty,min=1"`
NativeCurrencyDecimals uint64 `json:"nativeCurrencyDecimals" validate:"omitempty"`
IsTest bool `json:"isTest"`
Layer uint64 `json:"layer" validate:"omitempty"`
Enabled bool `json:"enabled"`
ChainColor string `json:"chainColor" validate:"omitempty"`
ShortName string `json:"shortName" validate:"omitempty,min=1"`
TokenOverrides []types.Token `json:"tokenOverrides" validate:"omitempty,dive"`
RelatedChainID uint64 `json:"relatedChainId" validate:"omitempty"`
IsActive bool `json:"isActive"`
IsDeactivatable bool `json:"isDeactivatable"`
EIP1559Enabled bool `json:"eip1559Enabled"`
NoBaseFee bool `json:"noBaseFee"`
NoPriorityFee bool `json:"noPriorityFee"`
}

func (n *Network) DeepCopy() Network {
updatedNetwork := *n
updatedNetwork.RpcProviders = make([]RpcProvider, len(n.RpcProviders))
copy(updatedNetwork.RpcProviders, n.RpcProviders)
updatedNetwork.TokenOverrides = make([]TokenOverride, len(n.TokenOverrides))
updatedNetwork.TokenOverrides = make([]types.Token, len(n.TokenOverrides))
copy(updatedNetwork.TokenOverrides, n.TokenOverrides)
return updatedNetwork
}
Expand Down
12 changes: 8 additions & 4 deletions params/networkhelper/provider_utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import (

"github.com/ethereum/go-ethereum/common"

"github.com/status-im/go-wallet-sdk/pkg/tokens/types"

"github.com/brianvoe/gofakeit/v6"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
Expand Down Expand Up @@ -180,8 +182,8 @@ func TestDeepCopyNetwork(t *testing.T) {
*params.NewDirectProvider(walletcommon.EthereumMainnet, "Provider2", security.NewSensitiveString("https://mainnet.infura.io/v3/"), true),
})

originalNetwork.TokenOverrides = []params.TokenOverride{
{Symbol: "token1", Address: common.HexToAddress("0x123")},
originalNetwork.TokenOverrides = []types.Token{
{ChainID: walletcommon.EthereumMainnet, Address: common.HexToAddress("0x123")},
}

copiedNetwork := originalNetwork.DeepCopy()
Expand All @@ -190,7 +192,9 @@ func TestDeepCopyNetwork(t *testing.T) {

// Modify the copied network and verify that the original network remains unchanged
copiedNetwork.RpcProviders[0].Enabled = false
copiedNetwork.TokenOverrides[0].Symbol = "modifiedSymbol"
copiedNetwork.TokenOverrides[0].ChainID = walletcommon.OptimismMainnet
copiedNetwork.TokenOverrides[0].Address = common.HexToAddress("0x456")
assert.NotEqual(t, originalNetwork.RpcProviders[0].Enabled, copiedNetwork.RpcProviders[0].Enabled, "Original network should remain unchanged")
assert.NotEqual(t, originalNetwork.TokenOverrides[0].Symbol, copiedNetwork.TokenOverrides[0].Symbol, "Original network should remain unchanged")
assert.NotEqual(t, originalNetwork.TokenOverrides[0].ChainID, copiedNetwork.TokenOverrides[0].ChainID, "Original network should remain unchanged")
assert.NotEqual(t, originalNetwork.TokenOverrides[0].Address, copiedNetwork.TokenOverrides[0].Address, "Original network should remain unchanged")
}
10 changes: 5 additions & 5 deletions protocol/communities/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ import (
"github.com/status-im/status-go/services/wallet/bigint"
walletcommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/thirdparty"
tokenTypes "github.com/status-im/status-go/services/wallet/token/types"
tokentypes "github.com/status-im/status-go/services/wallet/token/types"
"github.com/status-im/status-go/signal"
)

Expand Down Expand Up @@ -264,12 +264,12 @@ type NetworkManager interface {
GetAllChainIDs() ([]uint64, error)
}
type TokenManager interface {
FindOrCreateTokenByAddress(ctx context.Context, chainID uint64, address gethcommon.Address) *tokenTypes.Token
FindOrCreateTokenByAddress(ctx context.Context, chainID uint64, address gethcommon.Address) (*tokentypes.Token, error)
}

type TokenBalanceManager interface {
GetBalancesByChain(ctx context.Context, accounts, tokenAddresses []gethcommon.Address, chainIDs []uint64) (BalancesByChain, error)
GetCachedBalancesByChain(ctx context.Context, accounts, tokenAddresses []gethcommon.Address, chainIDs []uint64) (BalancesByChain, error)
GetBalancesByChain(ctx context.Context, accounts []gethcommon.Address, tokens []*tokentypes.Token) (BalancesByChain, error)
GetCachedBalancesByChain(ctx context.Context, accounts []gethcommon.Address, tokens []*tokentypes.Token) (BalancesByChain, error)
}

type CollectibleContractData struct {
Expand Down Expand Up @@ -2326,7 +2326,7 @@ func (m *Manager) handleCommunityDescriptionMessageCommon(community *Community,
}

for chainID, address := range tokenMetadata.ContractAddresses {
_ = m.tokenManager.FindOrCreateTokenByAddress(context.Background(), chainID, gethcommon.HexToAddress(address))
_, _ = m.tokenManager.FindOrCreateTokenByAddress(context.Background(), chainID, gethcommon.HexToAddress(address))
}
}
}
Expand Down
Loading