feat!: drive proxy stage name from the client

This commit is contained in:
Andrea Maria Piana 2024-08-14 16:35:48 +01:00
parent d1d31bd6c0
commit 5bb7c6a8f3
13 changed files with 233 additions and 207 deletions

View File

@ -61,11 +61,6 @@ GIT_AUTHOR := $(shell git config user.email || echo $$USER)
ENABLE_METRICS ?= true ENABLE_METRICS ?= true
BUILD_TAGS ?= gowaku_no_rln BUILD_TAGS ?= gowaku_no_rln
ifdef RELEASE
BUILD_TAGS += release
endif
BUILD_FLAGS ?= -ldflags="-X github.com/status-im/status-go/params.Version=$(RELEASE_TAG:v%=%) \ BUILD_FLAGS ?= -ldflags="-X github.com/status-im/status-go/params.Version=$(RELEASE_TAG:v%=%) \
-X github.com/status-im/status-go/params.GitCommit=$(GIT_COMMIT) \ -X github.com/status-im/status-go/params.GitCommit=$(GIT_COMMIT) \
-X github.com/status-im/status-go/params.IpfsGatewayURL=$(IPFS_GATEWAY_URL) \ -X github.com/status-im/status-go/params.IpfsGatewayURL=$(IPFS_GATEWAY_URL) \

View File

@ -5,7 +5,6 @@ import (
"strings" "strings"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/status-im/status-go/buildinfo"
"github.com/status-im/status-go/params" "github.com/status-im/status-go/params"
"github.com/status-im/status-go/protocol/requests" "github.com/status-im/status-go/protocol/requests"
) )
@ -26,11 +25,12 @@ const (
var ganacheTokenAddress = common.HexToAddress("0x8571Ddc46b10d31EF963aF49b6C7799Ea7eff818") var ganacheTokenAddress = common.HexToAddress("0x8571Ddc46b10d31EF963aF49b6C7799Ea7eff818")
var mainnet = params.Network{ func mainnet(stageName string) params.Network {
return params.Network{
ChainID: mainnetChainID, ChainID: mainnetChainID,
ChainName: "Mainnet", ChainName: "Mainnet",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/mainnet/", buildinfo.ApiProxyStageName), DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/mainnet/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/mainnet/", buildinfo.ApiProxyStageName), DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/mainnet/", stageName),
RPCURL: "https://eth-archival.rpc.grove.city/v1/", RPCURL: "https://eth-archival.rpc.grove.city/v1/",
FallbackURL: "https://mainnet.infura.io/v3/", FallbackURL: "https://mainnet.infura.io/v3/",
BlockExplorerURL: "https://etherscan.io/", BlockExplorerURL: "https://etherscan.io/",
@ -44,9 +44,11 @@ var mainnet = params.Network{
Layer: 1, Layer: 1,
Enabled: true, Enabled: true,
RelatedChainID: goerliChainID, RelatedChainID: goerliChainID,
}
} }
var goerli = params.Network{ func goerli(stageName string) params.Network {
return params.Network{
ChainID: goerliChainID, ChainID: goerliChainID,
ChainName: "Mainnet", ChainName: "Mainnet",
RPCURL: "https://goerli.infura.io/v3/", RPCURL: "https://goerli.infura.io/v3/",
@ -62,13 +64,15 @@ var goerli = params.Network{
Layer: 1, Layer: 1,
Enabled: true, Enabled: true,
RelatedChainID: mainnetChainID, RelatedChainID: mainnetChainID,
} }
var sepolia = params.Network{ }
func sepolia(stageName string) params.Network {
return params.Network{
ChainID: sepoliaChainID, ChainID: sepoliaChainID,
ChainName: "Mainnet", ChainName: "Mainnet",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/sepolia/", buildinfo.ApiProxyStageName), DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/sepolia/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/sepolia/", buildinfo.ApiProxyStageName), DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/sepolia/", stageName),
RPCURL: "https://sepolia-archival.rpc.grove.city/v1/", RPCURL: "https://sepolia-archival.rpc.grove.city/v1/",
FallbackURL: "https://sepolia.infura.io/v3/", FallbackURL: "https://sepolia.infura.io/v3/",
BlockExplorerURL: "https://sepolia.etherscan.io/", BlockExplorerURL: "https://sepolia.etherscan.io/",
@ -82,13 +86,15 @@ var sepolia = params.Network{
Layer: 1, Layer: 1,
Enabled: true, Enabled: true,
RelatedChainID: mainnetChainID, RelatedChainID: mainnetChainID,
}
} }
var optimism = params.Network{ func optimism(stageName string) params.Network {
return params.Network{
ChainID: optimismChainID, ChainID: optimismChainID,
ChainName: "Optimism", ChainName: "Optimism",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/optimism/mainnet/", buildinfo.ApiProxyStageName), DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/optimism/mainnet/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/mainnet/", buildinfo.ApiProxyStageName), DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/mainnet/", stageName),
RPCURL: "https://optimism-archival.rpc.grove.city/v1/", RPCURL: "https://optimism-archival.rpc.grove.city/v1/",
FallbackURL: "https://optimism-mainnet.infura.io/v3/", FallbackURL: "https://optimism-mainnet.infura.io/v3/",
BlockExplorerURL: "https://optimistic.etherscan.io", BlockExplorerURL: "https://optimistic.etherscan.io",
@ -102,9 +108,11 @@ var optimism = params.Network{
Layer: 2, Layer: 2,
Enabled: true, Enabled: true,
RelatedChainID: optimismGoerliChainID, RelatedChainID: optimismGoerliChainID,
}
} }
var optimismGoerli = params.Network{ func optimismGoerli(stageName string) params.Network {
return params.Network{
ChainID: optimismGoerliChainID, ChainID: optimismGoerliChainID,
ChainName: "Optimism", ChainName: "Optimism",
RPCURL: "https://optimism-goerli.infura.io/v3/", RPCURL: "https://optimism-goerli.infura.io/v3/",
@ -120,13 +128,15 @@ var optimismGoerli = params.Network{
Layer: 2, Layer: 2,
Enabled: false, Enabled: false,
RelatedChainID: optimismChainID, RelatedChainID: optimismChainID,
}
} }
var optimismSepolia = params.Network{ func optimismSepolia(stageName string) params.Network {
return params.Network{
ChainID: optimismSepoliaChainID, ChainID: optimismSepoliaChainID,
ChainName: "Optimism", ChainName: "Optimism",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/optimism/sepolia/", buildinfo.ApiProxyStageName), DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/optimism/sepolia/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/sepolia/", buildinfo.ApiProxyStageName), DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/sepolia/", stageName),
RPCURL: "https://optimism-sepolia-archival.rpc.grove.city/v1/", RPCURL: "https://optimism-sepolia-archival.rpc.grove.city/v1/",
FallbackURL: "https://optimism-sepolia.infura.io/v3/", FallbackURL: "https://optimism-sepolia.infura.io/v3/",
BlockExplorerURL: "https://sepolia-optimism.etherscan.io/", BlockExplorerURL: "https://sepolia-optimism.etherscan.io/",
@ -140,13 +150,15 @@ var optimismSepolia = params.Network{
Layer: 2, Layer: 2,
Enabled: false, Enabled: false,
RelatedChainID: optimismChainID, RelatedChainID: optimismChainID,
}
} }
var arbitrum = params.Network{ func arbitrum(stageName string) params.Network {
return params.Network{
ChainID: arbitrumChainID, ChainID: arbitrumChainID,
ChainName: "Arbitrum", ChainName: "Arbitrum",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/arbitrum/mainnet/", buildinfo.ApiProxyStageName), DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/arbitrum/mainnet/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/mainnet/", buildinfo.ApiProxyStageName), DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/mainnet/", stageName),
RPCURL: "https://arbitrum-one.rpc.grove.city/v1/", RPCURL: "https://arbitrum-one.rpc.grove.city/v1/",
FallbackURL: "https://arbitrum-mainnet.infura.io/v3/", FallbackURL: "https://arbitrum-mainnet.infura.io/v3/",
BlockExplorerURL: "https://arbiscan.io/", BlockExplorerURL: "https://arbiscan.io/",
@ -160,9 +172,11 @@ var arbitrum = params.Network{
Layer: 2, Layer: 2,
Enabled: true, Enabled: true,
RelatedChainID: arbitrumGoerliChainID, RelatedChainID: arbitrumGoerliChainID,
}
} }
var arbitrumGoerli = params.Network{ func arbitrumGoerli(stageName string) params.Network {
return params.Network{
ChainID: arbitrumGoerliChainID, ChainID: arbitrumGoerliChainID,
ChainName: "Arbitrum", ChainName: "Arbitrum",
RPCURL: "https://arbitrum-goerli.infura.io/v3/", RPCURL: "https://arbitrum-goerli.infura.io/v3/",
@ -178,13 +192,15 @@ var arbitrumGoerli = params.Network{
Layer: 2, Layer: 2,
Enabled: false, Enabled: false,
RelatedChainID: arbitrumChainID, RelatedChainID: arbitrumChainID,
}
} }
var arbitrumSepolia = params.Network{ func arbitrumSepolia(stageName string) params.Network {
return params.Network{
ChainID: arbitrumSepoliaChainID, ChainID: arbitrumSepoliaChainID,
ChainName: "Arbitrum", ChainName: "Arbitrum",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/arbitrum/sepolia/", buildinfo.ApiProxyStageName), DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/arbitrum/sepolia/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/sepolia/", buildinfo.ApiProxyStageName), DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/sepolia/", stageName),
RPCURL: "https://arbitrum-sepolia-archival.rpc.grove.city/v1/", RPCURL: "https://arbitrum-sepolia-archival.rpc.grove.city/v1/",
FallbackURL: "https://arbitrum-sepolia.infura.io/v3/", FallbackURL: "https://arbitrum-sepolia.infura.io/v3/",
BlockExplorerURL: "https://sepolia-explorer.arbitrum.io/", BlockExplorerURL: "https://sepolia-explorer.arbitrum.io/",
@ -198,18 +214,21 @@ var arbitrumSepolia = params.Network{
Layer: 2, Layer: 2,
Enabled: false, Enabled: false,
RelatedChainID: arbitrumChainID, RelatedChainID: arbitrumChainID,
}
} }
var defaultNetworks = []params.Network{ func defaultNetworks(stageName string) []params.Network {
mainnet, return []params.Network{
goerli, mainnet(stageName),
sepolia, goerli(stageName),
optimism, sepolia(stageName),
optimismGoerli, optimism(stageName),
optimismSepolia, optimismGoerli(stageName),
arbitrum, optimismSepolia(stageName),
arbitrumGoerli, arbitrum(stageName),
arbitrumSepolia, arbitrumGoerli(stageName),
arbitrumSepolia(stageName),
}
} }
var mainnetGanacheTokenOverrides = params.TokenOverride{ var mainnetGanacheTokenOverrides = params.TokenOverride{
@ -268,5 +287,5 @@ func setRPCs(networks []params.Network, request *requests.WalletSecretsConfig) [
} }
func BuildDefaultNetworks(walletSecretsConfig *requests.WalletSecretsConfig) []params.Network { func BuildDefaultNetworks(walletSecretsConfig *requests.WalletSecretsConfig) []params.Network {
return setRPCs(defaultNetworks, walletSecretsConfig) return setRPCs(defaultNetworks(walletSecretsConfig.StatusProxyStageName), walletSecretsConfig)
} }

View File

@ -12,10 +12,12 @@ import (
func TestBuildDefaultNetworks(t *testing.T) { func TestBuildDefaultNetworks(t *testing.T) {
poktToken := "grove-token" poktToken := "grove-token"
infuraToken := "infura-token" infuraToken := "infura-token"
stageName := "fast-n-bulbous"
request := &requests.CreateAccount{ request := &requests.CreateAccount{
WalletSecretsConfig: requests.WalletSecretsConfig{ WalletSecretsConfig: requests.WalletSecretsConfig{
PoktToken: poktToken, PoktToken: poktToken,
InfuraToken: infuraToken, InfuraToken: infuraToken,
StatusProxyStageName: stageName,
}, },
} }
@ -27,6 +29,8 @@ func TestBuildDefaultNetworks(t *testing.T) {
require.True(t, strings.Contains(actualNetworks[0].RPCURL, poktToken)) require.True(t, strings.Contains(actualNetworks[0].RPCURL, poktToken))
require.True(t, strings.Contains(actualNetworks[0].FallbackURL, infuraToken)) require.True(t, strings.Contains(actualNetworks[0].FallbackURL, infuraToken))
require.True(t, strings.Contains(actualNetworks[0].DefaultRPCURL, stageName))
require.True(t, strings.Contains(actualNetworks[0].DefaultFallbackURL, stageName))
require.Equal(t, goerliChainID, actualNetworks[1].ChainID) require.Equal(t, goerliChainID, actualNetworks[1].ChainID)
@ -36,11 +40,15 @@ func TestBuildDefaultNetworks(t *testing.T) {
require.True(t, strings.Contains(actualNetworks[2].RPCURL, poktToken)) require.True(t, strings.Contains(actualNetworks[2].RPCURL, poktToken))
require.True(t, strings.Contains(actualNetworks[2].FallbackURL, infuraToken)) require.True(t, strings.Contains(actualNetworks[2].FallbackURL, infuraToken))
require.True(t, strings.Contains(actualNetworks[2].DefaultRPCURL, stageName))
require.True(t, strings.Contains(actualNetworks[2].DefaultFallbackURL, stageName))
require.Equal(t, optimismChainID, actualNetworks[3].ChainID) require.Equal(t, optimismChainID, actualNetworks[3].ChainID)
require.True(t, strings.Contains(actualNetworks[3].RPCURL, poktToken)) require.True(t, strings.Contains(actualNetworks[3].RPCURL, poktToken))
require.True(t, strings.Contains(actualNetworks[3].FallbackURL, infuraToken)) require.True(t, strings.Contains(actualNetworks[3].FallbackURL, infuraToken))
require.True(t, strings.Contains(actualNetworks[3].DefaultRPCURL, stageName))
require.True(t, strings.Contains(actualNetworks[3].DefaultFallbackURL, stageName))
require.Equal(t, optimismGoerliChainID, actualNetworks[4].ChainID) require.Equal(t, optimismGoerliChainID, actualNetworks[4].ChainID)
@ -51,11 +59,15 @@ func TestBuildDefaultNetworks(t *testing.T) {
require.True(t, strings.Contains(actualNetworks[5].RPCURL, poktToken)) require.True(t, strings.Contains(actualNetworks[5].RPCURL, poktToken))
require.True(t, strings.Contains(actualNetworks[5].FallbackURL, infuraToken)) require.True(t, strings.Contains(actualNetworks[5].FallbackURL, infuraToken))
require.True(t, strings.Contains(actualNetworks[5].DefaultRPCURL, stageName))
require.True(t, strings.Contains(actualNetworks[5].DefaultFallbackURL, stageName))
require.Equal(t, arbitrumChainID, actualNetworks[6].ChainID) require.Equal(t, arbitrumChainID, actualNetworks[6].ChainID)
require.True(t, strings.Contains(actualNetworks[6].RPCURL, poktToken)) require.True(t, strings.Contains(actualNetworks[6].RPCURL, poktToken))
require.True(t, strings.Contains(actualNetworks[6].FallbackURL, infuraToken)) require.True(t, strings.Contains(actualNetworks[6].FallbackURL, infuraToken))
require.True(t, strings.Contains(actualNetworks[6].DefaultRPCURL, stageName))
require.True(t, strings.Contains(actualNetworks[6].DefaultFallbackURL, stageName))
require.Equal(t, arbitrumGoerliChainID, actualNetworks[7].ChainID) require.Equal(t, arbitrumGoerliChainID, actualNetworks[7].ChainID)
@ -66,6 +78,9 @@ func TestBuildDefaultNetworks(t *testing.T) {
require.True(t, strings.Contains(actualNetworks[8].RPCURL, poktToken)) require.True(t, strings.Contains(actualNetworks[8].RPCURL, poktToken))
require.True(t, strings.Contains(actualNetworks[8].FallbackURL, infuraToken)) require.True(t, strings.Contains(actualNetworks[8].FallbackURL, infuraToken))
require.True(t, strings.Contains(actualNetworks[8].DefaultRPCURL, stageName))
require.True(t, strings.Contains(actualNetworks[8].DefaultFallbackURL, stageName))
} }
func TestBuildDefaultNetworksGanache(t *testing.T) { func TestBuildDefaultNetworksGanache(t *testing.T) {

View File

@ -167,6 +167,10 @@ func buildWalletConfig(request *requests.WalletSecretsConfig, statusProxyEnabled
AlchemyAPIKeys: make(map[uint64]string), AlchemyAPIKeys: make(map[uint64]string),
} }
if request.StatusProxyStageName != "" {
walletConfig.StatusProxyStageName = request.StatusProxyStageName
}
if request.OpenseaAPIKey != "" { if request.OpenseaAPIKey != "" {
walletConfig.OpenseaAPIKey = request.OpenseaAPIKey walletConfig.OpenseaAPIKey = request.OpenseaAPIKey
} }
@ -285,7 +289,7 @@ func defaultNodeConfig(installationID string, request *requests.CreateAccount, o
URL: request.UpstreamConfig, URL: request.UpstreamConfig,
} }
} else { } else {
nodeConfig.UpstreamConfig.URL = defaultNetworks[0].RPCURL nodeConfig.UpstreamConfig.URL = mainnet(request.WalletSecretsConfig.StatusProxyStageName).RPCURL
nodeConfig.UpstreamConfig.Enabled = true nodeConfig.UpstreamConfig.Enabled = true
} }
@ -346,13 +350,13 @@ func defaultNodeConfig(installationID string, request *requests.CreateAccount, o
if request.VerifyTransactionURL != nil { if request.VerifyTransactionURL != nil {
nodeConfig.ShhextConfig.VerifyTransactionURL = *request.VerifyTransactionURL nodeConfig.ShhextConfig.VerifyTransactionURL = *request.VerifyTransactionURL
} else { } else {
nodeConfig.ShhextConfig.VerifyTransactionURL = defaultNetworks[0].FallbackURL nodeConfig.ShhextConfig.VerifyTransactionURL = mainnet(request.WalletSecretsConfig.StatusProxyStageName).FallbackURL
} }
if request.VerifyENSURL != nil { if request.VerifyENSURL != nil {
nodeConfig.ShhextConfig.VerifyENSURL = *request.VerifyENSURL nodeConfig.ShhextConfig.VerifyENSURL = *request.VerifyENSURL
} else { } else {
nodeConfig.ShhextConfig.VerifyENSURL = defaultNetworks[0].FallbackURL nodeConfig.ShhextConfig.VerifyENSURL = mainnet(request.WalletSecretsConfig.StatusProxyStageName).FallbackURL
} }
if request.VerifyTransactionChainID != nil { if request.VerifyTransactionChainID != nil {

View File

@ -547,7 +547,7 @@ func (b *GethStatusBackend) updateAccountColorHashAndColorID(keyUID string, acco
} }
func (b *GethStatusBackend) overrideNetworks(conf *params.NodeConfig, request *requests.Login) { func (b *GethStatusBackend) overrideNetworks(conf *params.NodeConfig, request *requests.Login) {
conf.Networks = setRPCs(defaultNetworks, &request.WalletSecretsConfig) conf.Networks = setRPCs(defaultNetworks(request.WalletSecretsConfig.StatusProxyStageName), &request.WalletSecretsConfig)
} }
func (b *GethStatusBackend) LoginAccount(request *requests.Login) error { func (b *GethStatusBackend) LoginAccount(request *requests.Login) error {

View File

@ -1,5 +0,0 @@
//go:build !release
package buildinfo
var ApiProxyStageName = "test"

View File

@ -1,5 +0,0 @@
//go:build release
package buildinfo
var ApiProxyStageName = "prod"

View File

@ -107,7 +107,7 @@ func (b *StatusNode) initServices(config *params.NodeConfig, mediaServer *server
// Wallet Service is used by wakuExtSrvc/wakuV2ExtSrvc // Wallet Service is used by wakuExtSrvc/wakuV2ExtSrvc
// Keep this initialization before the other two // Keep this initialization before the other two
if config.WalletConfig.Enabled { if config.WalletConfig.Enabled {
walletService := b.walletService(accDB, b.appDB, accountsFeed, settingsFeed, &b.walletFeed) walletService := b.walletService(accDB, b.appDB, accountsFeed, settingsFeed, &b.walletFeed, config.WalletConfig.StatusProxyStageName)
services = append(services, walletService) services = append(services, walletService)
} }
@ -572,7 +572,7 @@ func (b *StatusNode) SetWalletCommunityInfoProvider(provider thirdparty.Communit
} }
} }
func (b *StatusNode) walletService(accountsDB *accounts.Database, appDB *sql.DB, accountsFeed *event.Feed, settingsFeed *event.Feed, walletFeed *event.Feed) *wallet.Service { func (b *StatusNode) walletService(accountsDB *accounts.Database, appDB *sql.DB, accountsFeed *event.Feed, settingsFeed *event.Feed, walletFeed *event.Feed, statusProxyStageName string) *wallet.Service {
if b.walletSrvc == nil { if b.walletSrvc == nil {
b.walletSrvc = wallet.NewService( b.walletSrvc = wallet.NewService(
b.walletDB, accountsDB, appDB, b.rpcClient, accountsFeed, settingsFeed, b.gethAccountManager, b.transactor, b.config, b.walletDB, accountsDB, appDB, b.rpcClient, accountsFeed, settingsFeed, b.gethAccountManager, b.transactor, b.config,
@ -581,6 +581,7 @@ func (b *StatusNode) walletService(accountsDB *accounts.Database, appDB *sql.DB,
b.pendingTracker, b.pendingTracker,
walletFeed, walletFeed,
b.httpServer, b.httpServer,
statusProxyStageName,
) )
} }
return b.walletSrvc return b.walletSrvc

View File

@ -580,6 +580,7 @@ type WalletConfig struct {
StatusProxyBlockchainUser string `json:"StatusProxyBlockchainUser"` StatusProxyBlockchainUser string `json:"StatusProxyBlockchainUser"`
StatusProxyBlockchainPassword string `json:"StatusProxyBlockchainPassword"` StatusProxyBlockchainPassword string `json:"StatusProxyBlockchainPassword"`
StatusProxyEnabled bool `json:"StatusProxyEnabled"` StatusProxyEnabled bool `json:"StatusProxyEnabled"`
StatusProxyStageName string `json:"StatusProxyStageName"`
EnableCelerBridge bool `json:"EnableCelerBridge"` EnableCelerBridge bool `json:"EnableCelerBridge"`
} }

View File

@ -106,6 +106,8 @@ type WalletSecretsConfig struct {
AlchemyOptimismMainnetToken string `json:"alchemyOptimismMainnetToken"` AlchemyOptimismMainnetToken string `json:"alchemyOptimismMainnetToken"`
AlchemyOptimismGoerliToken string `json:"alchemyOptimismGoerliToken"` AlchemyOptimismGoerliToken string `json:"alchemyOptimismGoerliToken"`
AlchemyOptimismSepoliaToken string `json:"alchemyOptimismSepoliaToken"` AlchemyOptimismSepoliaToken string `json:"alchemyOptimismSepoliaToken"`
StatusProxyStageName string `json:"statusProxyStageName"`
StatusProxyMarketUser string `json:"statusProxyMarketUser"` StatusProxyMarketUser string `json:"statusProxyMarketUser"`
StatusProxyMarketPassword string `json:"statusProxyMarketPassword"` StatusProxyMarketPassword string `json:"statusProxyMarketPassword"`
StatusProxyBlockchainUser string `json:"statusProxyBlockchainUser"` StatusProxyBlockchainUser string `json:"statusProxyBlockchainUser"`

View File

@ -29,7 +29,7 @@ func TestKeycardPairingsFile(t *testing.T) {
accountFeed := &event.Feed{} accountFeed := &event.Feed{}
service := NewService(db, accountsDb, appDB, &rpc.Client{NetworkManager: network.NewManager(db)}, accountFeed, nil, nil, nil, &params.NodeConfig{}, nil, nil, nil, nil, nil) service := NewService(db, accountsDb, appDB, &rpc.Client{NetworkManager: network.NewManager(db)}, accountFeed, nil, nil, nil, &params.NodeConfig{}, nil, nil, nil, nil, nil, "")
data, err := service.KeycardPairings().GetPairingsJSONFileContent() data, err := service.KeycardPairings().GetPairingsJSONFileContent()
require.NoError(t, err) require.NoError(t, err)

View File

@ -3,6 +3,7 @@ package wallet
import ( import (
"database/sql" "database/sql"
"encoding/json" "encoding/json"
"fmt"
"sync" "sync"
"time" "time"
@ -61,6 +62,7 @@ func NewService(
pendingTxManager *transactions.PendingTxTracker, pendingTxManager *transactions.PendingTxTracker,
feed *event.Feed, feed *event.Feed,
mediaServer *server.MediaServer, mediaServer *server.MediaServer,
statusProxyStageName string,
) *Service { ) *Service {
signals := &walletevent.SignalsTransmitter{ signals := &walletevent.SignalsTransmitter{
Publisher: feed, Publisher: feed,
@ -118,7 +120,7 @@ func NewService(
cryptoCompare := cryptocompare.NewClient() cryptoCompare := cryptocompare.NewClient()
coingecko := coingecko.NewClient() coingecko := coingecko.NewClient()
cryptoCompareProxy := cryptocompare.NewClientWithParams(cryptocompare.Params{ cryptoCompareProxy := cryptocompare.NewClientWithParams(cryptocompare.Params{
URL: cryptocompare.CryptoCompareStatusProxyURL, URL: fmt.Sprintf("https://%s.api.status.im/cryptocompare/", statusProxyStageName),
User: config.WalletConfig.StatusProxyMarketUser, User: config.WalletConfig.StatusProxyMarketUser,
Password: config.WalletConfig.StatusProxyMarketPassword, Password: config.WalletConfig.StatusProxyMarketPassword,
}) })

View File

@ -7,7 +7,6 @@ import (
"net/url" "net/url"
"strings" "strings"
"github.com/status-im/status-go/buildinfo"
"github.com/status-im/status-go/services/wallet/thirdparty" "github.com/status-im/status-go/services/wallet/thirdparty"
"github.com/status-im/status-go/services/wallet/thirdparty/utils" "github.com/status-im/status-go/services/wallet/thirdparty/utils"
) )
@ -15,8 +14,6 @@ import (
const extraParamStatus = "Status.im" const extraParamStatus = "Status.im"
const baseURL = "https://min-api.cryptocompare.com" const baseURL = "https://min-api.cryptocompare.com"
var CryptoCompareStatusProxyURL = fmt.Sprintf("https://%s.api.status.im/cryptocompare/", buildinfo.ApiProxyStageName)
type HistoricalPricesContainer struct { type HistoricalPricesContainer struct {
Aggregated bool `json:"Aggregated"` Aggregated bool `json:"Aggregated"`
TimeFrom int64 `json:"TimeFrom"` TimeFrom int64 `json:"TimeFrom"`