mirror of
https://github.com/status-im/status-go.git
synced 2025-02-26 13:45:34 +00:00
feat!: drive proxy stage name from the client
This commit is contained in:
parent
d1d31bd6c0
commit
5bb7c6a8f3
5
Makefile
5
Makefile
@ -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) \
|
||||||
|
@ -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,190 +25,210 @@ const (
|
|||||||
|
|
||||||
var ganacheTokenAddress = common.HexToAddress("0x8571Ddc46b10d31EF963aF49b6C7799Ea7eff818")
|
var ganacheTokenAddress = common.HexToAddress("0x8571Ddc46b10d31EF963aF49b6C7799Ea7eff818")
|
||||||
|
|
||||||
var mainnet = params.Network{
|
func mainnet(stageName string) params.Network {
|
||||||
ChainID: mainnetChainID,
|
return params.Network{
|
||||||
ChainName: "Mainnet",
|
ChainID: mainnetChainID,
|
||||||
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/mainnet/", buildinfo.ApiProxyStageName),
|
ChainName: "Mainnet",
|
||||||
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/mainnet/", buildinfo.ApiProxyStageName),
|
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/mainnet/", stageName),
|
||||||
RPCURL: "https://eth-archival.rpc.grove.city/v1/",
|
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/mainnet/", stageName),
|
||||||
FallbackURL: "https://mainnet.infura.io/v3/",
|
RPCURL: "https://eth-archival.rpc.grove.city/v1/",
|
||||||
BlockExplorerURL: "https://etherscan.io/",
|
FallbackURL: "https://mainnet.infura.io/v3/",
|
||||||
IconURL: "network/Network=Ethereum",
|
BlockExplorerURL: "https://etherscan.io/",
|
||||||
ChainColor: "#627EEA",
|
IconURL: "network/Network=Ethereum",
|
||||||
ShortName: "eth",
|
ChainColor: "#627EEA",
|
||||||
NativeCurrencyName: "Ether",
|
ShortName: "eth",
|
||||||
NativeCurrencySymbol: "ETH",
|
NativeCurrencyName: "Ether",
|
||||||
NativeCurrencyDecimals: 18,
|
NativeCurrencySymbol: "ETH",
|
||||||
IsTest: false,
|
NativeCurrencyDecimals: 18,
|
||||||
Layer: 1,
|
IsTest: false,
|
||||||
Enabled: true,
|
Layer: 1,
|
||||||
RelatedChainID: goerliChainID,
|
Enabled: true,
|
||||||
|
RelatedChainID: goerliChainID,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var goerli = params.Network{
|
func goerli(stageName string) params.Network {
|
||||||
ChainID: goerliChainID,
|
return params.Network{
|
||||||
ChainName: "Mainnet",
|
ChainID: goerliChainID,
|
||||||
RPCURL: "https://goerli.infura.io/v3/",
|
ChainName: "Mainnet",
|
||||||
FallbackURL: "",
|
RPCURL: "https://goerli.infura.io/v3/",
|
||||||
BlockExplorerURL: "https://goerli.etherscan.io/",
|
FallbackURL: "",
|
||||||
IconURL: "network/Network=Ethereum",
|
BlockExplorerURL: "https://goerli.etherscan.io/",
|
||||||
ChainColor: "#627EEA",
|
IconURL: "network/Network=Ethereum",
|
||||||
ShortName: "goEth",
|
ChainColor: "#627EEA",
|
||||||
NativeCurrencyName: "Ether",
|
ShortName: "goEth",
|
||||||
NativeCurrencySymbol: "ETH",
|
NativeCurrencyName: "Ether",
|
||||||
NativeCurrencyDecimals: 18,
|
NativeCurrencySymbol: "ETH",
|
||||||
IsTest: true,
|
NativeCurrencyDecimals: 18,
|
||||||
Layer: 1,
|
IsTest: true,
|
||||||
Enabled: true,
|
Layer: 1,
|
||||||
RelatedChainID: mainnetChainID,
|
Enabled: true,
|
||||||
|
RelatedChainID: mainnetChainID,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
func sepolia(stageName string) params.Network {
|
||||||
|
return params.Network{
|
||||||
|
ChainID: sepoliaChainID,
|
||||||
|
ChainName: "Mainnet",
|
||||||
|
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/sepolia/", stageName),
|
||||||
|
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/sepolia/", stageName),
|
||||||
|
RPCURL: "https://sepolia-archival.rpc.grove.city/v1/",
|
||||||
|
FallbackURL: "https://sepolia.infura.io/v3/",
|
||||||
|
BlockExplorerURL: "https://sepolia.etherscan.io/",
|
||||||
|
IconURL: "network/Network=Ethereum",
|
||||||
|
ChainColor: "#627EEA",
|
||||||
|
ShortName: "eth",
|
||||||
|
NativeCurrencyName: "Ether",
|
||||||
|
NativeCurrencySymbol: "ETH",
|
||||||
|
NativeCurrencyDecimals: 18,
|
||||||
|
IsTest: true,
|
||||||
|
Layer: 1,
|
||||||
|
Enabled: true,
|
||||||
|
RelatedChainID: mainnetChainID,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var sepolia = params.Network{
|
func optimism(stageName string) params.Network {
|
||||||
ChainID: sepoliaChainID,
|
return params.Network{
|
||||||
ChainName: "Mainnet",
|
ChainID: optimismChainID,
|
||||||
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/sepolia/", buildinfo.ApiProxyStageName),
|
ChainName: "Optimism",
|
||||||
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/sepolia/", buildinfo.ApiProxyStageName),
|
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/optimism/mainnet/", stageName),
|
||||||
RPCURL: "https://sepolia-archival.rpc.grove.city/v1/",
|
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/mainnet/", stageName),
|
||||||
FallbackURL: "https://sepolia.infura.io/v3/",
|
RPCURL: "https://optimism-archival.rpc.grove.city/v1/",
|
||||||
BlockExplorerURL: "https://sepolia.etherscan.io/",
|
FallbackURL: "https://optimism-mainnet.infura.io/v3/",
|
||||||
IconURL: "network/Network=Ethereum",
|
BlockExplorerURL: "https://optimistic.etherscan.io",
|
||||||
ChainColor: "#627EEA",
|
IconURL: "network/Network=Optimism",
|
||||||
ShortName: "eth",
|
ChainColor: "#E90101",
|
||||||
NativeCurrencyName: "Ether",
|
ShortName: "oeth",
|
||||||
NativeCurrencySymbol: "ETH",
|
NativeCurrencyName: "Ether",
|
||||||
NativeCurrencyDecimals: 18,
|
NativeCurrencySymbol: "ETH",
|
||||||
IsTest: true,
|
NativeCurrencyDecimals: 18,
|
||||||
Layer: 1,
|
IsTest: false,
|
||||||
Enabled: true,
|
Layer: 2,
|
||||||
RelatedChainID: mainnetChainID,
|
Enabled: true,
|
||||||
|
RelatedChainID: optimismGoerliChainID,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var optimism = params.Network{
|
func optimismGoerli(stageName string) params.Network {
|
||||||
ChainID: optimismChainID,
|
return params.Network{
|
||||||
ChainName: "Optimism",
|
ChainID: optimismGoerliChainID,
|
||||||
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/optimism/mainnet/", buildinfo.ApiProxyStageName),
|
ChainName: "Optimism",
|
||||||
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/mainnet/", buildinfo.ApiProxyStageName),
|
RPCURL: "https://optimism-goerli.infura.io/v3/",
|
||||||
RPCURL: "https://optimism-archival.rpc.grove.city/v1/",
|
FallbackURL: "",
|
||||||
FallbackURL: "https://optimism-mainnet.infura.io/v3/",
|
BlockExplorerURL: "https://goerli-optimism.etherscan.io/",
|
||||||
BlockExplorerURL: "https://optimistic.etherscan.io",
|
IconURL: "network/Network=Optimism",
|
||||||
IconURL: "network/Network=Optimism",
|
ChainColor: "#E90101",
|
||||||
ChainColor: "#E90101",
|
ShortName: "goOpt",
|
||||||
ShortName: "oeth",
|
NativeCurrencyName: "Ether",
|
||||||
NativeCurrencyName: "Ether",
|
NativeCurrencySymbol: "ETH",
|
||||||
NativeCurrencySymbol: "ETH",
|
NativeCurrencyDecimals: 18,
|
||||||
NativeCurrencyDecimals: 18,
|
IsTest: true,
|
||||||
IsTest: false,
|
Layer: 2,
|
||||||
Layer: 2,
|
Enabled: false,
|
||||||
Enabled: true,
|
RelatedChainID: optimismChainID,
|
||||||
RelatedChainID: optimismGoerliChainID,
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var optimismGoerli = params.Network{
|
func optimismSepolia(stageName string) params.Network {
|
||||||
ChainID: optimismGoerliChainID,
|
return params.Network{
|
||||||
ChainName: "Optimism",
|
ChainID: optimismSepoliaChainID,
|
||||||
RPCURL: "https://optimism-goerli.infura.io/v3/",
|
ChainName: "Optimism",
|
||||||
FallbackURL: "",
|
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/optimism/sepolia/", stageName),
|
||||||
BlockExplorerURL: "https://goerli-optimism.etherscan.io/",
|
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/sepolia/", stageName),
|
||||||
IconURL: "network/Network=Optimism",
|
RPCURL: "https://optimism-sepolia-archival.rpc.grove.city/v1/",
|
||||||
ChainColor: "#E90101",
|
FallbackURL: "https://optimism-sepolia.infura.io/v3/",
|
||||||
ShortName: "goOpt",
|
BlockExplorerURL: "https://sepolia-optimism.etherscan.io/",
|
||||||
NativeCurrencyName: "Ether",
|
IconURL: "network/Network=Optimism",
|
||||||
NativeCurrencySymbol: "ETH",
|
ChainColor: "#E90101",
|
||||||
NativeCurrencyDecimals: 18,
|
ShortName: "oeth",
|
||||||
IsTest: true,
|
NativeCurrencyName: "Ether",
|
||||||
Layer: 2,
|
NativeCurrencySymbol: "ETH",
|
||||||
Enabled: false,
|
NativeCurrencyDecimals: 18,
|
||||||
RelatedChainID: optimismChainID,
|
IsTest: true,
|
||||||
|
Layer: 2,
|
||||||
|
Enabled: false,
|
||||||
|
RelatedChainID: optimismChainID,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var optimismSepolia = params.Network{
|
func arbitrum(stageName string) params.Network {
|
||||||
ChainID: optimismSepoliaChainID,
|
return params.Network{
|
||||||
ChainName: "Optimism",
|
ChainID: arbitrumChainID,
|
||||||
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/optimism/sepolia/", buildinfo.ApiProxyStageName),
|
ChainName: "Arbitrum",
|
||||||
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/sepolia/", buildinfo.ApiProxyStageName),
|
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/arbitrum/mainnet/", stageName),
|
||||||
RPCURL: "https://optimism-sepolia-archival.rpc.grove.city/v1/",
|
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/mainnet/", stageName),
|
||||||
FallbackURL: "https://optimism-sepolia.infura.io/v3/",
|
RPCURL: "https://arbitrum-one.rpc.grove.city/v1/",
|
||||||
BlockExplorerURL: "https://sepolia-optimism.etherscan.io/",
|
FallbackURL: "https://arbitrum-mainnet.infura.io/v3/",
|
||||||
IconURL: "network/Network=Optimism",
|
BlockExplorerURL: "https://arbiscan.io/",
|
||||||
ChainColor: "#E90101",
|
IconURL: "network/Network=Arbitrum",
|
||||||
ShortName: "oeth",
|
ChainColor: "#51D0F0",
|
||||||
NativeCurrencyName: "Ether",
|
ShortName: "arb1",
|
||||||
NativeCurrencySymbol: "ETH",
|
NativeCurrencyName: "Ether",
|
||||||
NativeCurrencyDecimals: 18,
|
NativeCurrencySymbol: "ETH",
|
||||||
IsTest: true,
|
NativeCurrencyDecimals: 18,
|
||||||
Layer: 2,
|
IsTest: false,
|
||||||
Enabled: false,
|
Layer: 2,
|
||||||
RelatedChainID: optimismChainID,
|
Enabled: true,
|
||||||
|
RelatedChainID: arbitrumGoerliChainID,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var arbitrum = params.Network{
|
func arbitrumGoerli(stageName string) params.Network {
|
||||||
ChainID: arbitrumChainID,
|
return params.Network{
|
||||||
ChainName: "Arbitrum",
|
ChainID: arbitrumGoerliChainID,
|
||||||
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/arbitrum/mainnet/", buildinfo.ApiProxyStageName),
|
ChainName: "Arbitrum",
|
||||||
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/mainnet/", buildinfo.ApiProxyStageName),
|
RPCURL: "https://arbitrum-goerli.infura.io/v3/",
|
||||||
RPCURL: "https://arbitrum-one.rpc.grove.city/v1/",
|
FallbackURL: "",
|
||||||
FallbackURL: "https://arbitrum-mainnet.infura.io/v3/",
|
BlockExplorerURL: "https://goerli.arbiscan.io/",
|
||||||
BlockExplorerURL: "https://arbiscan.io/",
|
IconURL: "network/Network=Arbitrum",
|
||||||
IconURL: "network/Network=Arbitrum",
|
ChainColor: "#51D0F0",
|
||||||
ChainColor: "#51D0F0",
|
ShortName: "goArb",
|
||||||
ShortName: "arb1",
|
NativeCurrencyName: "Ether",
|
||||||
NativeCurrencyName: "Ether",
|
NativeCurrencySymbol: "ETH",
|
||||||
NativeCurrencySymbol: "ETH",
|
NativeCurrencyDecimals: 18,
|
||||||
NativeCurrencyDecimals: 18,
|
IsTest: true,
|
||||||
IsTest: false,
|
Layer: 2,
|
||||||
Layer: 2,
|
Enabled: false,
|
||||||
Enabled: true,
|
RelatedChainID: arbitrumChainID,
|
||||||
RelatedChainID: arbitrumGoerliChainID,
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var arbitrumGoerli = params.Network{
|
func arbitrumSepolia(stageName string) params.Network {
|
||||||
ChainID: arbitrumGoerliChainID,
|
return params.Network{
|
||||||
ChainName: "Arbitrum",
|
ChainID: arbitrumSepoliaChainID,
|
||||||
RPCURL: "https://arbitrum-goerli.infura.io/v3/",
|
ChainName: "Arbitrum",
|
||||||
FallbackURL: "",
|
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/arbitrum/sepolia/", stageName),
|
||||||
BlockExplorerURL: "https://goerli.arbiscan.io/",
|
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/sepolia/", stageName),
|
||||||
IconURL: "network/Network=Arbitrum",
|
RPCURL: "https://arbitrum-sepolia-archival.rpc.grove.city/v1/",
|
||||||
ChainColor: "#51D0F0",
|
FallbackURL: "https://arbitrum-sepolia.infura.io/v3/",
|
||||||
ShortName: "goArb",
|
BlockExplorerURL: "https://sepolia-explorer.arbitrum.io/",
|
||||||
NativeCurrencyName: "Ether",
|
IconURL: "network/Network=Arbitrum",
|
||||||
NativeCurrencySymbol: "ETH",
|
ChainColor: "#51D0F0",
|
||||||
NativeCurrencyDecimals: 18,
|
ShortName: "arb1",
|
||||||
IsTest: true,
|
NativeCurrencyName: "Ether",
|
||||||
Layer: 2,
|
NativeCurrencySymbol: "ETH",
|
||||||
Enabled: false,
|
NativeCurrencyDecimals: 18,
|
||||||
RelatedChainID: arbitrumChainID,
|
IsTest: true,
|
||||||
|
Layer: 2,
|
||||||
|
Enabled: false,
|
||||||
|
RelatedChainID: arbitrumChainID,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var arbitrumSepolia = params.Network{
|
func defaultNetworks(stageName string) []params.Network {
|
||||||
ChainID: arbitrumSepoliaChainID,
|
return []params.Network{
|
||||||
ChainName: "Arbitrum",
|
mainnet(stageName),
|
||||||
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/grove/arbitrum/sepolia/", buildinfo.ApiProxyStageName),
|
goerli(stageName),
|
||||||
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/sepolia/", buildinfo.ApiProxyStageName),
|
sepolia(stageName),
|
||||||
RPCURL: "https://arbitrum-sepolia-archival.rpc.grove.city/v1/",
|
optimism(stageName),
|
||||||
FallbackURL: "https://arbitrum-sepolia.infura.io/v3/",
|
optimismGoerli(stageName),
|
||||||
BlockExplorerURL: "https://sepolia-explorer.arbitrum.io/",
|
optimismSepolia(stageName),
|
||||||
IconURL: "network/Network=Arbitrum",
|
arbitrum(stageName),
|
||||||
ChainColor: "#51D0F0",
|
arbitrumGoerli(stageName),
|
||||||
ShortName: "arb1",
|
arbitrumSepolia(stageName),
|
||||||
NativeCurrencyName: "Ether",
|
}
|
||||||
NativeCurrencySymbol: "ETH",
|
|
||||||
NativeCurrencyDecimals: 18,
|
|
||||||
IsTest: true,
|
|
||||||
Layer: 2,
|
|
||||||
Enabled: false,
|
|
||||||
RelatedChainID: arbitrumChainID,
|
|
||||||
}
|
|
||||||
|
|
||||||
var defaultNetworks = []params.Network{
|
|
||||||
mainnet,
|
|
||||||
goerli,
|
|
||||||
sepolia,
|
|
||||||
optimism,
|
|
||||||
optimismGoerli,
|
|
||||||
optimismSepolia,
|
|
||||||
arbitrum,
|
|
||||||
arbitrumGoerli,
|
|
||||||
arbitrumSepolia,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
//go:build !release
|
|
||||||
|
|
||||||
package buildinfo
|
|
||||||
|
|
||||||
var ApiProxyStageName = "test"
|
|
@ -1,5 +0,0 @@
|
|||||||
//go:build release
|
|
||||||
|
|
||||||
package buildinfo
|
|
||||||
|
|
||||||
var ApiProxyStageName = "prod"
|
|
@ -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
|
||||||
|
@ -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"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,15 +97,17 @@ type WalletSecretsConfig struct {
|
|||||||
RaribleMainnetAPIKey string `json:"raribleMainnetApiKey"`
|
RaribleMainnetAPIKey string `json:"raribleMainnetApiKey"`
|
||||||
RaribleTestnetAPIKey string `json:"raribleTestnetApiKey"`
|
RaribleTestnetAPIKey string `json:"raribleTestnetApiKey"`
|
||||||
|
|
||||||
AlchemyEthereumMainnetToken string `json:"alchemyEthereumMainnetToken"`
|
AlchemyEthereumMainnetToken string `json:"alchemyEthereumMainnetToken"`
|
||||||
AlchemyEthereumGoerliToken string `json:"alchemyEthereumGoerliToken"`
|
AlchemyEthereumGoerliToken string `json:"alchemyEthereumGoerliToken"`
|
||||||
AlchemyEthereumSepoliaToken string `json:"alchemyEthereumSepoliaToken"`
|
AlchemyEthereumSepoliaToken string `json:"alchemyEthereumSepoliaToken"`
|
||||||
AlchemyArbitrumMainnetToken string `json:"alchemyArbitrumMainnetToken"`
|
AlchemyArbitrumMainnetToken string `json:"alchemyArbitrumMainnetToken"`
|
||||||
AlchemyArbitrumGoerliToken string `json:"alchemyArbitrumGoerliToken"`
|
AlchemyArbitrumGoerliToken string `json:"alchemyArbitrumGoerliToken"`
|
||||||
AlchemyArbitrumSepoliaToken string `json:"alchemyArbitrumSepoliaToken"`
|
AlchemyArbitrumSepoliaToken string `json:"alchemyArbitrumSepoliaToken"`
|
||||||
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"`
|
||||||
|
@ -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, ¶ms.NodeConfig{}, nil, nil, nil, nil, nil)
|
service := NewService(db, accountsDb, appDB, &rpc.Client{NetworkManager: network.NewManager(db)}, accountFeed, nil, nil, nil, ¶ms.NodeConfig{}, nil, nil, nil, nil, nil, "")
|
||||||
|
|
||||||
data, err := service.KeycardPairings().GetPairingsJSONFileContent()
|
data, err := service.KeycardPairings().GetPairingsJSONFileContent()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -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,
|
||||||
})
|
})
|
||||||
|
@ -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"`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user