Skip to content

Commit

Permalink
feat_: integrate base chain (#6228)
Browse files Browse the repository at this point in the history
* feat_: integrate base chain

Signed-off-by: Brian Sztamfater <[email protected]>
Co-authored-by: Dario Gabriel Lipicar <[email protected]>
  • Loading branch information
briansztamfater and dlipicar authored Jan 20, 2025
1 parent 40b4ae4 commit 27ad41b
Show file tree
Hide file tree
Showing 38 changed files with 4,424 additions and 162 deletions.
1 change: 1 addition & 0 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,4 @@ exclude_patterns:
- "static/"
- "t/"
- "images/qr-assets.go"
- "contracts/hop/l2Contracts/l2BaseBridge/l2BaseBridge.go"
12 changes: 10 additions & 2 deletions api/backend_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1527,8 +1527,10 @@ func TestWalletConfigOnLoginAccount(t *testing.T) {
alchemyArbitrumSepoliaToken := "alchemy-arbitrum-sepolia-token"
alchemyOptimismMainnetToken := "alchemy-optimism-mainnet-token"
alchemyOptimismSepoliaToken := "alchemy-optimism-sepolia-token"
raribleMainnetAPIKey := "rarible-mainnet-api-key" // nolint: gosec
raribleTestnetAPIKey := "rarible-testnet-api-key" // nolint: gosec
alchemyBaseMainnetToken := "alchemy-base-mainnet-token" // nolint: gosec
alchemyBaseSepoliaToken := "alchemy-base-sepolia-token" // nolint: gosec
raribleMainnetAPIKey := "rarible-mainnet-api-key" // nolint: gosec
raribleTestnetAPIKey := "rarible-testnet-api-key" // nolint: gosec

b := NewGethStatusBackend(tt.MustCreateTestLogger())
createAccountRequest := &requests.CreateAccount{
Expand Down Expand Up @@ -1565,6 +1567,8 @@ func TestWalletConfigOnLoginAccount(t *testing.T) {
AlchemyArbitrumSepoliaToken: alchemyArbitrumSepoliaToken,
AlchemyOptimismMainnetToken: alchemyOptimismMainnetToken,
AlchemyOptimismSepoliaToken: alchemyOptimismSepoliaToken,
AlchemyBaseMainnetToken: alchemyBaseMainnetToken,
AlchemyBaseSepoliaToken: alchemyBaseSepoliaToken,
RaribleMainnetAPIKey: raribleMainnetAPIKey,
RaribleTestnetAPIKey: raribleTestnetAPIKey,
},
Expand All @@ -1585,6 +1589,8 @@ func TestWalletConfigOnLoginAccount(t *testing.T) {
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[ArbitrumSepoliaChainID], alchemyArbitrumSepoliaToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[OptimismChainID], alchemyOptimismMainnetToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[OptimismSepoliaChainID], alchemyOptimismSepoliaToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[BaseChainID], alchemyBaseMainnetToken)
require.Equal(t, b.config.WalletConfig.AlchemyAPIKeys[BaseSepoliaChainID], alchemyBaseSepoliaToken)
require.Equal(t, b.config.WalletConfig.RaribleMainnetAPIKey, raribleMainnetAPIKey)
require.Equal(t, b.config.WalletConfig.RaribleTestnetAPIKey, raribleTestnetAPIKey)

Expand Down Expand Up @@ -1846,6 +1852,8 @@ func TestRestoreKeycardAccountAndLogin(t *testing.T) {
"alchemyArbitrumSepoliaToken": "",
"alchemyOptimismMainnetToken": "",
"alchemyOptimismSepoliaToken": "",
"alchemyBaseMainnetToken": "",
"alchemyBaseSepoliaToken": "",
},
"torrentConfigEnabled": false,
"torrentConfigPort": 0,
Expand Down
60 changes: 55 additions & 5 deletions api/default_networks.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ const (
OptimismSepoliaChainID uint64 = 11155420
ArbitrumChainID uint64 = 42161
ArbitrumSepoliaChainID uint64 = 421614
BaseChainID uint64 = 8453
BaseSepoliaChainID uint64 = 84532
sntSymbol = "SNT"
sttSymbol = "STT"
)
Expand All @@ -30,7 +32,7 @@ func mainnet(stageName string) params.Network {
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/mainnet/", stageName),
DefaultFallbackURL2: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/mainnet/", stageName),
RPCURL: "https://mainnet.infura.io/v3/",
FallbackURL: "https://eth-archival.rpc.grove.city/v1/",
FallbackURL: "https://eth.rpc.grove.city/v1/",
BlockExplorerURL: "https://etherscan.io/",
IconURL: "network/Network=Ethereum",
ChainColor: "#627EEA",
Expand All @@ -53,7 +55,7 @@ func sepolia(stageName string) params.Network {
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/ethereum/sepolia/", stageName),
DefaultFallbackURL2: fmt.Sprintf("https://%s.api.status.im/grove/ethereum/sepolia/", stageName),
RPCURL: "https://sepolia.infura.io/v3/",
FallbackURL: "https://sepolia-archival.rpc.grove.city/v1/",
FallbackURL: "https://eth-sepolia-testnet.rpc.grove.city/v1/",
BlockExplorerURL: "https://sepolia.etherscan.io/",
IconURL: "network/Network=Ethereum",
ChainColor: "#627EEA",
Expand All @@ -76,7 +78,7 @@ func optimism(stageName string) params.Network {
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/mainnet/", stageName),
DefaultFallbackURL2: fmt.Sprintf("https://%s.api.status.im/grove/optimism/mainnet/", stageName),
RPCURL: "https://optimism-mainnet.infura.io/v3/",
FallbackURL: "https://optimism-archival.rpc.grove.city/v1/",
FallbackURL: "https://optimism.rpc.grove.city/v1/",
BlockExplorerURL: "https://optimistic.etherscan.io",
IconURL: "network/Network=Optimism",
ChainColor: "#E90101",
Expand All @@ -99,7 +101,7 @@ func optimismSepolia(stageName string) params.Network {
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/optimism/sepolia/", stageName),
DefaultFallbackURL2: fmt.Sprintf("https://%s.api.status.im/grove/optimism/sepolia/", stageName),
RPCURL: "https://optimism-sepolia.infura.io/v3/",
FallbackURL: "https://optimism-sepolia-archival.rpc.grove.city/v1/",
FallbackURL: "https://optimism-sepolia-testnet.rpc.grove.city/v1/",
BlockExplorerURL: "https://sepolia-optimism.etherscan.io/",
IconURL: "network/Network=Optimism",
ChainColor: "#E90101",
Expand All @@ -114,6 +116,52 @@ func optimismSepolia(stageName string) params.Network {
}
}

func base(stageName string) params.Network {
return params.Network{
ChainID: BaseChainID,
ChainName: "Base",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/nodefleet/base/mainnet/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/base/mainnet/", stageName),
DefaultFallbackURL2: fmt.Sprintf("https://%s.api.status.im/grove/base/mainnet/", stageName),
RPCURL: "https://base-mainnet.infura.io/v3/",
FallbackURL: "https://base.rpc.grove.city/v1/",
BlockExplorerURL: "https://basescan.org",
IconURL: "network/Network=Base",
ChainColor: "#0052FF",
ShortName: "base",
NativeCurrencyName: "Ether",
NativeCurrencySymbol: "ETH",
NativeCurrencyDecimals: 18,
IsTest: false,
Layer: 2,
Enabled: true,
RelatedChainID: BaseSepoliaChainID,
}
}

func baseSepolia(stageName string) params.Network {
return params.Network{
ChainID: BaseSepoliaChainID,
ChainName: "Base",
DefaultRPCURL: fmt.Sprintf("https://%s.api.status.im/nodefleet/base/sepolia/", stageName),
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/base/sepolia/", stageName),
DefaultFallbackURL2: fmt.Sprintf("https://%s.api.status.im/grove/base/sepolia/", stageName),
RPCURL: "https://base-sepolia.infura.io/v3/",
FallbackURL: "https://base-testnet.rpc.grove.city/v1/",
BlockExplorerURL: "https://sepolia.basescan.org/",
IconURL: "network/Network=Base",
ChainColor: "#0052FF",
ShortName: "base",
NativeCurrencyName: "Ether",
NativeCurrencySymbol: "ETH",
NativeCurrencyDecimals: 18,
IsTest: true,
Layer: 2,
Enabled: false,
RelatedChainID: BaseChainID,
}
}

func arbitrum(stageName string) params.Network {
return params.Network{
ChainID: ArbitrumChainID,
Expand Down Expand Up @@ -145,7 +193,7 @@ func arbitrumSepolia(stageName string) params.Network {
DefaultFallbackURL: fmt.Sprintf("https://%s.api.status.im/infura/arbitrum/sepolia/", stageName),
DefaultFallbackURL2: fmt.Sprintf("https://%s.api.status.im/grove/arbitrum/sepolia/", stageName),
RPCURL: "https://arbitrum-sepolia.infura.io/v3/",
FallbackURL: "https://arbitrum-sepolia-archival.rpc.grove.city/v1/",
FallbackURL: "https://arbitrum-sepolia-testnet.rpc.grove.city/v1/",
BlockExplorerURL: "https://sepolia-explorer.arbitrum.io/",
IconURL: "network/Network=Arbitrum",
ChainColor: "#51D0F0",
Expand All @@ -168,6 +216,8 @@ func defaultNetworks(stageName string) []params.Network {
optimismSepolia(stageName),
arbitrum(stageName),
arbitrumSepolia(stageName),
base(stageName),
baseSepolia(stageName),
}
}

Expand Down
6 changes: 4 additions & 2 deletions api/default_networks_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ func TestBuildDefaultNetworks(t *testing.T) {

actualNetworks := BuildDefaultNetworks(&request.WalletSecretsConfig)

require.Len(t, actualNetworks, 6)
require.Len(t, actualNetworks, 8)

for _, n := range actualNetworks {
var err error
Expand All @@ -34,6 +34,8 @@ func TestBuildDefaultNetworks(t *testing.T) {
case OptimismSepoliaChainID:
case ArbitrumChainID:
case ArbitrumSepoliaChainID:
case BaseChainID:
case BaseSepoliaChainID:
default:
err = errors.Errorf("unexpected chain id: %d", n.ChainID)
}
Expand Down Expand Up @@ -63,7 +65,7 @@ func TestBuildDefaultNetworksGanache(t *testing.T) {

actualNetworks := BuildDefaultNetworks(&request.WalletSecretsConfig)

require.Len(t, actualNetworks, 6)
require.Len(t, actualNetworks, 8)

for _, n := range actualNetworks {
require.True(t, strings.Contains(n.RPCURL, ganacheURL))
Expand Down
6 changes: 6 additions & 0 deletions api/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,12 @@ func buildWalletConfig(request *requests.WalletSecretsConfig, statusProxyEnabled
if request.AlchemyOptimismSepoliaToken != "" {
walletConfig.AlchemyAPIKeys[OptimismSepoliaChainID] = request.AlchemyOptimismSepoliaToken
}
if request.AlchemyBaseMainnetToken != "" {
walletConfig.AlchemyAPIKeys[BaseChainID] = request.AlchemyBaseMainnetToken
}
if request.AlchemyBaseSepoliaToken != "" {
walletConfig.AlchemyAPIKeys[BaseSepoliaChainID] = request.AlchemyBaseSepoliaToken
}
if request.StatusProxyMarketUser != "" {
walletConfig.StatusProxyMarketUser = request.StatusProxyMarketUser
}
Expand Down
2 changes: 2 additions & 0 deletions contracts/balancechecker/address.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@ var contractDataByChainID = map[uint64]common.Address{
1: common.HexToAddress("0x040EA8bFE441597849A9456182fa46D38B75BC05"), // mainnet
10: common.HexToAddress("0x55bD303eA3D50FC982A8a5b43972d7f38D129bbF"), // optimism
42161: common.HexToAddress("0x54764eF12d29b249fDC7FC3caDc039955A396A8e"), // arbitrum
8453: common.HexToAddress("0x84A1C94fcc5EcFA292771f6aE7Fbf24ec062D34e"), // base
11155111: common.HexToAddress("0x55bD303eA3D50FC982A8a5b43972d7f38D129bbF"), // sepolia
421614: common.HexToAddress("0x54764eF12d29b249fDC7FC3caDc039955A396A8e"), // sepolia arbitrum
11155420: common.HexToAddress("0x55bD303eA3D50FC982A8a5b43972d7f38D129bbF"), // sepolia optimism
84532: common.HexToAddress("0x84A1C94fcc5EcFA292771f6aE7Fbf24ec062D34e"), // sepolia base
777333: common.HexToAddress("0x0000000000000000000000000000000010777333"), // unit tests
}

Expand Down
15 changes: 9 additions & 6 deletions contracts/community-tokens/deployer/address.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,21 @@ import (
"errors"

"github.com/ethereum/go-ethereum/common"
walletCommon "github.com/status-im/status-go/services/wallet/common"
)

var errorNotAvailableOnChainID = errors.New("deployer contract not available for chainID")

// addresses can be found on https://github.com/status-im/communities-contracts#deployments
var contractAddressByChainID = map[uint64]common.Address{
1: common.HexToAddress("0xB3Ef5B0825D5f665bE14394eea41E684CE96A4c5"), // Mainnet
10: common.HexToAddress("0x31463D22750324C8721FF7751584EF62F2ff93b3"), // Optimism
42161: common.HexToAddress("0x744Fd6e98dad09Fb8CCF530B5aBd32B56D64943b"), // Arbitrum
11155111: common.HexToAddress("0xCDE984e57cdb88c70b53437cc694345B646371f9"), // Sepolia
421614: common.HexToAddress("0x7Ff554af5b6624db2135E4364F416d1D397f43e6"), // Arbitrum Sepolia
11155420: common.HexToAddress("0xcE2A896eEA2F585BC0C3753DC8116BbE2AbaE541"), // Optimism Sepolia
walletCommon.EthereumMainnet: common.HexToAddress("0xB3Ef5B0825D5f665bE14394eea41E684CE96A4c5"),
walletCommon.OptimismMainnet: common.HexToAddress("0x31463D22750324C8721FF7751584EF62F2ff93b3"),
walletCommon.ArbitrumMainnet: common.HexToAddress("0x744Fd6e98dad09Fb8CCF530B5aBd32B56D64943b"),
walletCommon.BaseMainnet: common.HexToAddress("0x898331B756EE1f29302DeF227a4471e960c50612"),
walletCommon.EthereumSepolia: common.HexToAddress("0xCDE984e57cdb88c70b53437cc694345B646371f9"),
walletCommon.ArbitrumSepolia: common.HexToAddress("0x7Ff554af5b6624db2135E4364F416d1D397f43e6"),
walletCommon.OptimismSepolia: common.HexToAddress("0xcE2A896eEA2F585BC0C3753DC8116BbE2AbaE541"),
walletCommon.BaseSepolia: common.HexToAddress("0x7Ff554af5b6624db2135E4364F416d1D397f43e6"),
}

func ContractAddress(chainID uint64) (common.Address, error) {
Expand Down
2 changes: 2 additions & 0 deletions contracts/ethscan/address.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@ var contractDataByChainID = map[uint64]ContractData{
1: {common.HexToAddress("0x08A8fDBddc160A7d5b957256b903dCAb1aE512C5"), 12_194_222}, // mainnet
10: {common.HexToAddress("0x9e5076df494fc949abc4461f4e57592b81517d81"), 34_421_097}, // optimism
42161: {common.HexToAddress("0xbb85398092b83a016935a17fc857507b7851a071"), 70_031_945}, // arbitrum
8453: {common.HexToAddress("0xc68c1e011cfE059EB94C8915c291502288704D89"), 24_567_587}, // base
777333: {common.HexToAddress("0x0000000000000000000000000000000000777333"), 50}, // unit tests
11155111: {common.HexToAddress("0xec21ebe1918e8975fc0cd0c7747d318c00c0acd5"), 4_366_506}, // sepolia
421614: {common.HexToAddress("0xec21Ebe1918E8975FC0CD0c7747D318C00C0aCd5"), 553_947}, // sepolia arbitrum
11155420: {common.HexToAddress("0xec21ebe1918e8975fc0cd0c7747d318c00c0acd5"), 7_362_011}, // sepolia optimism
84532: {common.HexToAddress("0xc68c1e011cfE059EB94C8915c291502288704D89"), 20_078_235}, // sepolia base
}

func ContractAddress(chainID uint64) (common.Address, error) {
Expand Down
2 changes: 2 additions & 0 deletions contracts/gas-price-oracle/address.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ var ErrorNotAvailableOnChainID = errors.New("not available for chainID")
var contractAddressByChainID = map[uint64]common.Address{
wallet_common.OptimismMainnet: common.HexToAddress("0x8527c030424728cF93E72bDbf7663281A44Eeb22"),
wallet_common.OptimismSepolia: common.HexToAddress("0x5230210c2b4995FD5084b0F5FD0D7457aebb5010"),
wallet_common.BaseMainnet: common.HexToAddress("0x8527c030424728cF93E72bDbf7663281A44Eeb22"),
wallet_common.BaseSepolia: common.HexToAddress("0x5230210c2b4995FD5084b0F5FD0D7457aebb5010"),
}

func ContractAddress(chainID uint64) (common.Address, error) {
Expand Down
1 change: 1 addition & 0 deletions contracts/hop/L2_BaseBrige.abi

Large diffs are not rendered by default.

44 changes: 44 additions & 0 deletions contracts/hop/address.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ var hopBridgeContractAddresses = map[string]map[uint64]map[string]common.Address
CctpL2Bridge: common.HexToAddress("0x6504BFcaB789c35325cA4329f1f41FaC340bf982"),
CctpMessageTransmitter: common.HexToAddress("0xC30362313FBBA5cf9163F0bb16a0e01f01A896ca"),
},
walletCommon.BaseMainnet: {
L2CanonicalToken: common.HexToAddress("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 "),
CctpL2Bridge: common.HexToAddress("0xe7F40BF16AB09f4a6906Ac2CAA4094aD2dA48Cc2"),
CctpMessageTransmitter: common.HexToAddress("0xAD09780d193884d503182aD4588450C416D6F9D4"),
},
walletCommon.EthereumSepolia: {
L1CanonicalToken: common.HexToAddress("0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238"),
CctpL1Bridge: common.HexToAddress("0x05fda2db623fa6a89a2db33550848ab2006a4427"),
Expand All @@ -60,6 +65,10 @@ var hopBridgeContractAddresses = map[string]map[uint64]map[string]common.Address
L2CanonicalToken: common.HexToAddress("0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d"),
CctpL2Bridge: common.HexToAddress("0x9f3B8679c73C2Fef8b59B4f3444d4e156fb70AA5"),
},
walletCommon.BaseSepolia: {
L2CanonicalToken: common.HexToAddress("0x036CbD53842c5426634e7929541eC2318f3dCF7e"),
CctpL2Bridge: common.HexToAddress("0x9f3B8679c73C2Fef8b59B4f3444d4e156fb70AA5"),
},
},
"USDC.e": {
walletCommon.EthereumMainnet: {
Expand Down Expand Up @@ -94,6 +103,19 @@ var hopBridgeContractAddresses = map[string]map[uint64]map[string]common.Address
L2SaddleSwap: common.HexToAddress("0x10541b07d8Ad2647Dc6cD67abd4c03575dade261"),
L2SaddleLpToken: common.HexToAddress("0xB67c014FA700E69681a673876eb8BAFAA36BFf71"),
},
walletCommon.BaseMainnet: {
L1CanonicalBridge: common.HexToAddress("0x0000000000000000000000000000000000000000"),
L1MessengerWrapper: common.HexToAddress("0x4a55e8e407609A3046804ca500BeF6F5ebaCb6F9"),
L2CanonicalBridge: common.HexToAddress("0x0000000000000000000000000000000000000000"),
L2CanonicalToken: common.HexToAddress("0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA"),
L2Bridge: common.HexToAddress("0x46ae9BaB8CEA96610807a275EBD36f8e916b5C61"),
CctpL2Bridge: common.HexToAddress("0xe7F40BF16AB09f4a6906Ac2CAA4094aD2dA48Cc2"),
CctpMessageTransmitter: common.HexToAddress("0xAD09780d193884d503182aD4588450C416D6F9D4"),
L2HopBridgeToken: common.HexToAddress("0x74fa978EaFFa312bC92e76dF40FcC1bFE7637Aeb"),
L2AmmWrapper: common.HexToAddress("0x7D269D3E0d61A05a0bA976b7DBF8805bF844AF3F"),
L2SaddleSwap: common.HexToAddress("0x022C5cE6F1Add7423268D41e08Df521D5527C2A0"),
L2SaddleLpToken: common.HexToAddress("0x3b507422EBe64440f03BCbE5EEe4bdF76517f320"),
},
walletCommon.EthereumSepolia: {
L1CanonicalToken: common.HexToAddress("0x95B01328BA6f4de261C4907fB35eE3c4968e9CEF"),
CctpL1Bridge: common.HexToAddress("0x98bc5b835686e1a00e6c2168af162905899e93d6"),
Expand Down Expand Up @@ -191,6 +213,17 @@ var hopBridgeContractAddresses = map[string]map[uint64]map[string]common.Address
L2SaddleSwap: common.HexToAddress("0x652d27c0F72771Ce5C76fd400edD61B406Ac6D97"),
L2SaddleLpToken: common.HexToAddress("0x59745774Ed5EfF903e615F5A2282Cae03484985a"),
},
walletCommon.BaseMainnet: {
L1CanonicalBridge: common.HexToAddress("0x0000000000000000000000000000000000000000"),
L1MessengerWrapper: common.HexToAddress("0x17B5ACE1cD6b0d033431873826937F499Eec2C95"),
L2CanonicalBridge: common.HexToAddress("0x0000000000000000000000000000000000000000"),
L2CanonicalToken: common.HexToAddress("0x4200000000000000000000000000000000000006"),
L2Bridge: common.HexToAddress("0x3666f603Cc164936C1b87e207F36BEBa4AC5f18a"),
L2HopBridgeToken: common.HexToAddress("0xC1985d7a3429cDC85E59E2E4Fcc805b857e6Ee2E"),
L2AmmWrapper: common.HexToAddress("0x10541b07d8Ad2647Dc6cD67abd4c03575dade261"),
L2SaddleSwap: common.HexToAddress("0x0ce6c85cF43553DE10FC56cecA0aef6Ff0DD444d"),
L2SaddleLpToken: common.HexToAddress("0xe9605BEc1c5C3E81F974F80b8dA9fBEFF4845d4D"),
},
},
"HOP": {
walletCommon.EthereumMainnet: {
Expand Down Expand Up @@ -219,6 +252,17 @@ var hopBridgeContractAddresses = map[string]map[uint64]map[string]common.Address
L2SaddleSwap: common.HexToAddress("0x0000000000000000000000000000000000000000"),
L2SaddleLpToken: common.HexToAddress("0x0000000000000000000000000000000000000000"),
},
walletCommon.BaseMainnet: {
L1CanonicalBridge: common.HexToAddress("0x0000000000000000000000000000000000000000"),
L1MessengerWrapper: common.HexToAddress("0x86eD3B8AD6b721fD3a2Fa73c227987Fb9AD3D1Ae"),
L2CanonicalBridge: common.HexToAddress("0x0000000000000000000000000000000000000000"),
L2CanonicalToken: common.HexToAddress("0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC"),
L2Bridge: common.HexToAddress("0xe22D2beDb3Eca35E6397e0C6D62857094aA26F52"),
L2HopBridgeToken: common.HexToAddress("0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC"),
L2AmmWrapper: common.HexToAddress("0x0000000000000000000000000000000000000000"),
L2SaddleSwap: common.HexToAddress("0x0000000000000000000000000000000000000000"),
L2SaddleLpToken: common.HexToAddress("0x0000000000000000000000000000000000000000"),
},
},
"SNX": {
walletCommon.EthereumMainnet: {
Expand Down
Loading

0 comments on commit 27ad41b

Please sign in to comment.