github.com/status-im/status-go@v1.1.0/services/connector/commands/chain_id.go (about) 1 package commands 2 3 import ( 4 "database/sql" 5 6 "github.com/status-im/status-go/services/connector/chainutils" 7 persistence "github.com/status-im/status-go/services/connector/database" 8 walletCommon "github.com/status-im/status-go/services/wallet/common" 9 ) 10 11 type ChainIDCommand struct { 12 NetworkManager NetworkManagerInterface 13 Db *sql.DB 14 } 15 16 func (c *ChainIDCommand) Execute(request RPCRequest) (interface{}, error) { 17 err := request.Validate() 18 if err != nil { 19 return "", err 20 } 21 22 dApp, err := persistence.SelectDAppByUrl(c.Db, request.URL) 23 if err != nil { 24 return "", err 25 } 26 27 var chainId uint64 28 if dApp == nil { 29 chainId, err = chainutils.GetDefaultChainID(c.NetworkManager) 30 if err != nil { 31 return "", err 32 } 33 } else { 34 chainId = dApp.ChainID 35 } 36 37 chainIdHex, err := chainutils.GetHexChainID(walletCommon.ChainID(chainId).String()) 38 if err != nil { 39 return "", err 40 } 41 42 return chainIdHex, nil 43 }