github.com/status-im/status-go@v1.1.0/api/default_networks_test.go (about)

     1  package api
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/status-im/status-go/protocol/requests"
    10  )
    11  
    12  func TestBuildDefaultNetworks(t *testing.T) {
    13  	poktToken := "grove-token"
    14  	infuraToken := "infura-token"
    15  	stageName := "fast-n-bulbous"
    16  	request := &requests.CreateAccount{
    17  		WalletSecretsConfig: requests.WalletSecretsConfig{
    18  			PoktToken:            poktToken,
    19  			InfuraToken:          infuraToken,
    20  			StatusProxyStageName: stageName,
    21  		},
    22  	}
    23  
    24  	actualNetworks := BuildDefaultNetworks(&request.WalletSecretsConfig)
    25  
    26  	require.Len(t, actualNetworks, 9)
    27  
    28  	require.Equal(t, mainnetChainID, actualNetworks[0].ChainID)
    29  
    30  	require.True(t, strings.Contains(actualNetworks[0].RPCURL, poktToken))
    31  	require.True(t, strings.Contains(actualNetworks[0].FallbackURL, infuraToken))
    32  	require.True(t, strings.Contains(actualNetworks[0].DefaultRPCURL, stageName))
    33  	require.True(t, strings.Contains(actualNetworks[0].DefaultFallbackURL, stageName))
    34  
    35  	require.Equal(t, goerliChainID, actualNetworks[1].ChainID)
    36  
    37  	require.True(t, strings.Contains(actualNetworks[1].RPCURL, infuraToken))
    38  
    39  	require.Equal(t, sepoliaChainID, actualNetworks[2].ChainID)
    40  
    41  	require.True(t, strings.Contains(actualNetworks[2].RPCURL, poktToken))
    42  	require.True(t, strings.Contains(actualNetworks[2].FallbackURL, infuraToken))
    43  	require.True(t, strings.Contains(actualNetworks[2].DefaultRPCURL, stageName))
    44  	require.True(t, strings.Contains(actualNetworks[2].DefaultFallbackURL, stageName))
    45  
    46  	require.Equal(t, optimismChainID, actualNetworks[3].ChainID)
    47  
    48  	require.True(t, strings.Contains(actualNetworks[3].RPCURL, poktToken))
    49  	require.True(t, strings.Contains(actualNetworks[3].FallbackURL, infuraToken))
    50  	require.True(t, strings.Contains(actualNetworks[3].DefaultRPCURL, stageName))
    51  	require.True(t, strings.Contains(actualNetworks[3].DefaultFallbackURL, stageName))
    52  
    53  	require.Equal(t, optimismGoerliChainID, actualNetworks[4].ChainID)
    54  
    55  	require.True(t, strings.Contains(actualNetworks[4].RPCURL, infuraToken))
    56  	require.Equal(t, "", actualNetworks[4].FallbackURL)
    57  
    58  	require.Equal(t, optimismSepoliaChainID, actualNetworks[5].ChainID)
    59  
    60  	require.True(t, strings.Contains(actualNetworks[5].RPCURL, poktToken))
    61  	require.True(t, strings.Contains(actualNetworks[5].FallbackURL, infuraToken))
    62  	require.True(t, strings.Contains(actualNetworks[5].DefaultRPCURL, stageName))
    63  	require.True(t, strings.Contains(actualNetworks[5].DefaultFallbackURL, stageName))
    64  
    65  	require.Equal(t, arbitrumChainID, actualNetworks[6].ChainID)
    66  
    67  	require.True(t, strings.Contains(actualNetworks[6].RPCURL, poktToken))
    68  	require.True(t, strings.Contains(actualNetworks[6].FallbackURL, infuraToken))
    69  	require.True(t, strings.Contains(actualNetworks[6].DefaultRPCURL, stageName))
    70  	require.True(t, strings.Contains(actualNetworks[6].DefaultFallbackURL, stageName))
    71  
    72  	require.Equal(t, arbitrumGoerliChainID, actualNetworks[7].ChainID)
    73  
    74  	require.True(t, strings.Contains(actualNetworks[7].RPCURL, infuraToken))
    75  	require.Equal(t, "", actualNetworks[7].FallbackURL)
    76  
    77  	require.Equal(t, arbitrumSepoliaChainID, actualNetworks[8].ChainID)
    78  
    79  	require.True(t, strings.Contains(actualNetworks[8].RPCURL, poktToken))
    80  	require.True(t, strings.Contains(actualNetworks[8].FallbackURL, infuraToken))
    81  	require.True(t, strings.Contains(actualNetworks[8].DefaultRPCURL, stageName))
    82  	require.True(t, strings.Contains(actualNetworks[8].DefaultFallbackURL, stageName))
    83  
    84  }
    85  
    86  func TestBuildDefaultNetworksGanache(t *testing.T) {
    87  	ganacheURL := "ganacheurl"
    88  	request := &requests.CreateAccount{
    89  		WalletSecretsConfig: requests.WalletSecretsConfig{
    90  			GanacheURL: ganacheURL,
    91  		},
    92  	}
    93  
    94  	actualNetworks := BuildDefaultNetworks(&request.WalletSecretsConfig)
    95  
    96  	require.Len(t, actualNetworks, 9)
    97  
    98  	for _, n := range actualNetworks {
    99  		require.True(t, strings.Contains(n.RPCURL, ganacheURL))
   100  		require.True(t, strings.Contains(n.FallbackURL, ganacheURL))
   101  
   102  	}
   103  
   104  	require.Equal(t, mainnetChainID, actualNetworks[0].ChainID)
   105  
   106  	require.NotNil(t, actualNetworks[0].TokenOverrides)
   107  	require.Len(t, actualNetworks[0].TokenOverrides, 1)
   108  	require.Equal(t, sntSymbol, actualNetworks[0].TokenOverrides[0].Symbol)
   109  	require.Equal(t, ganacheTokenAddress, actualNetworks[0].TokenOverrides[0].Address)
   110  
   111  	require.Equal(t, goerliChainID, actualNetworks[1].ChainID)
   112  
   113  	require.NotNil(t, actualNetworks[1].TokenOverrides)
   114  	require.Len(t, actualNetworks[1].TokenOverrides, 1)
   115  	require.Equal(t, sttSymbol, actualNetworks[1].TokenOverrides[0].Symbol)
   116  	require.Equal(t, ganacheTokenAddress, actualNetworks[1].TokenOverrides[0].Address)
   117  
   118  }