From a3a88f0d16eb1120a3109c38d0e5c17a6951bed6 Mon Sep 17 00:00:00 2001 From: Anindita Ghosh <88458927+AnieeG@users.noreply.github.com> Date: Fri, 20 Oct 2023 12:05:45 -0700 Subject: [PATCH] Improvements in test configurability (#227) Co-authored-by: Mateusz Sekara --- integration-tests/ccip-tests/Makefile | 13 + .../ccip-tests/actions/ccip_helpers.go | 152 +- .../ccip-tests/chaos/ccip_test.go | 3 +- .../ccip-tests/contracts/contract_deployer.go | 4 +- .../ccip-tests/contracts/contract_models.go | 60 +- .../contracts/laneconfig/contracts.json | 1726 +++++++---------- .../contracts/laneconfig/parse_contracts.go | 6 +- integration-tests/ccip-tests/load-test.env | 20 +- .../ccip-tests/load/ccip_loadgen.go | 12 +- integration-tests/ccip-tests/load/helper.go | 5 +- .../ccip-tests/smoke/ccip_test.go | 18 +- .../ccip-tests/testsetups/ccip.go | 157 +- .../ccip-tests/types/config/node/core.go | 7 + .../types/config/node/tomls/ccip.toml | 5 +- 14 files changed, 1021 insertions(+), 1167 deletions(-) diff --git a/integration-tests/ccip-tests/Makefile b/integration-tests/ccip-tests/Makefile index 454bdccaa9..0d73943bfa 100644 --- a/integration-tests/ccip-tests/Makefile +++ b/integration-tests/ccip-tests/Makefile @@ -7,6 +7,19 @@ test_load_ccip_simulated_k8: ENV_JOB_IMAGE=$(testimage) \ go test -timeout 24h -count=1 -v -run ^TestLoadCCIPStableRequestTriggeringWithNetworkChaos$$ ./load + +# example usage: make test_load_ccip_simulated_k8 image=chainlink-ccip tag=latest testimage=chainlink-ccip-tests:latest +.PHONY: test_load_ccip_testnet_k8 +test_load_ccip_testnet_k8: + source ./load-test.env && \ + SELECTED_NETWORKS="SIMULATED,SEPOLIA,OPTIMISM_GOERLI,ARBITRUM_GOERLI,AVALANCHE_FUJI,BSC_TESTNET,MUMBAI,BASE_GOERLI" \ + CCIP_NO_OF_NETWORKS=7 \ + CCIP_CHAINLINK_NODE_FUNDING=10 \ + CHAINLINK_IMAGE=$(image) \ + CHAINLINK_VERSION=$(tag) \ + ENV_JOB_IMAGE=$(testimage) \ + go test -timeout 24h -count=1 -v -run ^TestLoadCCIPStableRPS$$ ./load + # example usage: make test_smoke_ccip_simulated_local image=chainlink-ccip tag=latest testname=TestSmokeCCIPForBidirectionalLane .PHONY: test_smoke_ccip_simulated_local test_smoke_ccip_simulated_local: diff --git a/integration-tests/ccip-tests/actions/ccip_helpers.go b/integration-tests/ccip-tests/actions/ccip_helpers.go index 7cfbebef6a..99a41a7950 100644 --- a/integration-tests/ccip-tests/actions/ccip_helpers.go +++ b/integration-tests/ccip-tests/actions/ccip_helpers.go @@ -60,6 +60,8 @@ const ( // The higher the load/throughput, the higher value we might need here to guarantee that nonces are not blocked // 1 day should be enough for most of the cases PermissionlessExecThreshold = 60 * 60 * 24 // 1 day + + MaxNoOfTokensInMsg = 50 // we keep the finality timeout high as it's out of our control FinalityTimeout = 1 * time.Hour TokenTransfer string = "WithToken" @@ -105,21 +107,6 @@ type CCIPCommon struct { gasUpdateWatcherMu *sync.Mutex gasUpdateWatcher map[uint64]*big.Int // key - destchain id; value - timestamp of update priceUpdateSubs []event.Subscription - connectionIssues *atomic.Bool - connectionRestored *atomic.Bool -} - -func (ccipModule *CCIPCommon) ConnectionRestored() { - for { - select { - case <-ccipModule.ChainClient.ConnectionRestored(): - ccipModule.connectionRestored.Store(true) - ccipModule.connectionIssues.Store(false) - case <-ccipModule.ChainClient.ConnectionIssue(): - ccipModule.connectionIssues.Store(true) - ccipModule.connectionRestored.Store(false) - } - } } func (ccipModule *CCIPCommon) StopWatchingPriceUpdates() { @@ -429,7 +416,8 @@ func (ccipModule *CCIPCommon) DeployContracts(noOfTokens int, ccipModule.FeeToken = token } - if len(ccipModule.BridgeTokens) == 0 { + // number of deployed bridge tokens does not match noOfTokens; deploy rest of the tokens + if len(ccipModule.BridgeTokens) < noOfTokens { // deploy bridge token. for i := len(ccipModule.BridgeTokens); i < noOfTokens; i++ { var token *contracts.ERC20Token @@ -455,20 +443,20 @@ func (ccipModule *CCIPCommon) DeployContracts(noOfTokens int, if err != nil { return fmt.Errorf("error in waiting for bridge token deployment %+v", err) } - } else { - var tokens []*contracts.ERC20Token - for _, token := range ccipModule.BridgeTokens { - newToken, err := cd.NewERC20TokenContract(common.HexToAddress(token.Address())) - if err != nil { - return fmt.Errorf("getting new bridge token contract shouldn't fail %+v", err) - } - tokens = append(tokens, newToken) + } + + var tokens []*contracts.ERC20Token + for _, token := range ccipModule.BridgeTokens { + newToken, err := cd.NewERC20TokenContract(common.HexToAddress(token.Address())) + if err != nil { + return fmt.Errorf("getting new bridge token contract shouldn't fail %+v", err) } - ccipModule.BridgeTokens = tokens + tokens = append(tokens, newToken) } - if len(ccipModule.BridgeTokenPools) == 0 { + ccipModule.BridgeTokens = tokens + if len(ccipModule.BridgeTokenPools) != len(ccipModule.BridgeTokens) { // deploy native token pool - for i := len(ccipModule.BridgeTokenPools); i < noOfTokens; i++ { + for i := len(ccipModule.BridgeTokenPools); i < len(ccipModule.BridgeTokens); i++ { token := ccipModule.BridgeTokens[i] btp, err := cd.DeployLockReleaseTokenPoolContract(token.Address(), *ccipModule.ARMContract) if err != nil { @@ -563,7 +551,7 @@ func DefaultCCIPModule(logger zerolog.Logger, chainClient blockchain.EVMClient, Capacity: contracts.HundredCoins, }, ExistingDeployment: existingDeployment, - poolFunds: testhelpers.Link(1000), + poolFunds: testhelpers.Link(5), gasUpdateWatcherMu: &sync.Mutex{}, gasUpdateWatcher: make(map[uint64]*big.Int), }, nil @@ -618,6 +606,34 @@ func (sourceCCIP *SourceCCIPModule) LoadContracts(conf *laneconfig.LaneConfig) { } } +func (sourceCCIP *SourceCCIPModule) SyncPoolsAndTokens() error { + var tokensAndPools []evm_2_evm_onramp.InternalPoolUpdate + var tokenTransferFeeConfig []evm_2_evm_onramp.EVM2EVMOnRampTokenTransferFeeConfigArgs + for i, token := range sourceCCIP.Common.BridgeTokens { + tokensAndPools = append(tokensAndPools, evm_2_evm_onramp.InternalPoolUpdate{ + Token: token.ContractAddress, + Pool: sourceCCIP.Common.BridgeTokenPools[i].EthAddress, + }) + tokenTransferFeeConfig = append(tokenTransferFeeConfig, evm_2_evm_onramp.EVM2EVMOnRampTokenTransferFeeConfigArgs{ + Token: token.ContractAddress, + MinFeeUSDCents: 50, // $0.5 + MaxFeeUSDCents: 1_000_000_00, // $ 1 million + DeciBps: 5_0, // 5 bps + DestGasOverhead: 34_000, + DestBytesOverhead: 0, + }) + } + err := sourceCCIP.OnRamp.SetTokenTransferFeeConfig(tokenTransferFeeConfig) + if err != nil { + return errors.WithStack(err) + } + err = sourceCCIP.OnRamp.ApplyPoolUpdates(tokensAndPools) + if err != nil { + return errors.WithStack(err) + } + return nil +} + // DeployContracts deploys all CCIP contracts specific to the source chain func (sourceCCIP *SourceCCIPModule) DeployContracts(lane *laneconfig.LaneConfig) error { var err error @@ -630,11 +646,6 @@ func (sourceCCIP *SourceCCIPModule) DeployContracts(lane *laneconfig.LaneConfig) } sourceCCIP.LoadContracts(lane) - // update transfer amount array length to be equal to the number of tokens - // each index in TransferAmount array corresponds to the amount to be transferred for the token at the same index in BridgeTokens array - if len(sourceCCIP.TransferAmount) != len(sourceCCIP.Common.BridgeTokens) && len(sourceCCIP.TransferAmount) > 0 { - sourceCCIP.TransferAmount = sourceCCIP.TransferAmount[:len(sourceCCIP.Common.BridgeTokens)] - } sourceChainSelector, err := chainselectors.SelectorFromChainId(sourceCCIP.Common.ChainClient.GetChainID().Uint64()) if err != nil { return errors.WithStack(err) @@ -647,26 +658,11 @@ func (sourceCCIP *SourceCCIPModule) DeployContracts(lane *laneconfig.LaneConfig) if sourceCCIP.OnRamp == nil { var tokensAndPools []evm_2_evm_onramp.InternalPoolUpdate var tokenTransferFeeConfig []evm_2_evm_onramp.EVM2EVMOnRampTokenTransferFeeConfigArgs - for i, token := range sourceCCIP.Common.BridgeTokens { - tokensAndPools = append(tokensAndPools, evm_2_evm_onramp.InternalPoolUpdate{ - Token: token.ContractAddress, - Pool: sourceCCIP.Common.BridgeTokenPools[i].EthAddress, - }) - tokenTransferFeeConfig = append(tokenTransferFeeConfig, evm_2_evm_onramp.EVM2EVMOnRampTokenTransferFeeConfigArgs{ - Token: token.ContractAddress, - MinFeeUSDCents: 50, // $0.5 - MaxFeeUSDCents: 1_000_000_00, // $ 1 million - DeciBps: 5_0, // 5 bps - DestGasOverhead: 34_000, - DestBytesOverhead: 0, - }) - } sourceCCIP.SrcStartBlock, err = sourceCCIP.Common.ChainClient.LatestBlockNumber(context.Background()) if err != nil { return fmt.Errorf("getting latest block number shouldn't fail %+v", err) } - sourceCCIP.OnRamp, err = contractDeployer.DeployOnRamp( sourceChainSelector, destChainSelector, @@ -710,6 +706,12 @@ func (sourceCCIP *SourceCCIPModule) DeployContracts(lane *laneconfig.LaneConfig) return fmt.Errorf("setting onramp on the router shouldn't fail %+v", err) } + // now sync the pools and tokens + err := sourceCCIP.SyncPoolsAndTokens() + if err != nil { + return err + } + err = sourceCCIP.Common.ChainClient.WaitForEvents() if err != nil { return fmt.Errorf("waiting for events shouldn't fail %+v", err) @@ -785,7 +787,8 @@ func (sourceCCIP *SourceCCIPModule) UpdateBalance( balances *BalanceSheet, ) { if len(sourceCCIP.TransferAmount) > 0 { - for i, token := range sourceCCIP.Common.BridgeTokens { + for i := range sourceCCIP.TransferAmount { + token := sourceCCIP.Common.BridgeTokens[i] name := fmt.Sprintf("BridgeToken-%s-Address-%s", token.Address(), sourceCCIP.Sender.Hex()) balances.Update(name, BalanceItem{ Address: sourceCCIP.Sender, @@ -793,7 +796,8 @@ func (sourceCCIP *SourceCCIPModule) UpdateBalance( AmtToSub: bigmath.Mul(big.NewInt(noOfReq), sourceCCIP.TransferAmount[i]), }) } - for i, pool := range sourceCCIP.Common.BridgeTokenPools { + for i := range sourceCCIP.TransferAmount { + pool := sourceCCIP.Common.BridgeTokenPools[i] name := fmt.Sprintf("BridgeToken-%s-TokenPool-%s", sourceCCIP.Common.BridgeTokens[i].Address(), pool.Address()) balances.Update(name, BalanceItem{ Address: pool.EthAddress, @@ -896,7 +900,8 @@ func (sourceCCIP *SourceCCIPModule) SendRequest( ) (common.Hash, time.Duration, *big.Int, error) { var tokenAndAmounts []router.ClientEVMTokenAmount if msgType == TokenTransfer { - for i, token := range sourceCCIP.Common.BridgeTokens { + for i := range sourceCCIP.TransferAmount { + token := sourceCCIP.Common.BridgeTokens[i] tokenAndAmounts = append(tokenAndAmounts, router.ClientEVMTokenAmount{ Token: common.HexToAddress(token.Address()), Amount: sourceCCIP.TransferAmount[i], }) @@ -908,7 +913,7 @@ func (sourceCCIP *SourceCCIPModule) SendRequest( return common.Hash{}, d, nil, fmt.Errorf("failed encoding the receiver address: %+v", err) } - extraArgsV1, err := testhelpers.GetEVMExtraArgsV1(big.NewInt(100_000), false) + extraArgsV1, err := testhelpers.GetEVMExtraArgsV1(big.NewInt(600_000), false) if err != nil { return common.Hash{}, d, nil, fmt.Errorf("failed encoding the options field: %+v", err) } @@ -924,7 +929,7 @@ func (sourceCCIP *SourceCCIPModule) SendRequest( FeeToken: feeToken, ExtraArgs: extraArgsV1, } - log.Info().Interface("msg details", msg).Msg("ccip message to be sent") + fee, err := sourceCCIP.Common.Router.GetFee(destChainSelector, msg) if err != nil { reason, _ := blockchain.RPCErrorFromError(err) @@ -1011,6 +1016,20 @@ func (destCCIP *DestCCIPModule) LoadContracts(conf *laneconfig.LaneConfig) { } } +func (destCCIP *DestCCIPModule) SyncTokensAndPools(srcTokens []*contracts.ERC20Token) error { + var sourceTokens, pools []common.Address + + for _, token := range srcTokens { + sourceTokens = append(sourceTokens, common.HexToAddress(token.Address())) + } + + for i := range destCCIP.Common.BridgeTokenPools { + pools = append(pools, destCCIP.Common.BridgeTokenPools[i].EthAddress) + } + + return destCCIP.OffRamp.SyncTokensAndPools(sourceTokens, pools) +} + // DeployContracts deploys all CCIP contracts specific to the destination chain func (destCCIP *DestCCIPModule) DeployContracts( sourceCCIP SourceCCIPModule, @@ -1059,23 +1078,11 @@ func (destCCIP *DestCCIPModule) DeployContracts( } } - var sourceTokens, destTokens, pools []common.Address - - for _, token := range sourceCCIP.Common.BridgeTokens { - sourceTokens = append(sourceTokens, common.HexToAddress(token.Address())) - } - - for i, token := range destCCIP.Common.BridgeTokens { - destTokens = append(destTokens, common.HexToAddress(token.Address())) - pool := destCCIP.Common.BridgeTokenPools[i] - pools = append(pools, pool.EthAddress) - } - if destCCIP.OffRamp == nil { destCCIP.OffRamp, err = contractDeployer.DeployOffRamp( sourceChainSelector, destChainSelector, destCCIP.CommitStore.EthAddress, sourceCCIP.OnRamp.EthAddress, - sourceTokens, pools, destCCIP.Common.RateLimiterConfig, *destCCIP.Common.ARMContract) + []common.Address{}, []common.Address{}, destCCIP.Common.RateLimiterConfig, *destCCIP.Common.ARMContract) if err != nil { return fmt.Errorf("deploying offramp shouldn't fail %+v", err) } @@ -1089,6 +1096,11 @@ func (destCCIP *DestCCIPModule) DeployContracts( if err != nil { return fmt.Errorf("setting offramp as fee updater shouldn't fail %+v", err) } + + err = destCCIP.SyncTokensAndPools(sourceCCIP.Common.BridgeTokens) + if err != nil { + return fmt.Errorf("syncing tokens and pools shouldn't fail %+v", err) + } err = destCCIP.Common.ChainClient.WaitForEvents() if err != nil { return fmt.Errorf("waiting for events on destination contract shouldn't fail %+v", err) @@ -1168,7 +1180,8 @@ func (destCCIP *DestCCIPModule) UpdateBalance( balance *BalanceSheet, ) { if len(transferAmount) > 0 { - for i, token := range destCCIP.Common.BridgeTokens { + for i := range transferAmount { + token := destCCIP.Common.BridgeTokens[i] name := fmt.Sprintf("BridgeToken-%s-Address-%s", token.Address(), destCCIP.ReceiverDapp.Address()) balance.Update(name, BalanceItem{ Address: destCCIP.ReceiverDapp.EthAddress, @@ -1176,7 +1189,8 @@ func (destCCIP *DestCCIPModule) UpdateBalance( AmtToAdd: bigmath.Mul(big.NewInt(noOfReq), transferAmount[i]), }) } - for i, pool := range destCCIP.Common.BridgeTokenPools { + for i := range transferAmount { + pool := destCCIP.Common.BridgeTokenPools[i] name := fmt.Sprintf("BridgeToken-%s-TokenPool-%s", destCCIP.Common.BridgeTokens[i].Address(), pool.Address()) balance.Update(name, BalanceItem{ Address: pool.EthAddress, @@ -1994,7 +2008,7 @@ func SetOCR2Configs(commitNodes, execNodes []*client.CLNodesWithKeys, destCCIP D PermissionlessExecThreshold, destCCIP.Common.Router.EthAddress, destCCIP.Common.PriceRegistry.EthAddress, - 5, + MaxNoOfTokensInMsg, 50000, 200_000, ), contracts.OCR2ParamsForExec, 3*time.Minute) diff --git a/integration-tests/ccip-tests/chaos/ccip_test.go b/integration-tests/ccip-tests/chaos/ccip_test.go index 515e022bf0..3d60fa61ea 100644 --- a/integration-tests/ccip-tests/chaos/ccip_test.go +++ b/integration-tests/ccip-tests/chaos/ccip_test.go @@ -1,7 +1,6 @@ package chaos_test import ( - "math/big" "testing" "time" @@ -108,7 +107,7 @@ func TestChaosCCIP(t *testing.T) { ) setUpArgs := testsetups.CCIPDefaultTestSetUp( - t, l, "chaos-ccip", 12, []*big.Int{big.NewInt(1e8)}, + t, l, "chaos-ccip", 12, nil, numOfCommitNodes, false, false, testCfg) if len(setUpArgs.Lanes) == 0 { diff --git a/integration-tests/ccip-tests/contracts/contract_deployer.go b/integration-tests/ccip-tests/contracts/contract_deployer.go index fe238a6d7b..fe306fd241 100644 --- a/integration-tests/ccip-tests/contracts/contract_deployer.go +++ b/integration-tests/ccip-tests/contracts/contract_deployer.go @@ -112,7 +112,7 @@ func (e *CCIPContractsDeployer) NewERC20TokenContract(addr common.Address) (*ERC } log.Info(). Str("Contract Address", addr.Hex()). - Str("Contract Name", "Link Token"). + Str("Contract Name", "ERC20 Token"). Str("From", e.evmClient.GetDefaultWallet().Address()). Str("Network Name", e.evmClient.GetNetworkConfig().Name). Msg("New contract") @@ -409,7 +409,7 @@ func (e *CCIPContractsDeployer) DeployOnRamp( }, evm_2_evm_onramp.EVM2EVMOnRampDynamicConfig{ Router: router, - MaxNumberOfTokensPerMsg: 5, + MaxNumberOfTokensPerMsg: 50, DestGasOverhead: 350_000, DestGasPerPayloadByte: 16, DestDataAvailabilityOverheadGas: 33_596, diff --git a/integration-tests/ccip-tests/contracts/contract_models.go b/integration-tests/ccip-tests/contracts/contract_models.go index 9191dd142d..8db83e14e1 100644 --- a/integration-tests/ccip-tests/contracts/contract_models.go +++ b/integration-tests/ccip-tests/contracts/contract_models.go @@ -519,7 +519,7 @@ func (r *Router) CCIPSend(destChainSelector uint64, msg router.ClientEVM2AnyMess if valueForNative != nil { opts.Value = valueForNative } - + log.Info().Interface("msg", msg).Msg("Sending msg") return r.Instance.CcipSend(opts, destChainSelector, msg) } @@ -601,6 +601,40 @@ func (onRamp *OnRamp) SetNops() error { return onRamp.client.ProcessTransaction(tx) } +func (onRamp *OnRamp) SetTokenTransferFeeConfig(tokenTransferFeeConfig []evm_2_evm_onramp.EVM2EVMOnRampTokenTransferFeeConfigArgs) error { + opts, err := onRamp.client.TransactionOpts(onRamp.client.GetDefaultWallet()) + if err != nil { + return err + } + tx, err := onRamp.Instance.SetTokenTransferFeeConfig(opts, tokenTransferFeeConfig) + if err != nil { + return err + } + log.Info(). + Interface("tokenTransferFeeConfig", tokenTransferFeeConfig). + Str("onRamp", onRamp.Address()). + Str("Network Name", onRamp.client.GetNetworkConfig().Name). + Msg("TokenTransferFeeConfig set in OnRamp") + return onRamp.client.ProcessTransaction(tx) +} + +func (onRamp *OnRamp) ApplyPoolUpdates(poolUpdates []evm_2_evm_onramp.InternalPoolUpdate) error { + opts, err := onRamp.client.TransactionOpts(onRamp.client.GetDefaultWallet()) + if err != nil { + return err + } + tx, err := onRamp.Instance.ApplyPoolUpdates(opts, []evm_2_evm_onramp.InternalPoolUpdate{}, poolUpdates) + if err != nil { + return err + } + log.Info(). + Interface("poolUpdates", poolUpdates). + Str("onRamp", onRamp.Address()). + Str("Network Name", onRamp.client.GetNetworkConfig().Name). + Msg("poolUpdates set in OnRamp") + return onRamp.client.ProcessTransaction(tx) +} + func (onRamp *OnRamp) PayNops() error { opts, err := onRamp.client.TransactionOpts(onRamp.client.GetDefaultWallet()) if err != nil { @@ -690,3 +724,27 @@ func (offRamp *OffRamp) SetOCR2Config( } return offRamp.client.ProcessTransaction(tx) } + +func (offRamp *OffRamp) SyncTokensAndPools(sourceTokens, pools []common.Address) error { + opts, err := offRamp.client.TransactionOpts(offRamp.client.GetDefaultWallet()) + if err != nil { + return err + } + var tokenUpdates []evm_2_evm_offramp.InternalPoolUpdate + for i, srcToken := range sourceTokens { + tokenUpdates = append(tokenUpdates, evm_2_evm_offramp.InternalPoolUpdate{ + Token: srcToken, + Pool: pools[i], + }) + } + tx, err := offRamp.Instance.ApplyPoolUpdates(opts, []evm_2_evm_offramp.InternalPoolUpdate{}, tokenUpdates) + if err != nil { + return err + } + log.Info(). + Interface("tokenUpdates", tokenUpdates). + Str("offRamp", offRamp.Address()). + Str("Network Name", offRamp.client.GetNetworkConfig().Name). + Msg("tokenUpdates set in OffRamp") + return offRamp.client.ProcessTransaction(tx) +} diff --git a/integration-tests/ccip-tests/contracts/laneconfig/contracts.json b/integration-tests/ccip-tests/contracts/laneconfig/contracts.json index 1962cbc704..dad744eb18 100644 --- a/integration-tests/ccip-tests/contracts/laneconfig/contracts.json +++ b/integration-tests/ccip-tests/contracts/laneconfig/contracts.json @@ -488,7 +488,7 @@ }, "Base Goerli": { "fee_token": "0xd886e2286fd1073df82462ea1822119600af80b6", - "is_native_fee_token" : true, + "is_native_fee_token": true, "bridge_tokens": null, "bridge_tokens_pools": null, "arm": "0xe5bd6bcb6fa8e5236984d5ea127de5047f93b5ff", @@ -594,57 +594,66 @@ "fee_token": "0xd14838A68E8AFBAdE5efb411d5871ea0011AFd28", "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0x3C66740724297B50c10CF66a8e15C5EBb43F735D", - "router": "0xD2De582855d3Eec43aD612A3faFBe322C263427C", - "price_registry": "0xCe311C8CFFaD3980c8678dEf78317933161f67dd", + "arm": "0x8DBe3f909D4dD20dC38a53c71785F13F582Df36F", + "router": "0xf7Bd352512f9B5f7d5034AEc59fEfe311f764Efc", + "price_registry": "0x22bC3FDf88f14a2bc19ea5e94Ebb7Fb5ca87d86C", "wrapped_native": "0x32d5D5978905d9c6c2D4C417F0E06Fe768a4FB5a", "src_contracts": { "Avalanche Fuji-1": { - "on_ramp": "0xfCaBE24E9f81D243e84565bd0ed1F2386Ad3eD2f", - "deployed_at": 43075031 + "on_ramp": "0x168af0db4549d75d6eF511f36B196878091467Cd", + "deployed_at": 48966848 }, "BSC Testnet-1": { - "on_ramp": "0x2D204A86c42329f40f3b5B4c4a0D67E704E052d0", - "deployed_at": 43074881 + "on_ramp": "0x4B190b9F527Cd250c17C38bD1e11A9FE60356A55", + "deployed_at": 48966857 }, "Base Goerli-1": { - "on_ramp": "0x564F5C24c4bBe8498DEc65A1B73c3cd3a38a28eE", - "deployed_at": 43074928 + "on_ramp": "0x3C2f8deFE136d41B9bCd7E30CC9E454650F78B1b", + "deployed_at": 48971755 }, "Optimism Goerli-1": { - "on_ramp": "0x944F059ca5eEF187daef3D8A8726340D428FDfC6", - "deployed_at": 43074950 + "on_ramp": "0xe1920ff0B15ab918B495CF35C2A392e4494aBfeD", + "deployed_at": 48966862 + }, + "Polygon Mumbai-1": { + "on_ramp": "0xCA5C8b130CEFa03Bd61050Ee6d5E484853Daa42d", + "deployed_at": 48966865 }, "Sepolia Testnet-1": { - "on_ramp": "0x191390fE017532801f1806595178408a5E51EF25", - "deployed_at": 43074864 + "on_ramp": "0xF6F50CE0a872363580541F1FA2bdCd38A16394E8", + "deployed_at": 48966872 } }, "dest_contracts": { "Avalanche Fuji-1": { - "off_ramp": "0x09c51A6C77a642274586784a6E1765091a7aCc7A", - "commit_store": "0xD29E56dFFC244a6EFddBB7FD68f0256Da4932D90", - "receiver_dapp": "0x28e5e4CF38664997b32Cf3eCfeD3943849D1b724" + "off_ramp": "0xae0b5CDc32eb72d46cf423804227AeE9DC73f153", + "commit_store": "0xb29A93FAdc1C70721F27dD1A2e014f43c7B6813D", + "receiver_dapp": "0x64e320c55F013a793F2A2230D2Abd0961D4d80c5" }, "BSC Testnet-1": { - "off_ramp": "0xeEE91056b7344534134b2511665590Ec8aA4A8EF", - "commit_store": "0x591F33Eb74C4C7D077f0139B18511B1dE8fB66Ef", - "receiver_dapp": "0x640745D9eb02039f3d7Bd22e494B7ba80454db28" + "off_ramp": "0x7779c754D27Ec03e237aDCfd0B6BDa2dAb0df427", + "commit_store": "0xcb5D0691C247C99Ec89F839eC19f37BD7092036a", + "receiver_dapp": "0xa6aCfA040773403bFa823a4012EF8B0a3045f88d" }, "Base Goerli-1": { - "off_ramp": "0xFD0885391BA4A1Aa8E968f60d556D56D3a61077d", - "commit_store": "0xE736Ed75089e1a3e04bBaCA11893A76fb0A57BB1", - "receiver_dapp": "0xBE29A5B6B5e9F447e5f80A05420Dc0b9d637b942" + "off_ramp": "0x42745874b5D1e43C1c76A9a46aABc4d7638ac244", + "commit_store": "0x5d27E6f07866291154151D2485103ed785B9C990", + "receiver_dapp": "0x0E65b997bd224B6e76447F3263709b3eaDBc6278" }, "Optimism Goerli-1": { - "off_ramp": "0x1925bca238d975e916AE3f9984Ab2759F2aDd4cF", - "commit_store": "0x93886c20dF9D86502ca2f163B7594f20E22D4027", - "receiver_dapp": "0xCe8A903dE11ddc103D1A6cf2C5c021872e5AaeFB" + "off_ramp": "0x4f4668B7FFa313BF369CBD6eB430E4a863BbC48d", + "commit_store": "0xA069767D2cDA67648503988411Bce2fA1F85EDA5", + "receiver_dapp": "0x9a850461dd1A9B049c3e2baeeB1e757f87a72058" + }, + "Polygon Mumbai-1": { + "off_ramp": "0x078Adc58B402d18a506C4c4D166cBE57601196f7", + "commit_store": "0x4008a3466b736e56771Dcd90D01BDBEA63BE3c7A", + "receiver_dapp": "0x6aF28B2E9F9BEE761F342C670f0a278E137882af" }, "Sepolia Testnet-1": { - "off_ramp": "0x715b27E9d7d8A73684C0951b867465B1591109a4", - "commit_store": "0x9ef068D31f93325623E9cfE9756A58405401a653", - "receiver_dapp": "0x17F7f389b80c79f78A82E6CDA12494fcd5BbCDb9" + "off_ramp": "0x55fD4D758B91d827A8491600225e322AE4232301", + "commit_store": "0x01dCA0EC6E5e864494903F69D1803FdF78F87864", + "receiver_dapp": "0x518d2a2B831e4d9076907ABC7d1ff58E3678FEeA" } } }, @@ -653,57 +662,66 @@ "fee_token": "0xd14838A68E8AFBAdE5efb411d5871ea0011AFd28", "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0x4b318890a8Dd9E15F1905cEB141044Ce5D9df985", - "router": "0x4F81a04BCB55D271F3d60aA546f4Bf5D8AC14065", - "price_registry": "0x461722E30ABC2532Ec1CF6D94405F1e98f61B370", + "arm": "0xaE02C7ac82af98e75B5aA9351ae1511666a8d3Ac", + "router": "0x5091088447Ed4be07e141FBD3Ca44aFB2d758B10", + "price_registry": "0x3C4E8ce89805E5544672A9452eC3E69936210Cb4", "wrapped_native": "0x32d5D5978905d9c6c2D4C417F0E06Fe768a4FB5a", "src_contracts": { "Avalanche Fuji-2": { - "on_ramp": "0xF8694639B5F148C06833a1DF4251D3965DF275af", - "deployed_at": 43075027 + "on_ramp": "0xEcd6688c70f51303f8C133f8e90f65B37540C422", + "deployed_at": 48966849 }, "BSC Testnet-2": { - "on_ramp": "0x39902524F192C9ACe6B3C1a8b7be66842C4EA92A", - "deployed_at": 43074879 + "on_ramp": "0xc5E17C7a1AE94cC3Ab26c89E9C7b690C3F14FAB5", + "deployed_at": 48966859 }, "Base Goerli-2": { - "on_ramp": "0x73c2Ae126512c2ba2fDaDF3788d9A33054074241", - "deployed_at": 43074940 + "on_ramp": "0x429C76f00C8C500a18630Ff8de6a2489199966Cd", + "deployed_at": 48971757 }, "Optimism Goerli-2": { - "on_ramp": "0xBce34b1dba66f9E6aBe260D0Eeb3F501837efab4", - "deployed_at": 43074952 + "on_ramp": "0x5047849027Bbfa770986bBFd05a04d6D47967Ece", + "deployed_at": 48966863 + }, + "Polygon Mumbai-2": { + "on_ramp": "0xbF6AeCF2260a3468A26df605FA78bA2DC382c5Bf", + "deployed_at": 48966864 }, "Sepolia Testnet-2": { - "on_ramp": "0x7b925849aD41D524a4d62587df7a455f50f2eFEB", - "deployed_at": 43074865 + "on_ramp": "0x44eB3AEc01482FAE9f3303AbD32310DBa4bB5cFb", + "deployed_at": 48966870 } }, "dest_contracts": { "Avalanche Fuji-2": { - "off_ramp": "0xA62d1522962EC03e362a52a8818Ccb4fB80B28C2", - "commit_store": "0xb7d71eB87412840178571E95b05B1703d99A81ED", - "receiver_dapp": "0xbE015Db186383cd09b2170D169E7dF9694a447F9" + "off_ramp": "0x4A3317b19671e8Ab22768139D7FDE93f311FEf34", + "commit_store": "0x047ddc373DF58B0fB42273b1eFC4d7D0a073A6e1", + "receiver_dapp": "0xaf419Fcbb15407bdF80B450777e46bA3966f044D" }, "BSC Testnet-2": { - "off_ramp": "0x4a090E99773f46238AbAF85E6DC28De54F2F7202", - "commit_store": "0xF2E35f4802F760481BeB0c366673D932618bFEB6", - "receiver_dapp": "0x5d9B554E8Dd3B4899b4841DFbe11EA55fF49cC8A" + "off_ramp": "0xFfD760f4c0864Fa0E0a84d8557da26cdfe5fb8BF", + "commit_store": "0x6b6657b02F540410Ab5c51E81F59199e39e5cAA3", + "receiver_dapp": "0x491736B73cc1E594f74E8Bb60e4Af3c0D88AE28C" }, "Base Goerli-2": { - "off_ramp": "0x42731D8B727744B6AEe2Bf9F0966571DC02A1d1f", - "commit_store": "0x7BF3d1A32D453F379Ff36679FdfDE1072eb3235B", - "receiver_dapp": "0xab3dC17BC8cd7A94682f1B33F2cE1eC4DB58fAB6" + "off_ramp": "0xB6b8542e2e51ebF47E6394eD6590F119d0e60aB5", + "commit_store": "0xaDd4A4b4fFE677FF61923Ab5082F6170e02cC847", + "receiver_dapp": "0x6830764E60471E813386dFDc746b81d26AAF0Ceb" }, "Optimism Goerli-2": { - "off_ramp": "0x538e1EDD7De66248321713beC94fa3D9D0c15DB2", - "commit_store": "0x29316E9d9A4FBe3910664944958Ac5C336c0F5a9", - "receiver_dapp": "0x588e7eBa8df2155F3895a07E49026AF736BE8A8F" + "off_ramp": "0xCe5BCFf1b0313e4fe97e36DCd760961a2deAfd16", + "commit_store": "0x05be8342Fa4A521Cb2cF7e80D179094C4E45Ca86", + "receiver_dapp": "0xD40ab7d2D49C59A3b59b59e36b1d0fC1aa0FdBA7" + }, + "Polygon Mumbai-2": { + "off_ramp": "0x1C96cb6E3766F80BC0AF25726331262555a1Bc94", + "commit_store": "0x8890814e8E54B60BA26931ca4B62Ea3061a99dA5", + "receiver_dapp": "0xCD77AB43c18547931d5E490566dE90071EaCE59e" }, "Sepolia Testnet-2": { - "off_ramp": "0xe1B7DB4993f6a56a9A3DdCeB845848aE1305E9FF", - "commit_store": "0xfe88eEdEe1e20d239Fcb9851A0c850274E53371F", - "receiver_dapp": "0x942750C32A9B502b4f39fF49a160c7625F38274A" + "off_ramp": "0x787Ce680cD1Bcf6E44B9162fDCEf34da721b4DA0", + "commit_store": "0xD6710B42772889679e61B6427BF9aAc2D76def16", + "receiver_dapp": "0xc6248501459407539715222A21e19bDa54D55145" } } }, @@ -712,651 +730,570 @@ "fee_token": "0xd14838A68E8AFBAdE5efb411d5871ea0011AFd28", "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0x4b318890a8Dd9E15F1905cEB141044Ce5D9df985", - "router": "0x476c5fF09f07361D235c068Ae274A8fC0e6FC437", - "price_registry": "0x461722E30ABC2532Ec1CF6D94405F1e98f61B370", + "arm": "0x8DBe3f909D4dD20dC38a53c71785F13F582Df36F", + "router": "", + "price_registry": "0x22bC3FDf88f14a2bc19ea5e94Ebb7Fb5ca87d86C", + "wrapped_native": "0x32d5D5978905d9c6c2D4C417F0E06Fe768a4FB5a", + "src_contracts": {}, + "dest_contracts": {} + }, + "Arbitrum Goerli-4": { + "is_mock_arm": true, + "fee_token": "0xd14838A68E8AFBAdE5efb411d5871ea0011AFd28", + "bridge_tokens": null, + "bridge_tokens_pools": null, + "arm": "0x8DBe3f909D4dD20dC38a53c71785F13F582Df36F", + "router": "", + "price_registry": "0x22bC3FDf88f14a2bc19ea5e94Ebb7Fb5ca87d86C", "wrapped_native": "0x32d5D5978905d9c6c2D4C417F0E06Fe768a4FB5a", + "src_contracts": {}, + "dest_contracts": {} + }, + "Avalanche Fuji-1": { + "is_mock_arm": true, + "fee_token": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846", + "bridge_tokens": null, + "bridge_tokens_pools": null, + "arm": "0x305e2a2623E055be2e37C0dc978e2D21c0a9dd03", + "router": "0x4306BcEF2467Dc2538887188541202881Bd8b188", + "price_registry": "0x9F1b53650B5D8DDF8328e76aD71Eb939a463551c", + "wrapped_native": "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", "src_contracts": { - "Avalanche Fuji-3": { - "on_ramp": "0x03A3aC6Cd8BAEcf83062103647337533B645BeBf", - "deployed_at": 43672837 + "Arbitrum Goerli-1": { + "on_ramp": "0x610E4625344f9Ec9352cf8B1BeA608874f97D2Fa", + "deployed_at": 26900006 + }, + "BSC Testnet-1": { + "on_ramp": "0x92c011ace4066267B9b92eec442bfB161888B705", + "deployed_at": 26900007 }, - "BSC Testnet-3": { - "on_ramp": "0x80F8965d9f38FeD2FE01Ee014Dd6458f88824af3", - "deployed_at": 43672865 + "Base Goerli-1": { + "on_ramp": "0xF29754B58A04C8f50061ea6147e3878C710C58fC", + "deployed_at": 26900573 }, - "Base Goerli-3": { - "on_ramp": "0x0619dC4e23C7Ea02c0CeD916099F2Ad440001C2B", - "deployed_at": 43672849 + "Optimism Goerli-1": { + "on_ramp": "0xb63Ee93CBe0992EB81FB4942A969b9855B423858", + "deployed_at": 26900007 }, - "Optimism Goerli-3": { - "on_ramp": "0x84B8adB571C76D7a814AC2f355652834254F8311", - "deployed_at": 43672825 + "Polygon Mumbai-1": { + "on_ramp": "0x331b8bcAc5744C2Dd3Cc7C28EF5BE433228ACFF4", + "deployed_at": 26900007 }, - "Sepolia Testnet-3": { - "on_ramp": "0x39A5268f1A3392Af8d134E8C90f96470C110A442", - "deployed_at": 43672856 + "Sepolia Testnet-1": { + "on_ramp": "0xcFeAB24FDA425Ce2b415E43aFb349e38E0ba283F", + "deployed_at": 26900007 } }, "dest_contracts": { - "Avalanche Fuji-3": { - "off_ramp": "0x7582a0bd9f92cB9fE8d7087Ff4ea67b05a5D9ce7", - "commit_store": "0x43e558cDc938392989c5a3d2D9e3342FC6b723a5", - "receiver_dapp": "0xfd236C90D53369775F3aA4DbdBa8246209cfce25" - }, - "BSC Testnet-3": { - "off_ramp": "0x31a7010B31aBba1c0794011ED19BA7Fa040220c6", - "commit_store": "0xA7CF702ce747361C7699AE38BfC28D41A7328774", - "receiver_dapp": "0xC2Ca79d2474b2Aa1800Cc0d2F7DC755Ff5e28fE3" - }, - "Base Goerli-3": { - "off_ramp": "0x53FC1Ec12084679871A069448699337BaED20578", - "commit_store": "0x1594605e3b980B9C3B2962dca24dec702EDea7D4", - "receiver_dapp": "0xB8f813632B310574cade8E6FBD272f5A31fcE721" - }, - "Optimism Goerli-3": { - "off_ramp": "0xA1fb511a96C71C82069cfB176F9e2c4e61eEE2f7", - "commit_store": "0x922B30Da5CB4CDD803347B0Ae6698ACEC2884cA6", - "receiver_dapp": "0x1b8E488E4d0000A964776912E48335ED6d52E587" - }, - "Sepolia Testnet-3": { - "off_ramp": "0xbF7481206f1A31760C9C0591ACc06D9e8499595e", - "commit_store": "0xB63D0108289b465B2914f20ddC0c1cBe59c4Af9F", - "receiver_dapp": "0xbc9fA9dD54Ff63222479fdA7A9cEB58b08ABD011" + "Arbitrum Goerli-1": { + "off_ramp": "0xE0E3E4CD356eC70d88E568c0786E6dd2ea6E26E4", + "commit_store": "0xE724664eABd3c976790E97AF94f6A526d2c2dB83", + "receiver_dapp": "0x3E807220Ca84b997c0d1928162227b46C618e0c5" + }, + "BSC Testnet-1": { + "off_ramp": "0xefC2dD7d3178e671e94f271Aad08bc84BCCa3c5c", + "commit_store": "0x7bE07B6CCEB552C41AbE7A9A5Fd56AC8cE68d538", + "receiver_dapp": "0x6005618904bB0BcE52EddA15F0Cf3Fb7D2A20E4d" + }, + "Base Goerli-1": { + "off_ramp": "0x2Df8AB6cd0963CB21d734fb5CBe2550E35A2de2e", + "commit_store": "0x298356fAe4Fb46988C2962bE9Ab92C6dF40ff359", + "receiver_dapp": "0x7Db8FDC5a8D49236E87E9b6a90AB59Cf3C108694" + }, + "Optimism Goerli-1": { + "off_ramp": "0x21359cEd2E9ae831Bf9C213413E2a881a4a62690", + "commit_store": "0x967C28eC9A16F1a6Da5AA12B0Fe9f99bfA815D1B", + "receiver_dapp": "0xd3Af5D8e15c9dDEdf5C0EE57EaFA9487a19587aA" + }, + "Polygon Mumbai-1": { + "off_ramp": "0x42fAe5B3605804CF6d08632d7A25864e24F792Ae", + "commit_store": "0xBeF919cB6B28b4eC6841310a4f51d3bA92232260", + "receiver_dapp": "0x7010e5Fb231E5eF23b4134BB9c0B7b3e1Eba0c6F" + }, + "Sepolia Testnet-1": { + "off_ramp": "0x65D3b6303126874a5F7607C4260aB0808ab72b3B", + "commit_store": "0x19e74a275CE3f82094153ee41349eaA0bE29a320", + "receiver_dapp": "0x34dEcb388B0bA87ADD04945833366E2E86Cc9A73" } } }, - "Arbitrum Goerli-4": { + "Avalanche Fuji-2": { "is_mock_arm": true, - "fee_token": "0xd14838A68E8AFBAdE5efb411d5871ea0011AFd28", + "fee_token": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846", "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0x4b318890a8Dd9E15F1905cEB141044Ce5D9df985", - "router": "0xb0df07880d22C1AD01c235249e7EFD9f125a0cb1", - "price_registry": "0x461722E30ABC2532Ec1CF6D94405F1e98f61B370", - "wrapped_native": "0x32d5D5978905d9c6c2D4C417F0E06Fe768a4FB5a", + "arm": "0xFee98E43a2ED492Bb7f0EBE29ccBcdBd4b99E906", + "router": "0xC5f723b94857360D0d7256C8cB903eF2ac420E5D", + "price_registry": "0xb014099621f4d7996BDaAa381545aE6A3F146526", + "wrapped_native": "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", "src_contracts": { - "Avalanche Fuji-4": { - "on_ramp": "0x3Afc4258DC7392bA44c6CBCE3f0A6bE85831fD5B", - "deployed_at": 43672840 + "Arbitrum Goerli-2": { + "on_ramp": "0xDc9E6Fa0c0d1E8f033C2cdA14CDA757D37080D13", + "deployed_at": 26900006 + }, + "BSC Testnet-2": { + "on_ramp": "0x0f5DE491880c598978C922F50107387E89876366", + "deployed_at": 26900007 }, - "BSC Testnet-4": { - "on_ramp": "0xef9199d6cfb3ee415b4bfdF84e0d0C1D9Ce1Ccfb", - "deployed_at": 43672862 + "Base Goerli-2": { + "on_ramp": "0x7305A97FD86E43809e9BA75f6809AE7746BFAef0", + "deployed_at": 26900573 }, - "Base Goerli-4": { - "on_ramp": "0xA1540777feC6a552Ea9c21953d57966ad5a887D6", - "deployed_at": 43672851 + "Optimism Goerli-2": { + "on_ramp": "0xCd49d0aA5C3Ba8C56E09BeC730ab2FBeF2B64940", + "deployed_at": 26900007 }, - "Optimism Goerli-4": { - "on_ramp": "0x2a014D3EBCC09fb6BB54f5eb41cbA226Fe29eE1E", - "deployed_at": 43672835 + "Polygon Mumbai-2": { + "on_ramp": "0xaA1fc5B614440DD09d2B69ca72f1187298C716CA", + "deployed_at": 26900007 }, - "Sepolia Testnet-4": { - "on_ramp": "0x825E1B8fFD7CF8dD00AE0FD38355E2D20de1797F", - "deployed_at": 43672860 + "Sepolia Testnet-2": { + "on_ramp": "0xFe72104d9DA264e1e2F4E95b2722462e58a175F7", + "deployed_at": 26900007 } }, "dest_contracts": { - "Avalanche Fuji-4": { - "off_ramp": "0x89052360F6DDF4Be690C32e1B3aFCaD940b7935C", - "commit_store": "0x4a3E902be8CF22B4Bb5A25F088947E268489A018", - "receiver_dapp": "0x9c8940c940B51ADD89eb1758f9f8a13Ce6345888" - }, - "BSC Testnet-4": { - "off_ramp": "0xd9C7825148eC08aa2721d5D37642C3944cbB9ad9", - "commit_store": "0x7A899A0051B87B1a55014B7c47361a6844349C08", - "receiver_dapp": "0x971e7caDD51Ee26963619D27aba1044a18F5c8A5" - }, - "Base Goerli-4": { - "off_ramp": "0xe6688145b8cb65CF26363B60dAe1B751532AFfc2", - "commit_store": "0x060c3468cc0a049eC62447f8279e8700260Fa840", - "receiver_dapp": "0x119295630AE140d11716351D99D31C303f15538F" - }, - "Optimism Goerli-4": { - "off_ramp": "0x1a8Aa7BAd74e98693aA5E12bd3f8724882d5095c", - "commit_store": "0xa6D2e78e90140D41e2E0B5da0Fd49311606896a9", - "receiver_dapp": "0x4D94BC4c471F96Fb5bA1B6538506aD30Cca020a9" - }, - "Sepolia Testnet-4": { - "off_ramp": "0x7E68D46f791d71aC429D31459c1cC77507AF812d", - "commit_store": "0xCc46356b7C42355c6E264a42Fabd4690134C2Aed", - "receiver_dapp": "0x96Ea2127F0B6BE0Ccf34aF85Dcba49dAB2c1b6c6" + "Arbitrum Goerli-2": { + "off_ramp": "0xc7f524935cc230D67D1b3149fd25baC0838E1c9b", + "commit_store": "0x1b20061C6848923F5A2fbCb560b53844336f5B14", + "receiver_dapp": "0xFbCA08B20FE270000Fe32ccFe9fbF1338D19121a" + }, + "BSC Testnet-2": { + "off_ramp": "0x078fe0766d1e14FaC46BD4aD546d212996e2e74b", + "commit_store": "0xaec2EfFd17AE876931390fF52353Cbb0e73170a2", + "receiver_dapp": "0x8Af8f96D83Bd15F5b3A6756B0E271A29334A2478" + }, + "Base Goerli-2": { + "off_ramp": "0x19bbe54cE6f06F24AA19d41032E2136c4fcB3cE1", + "commit_store": "0x7E934eeB550CbFe2B87907ffEA7FD1043bCD8Ee6", + "receiver_dapp": "0x0ea482a5008ebe388a3BC6488AFe00BDCA70F997" + }, + "Optimism Goerli-2": { + "off_ramp": "0x2C22c9062Ccf16cdB9B14d2272e88B0FD53fBe08", + "commit_store": "0x2E7cD47658e53bDEF82217529e2F012895b7Bc60", + "receiver_dapp": "0xaa7f942b033A2Ba95D4E315549854912B1D5F604" + }, + "Polygon Mumbai-2": { + "off_ramp": "0x4d7e29B16d930Bdb817b0bf387Bd6EA29b936C20", + "commit_store": "0x60a5B610BE3dC2E0a4D03E6B6C43137acC0c5888", + "receiver_dapp": "0xD7DDDBd6545aeCF60c0614ad6f9515FE498F2A5a" + }, + "Sepolia Testnet-2": { + "off_ramp": "0x7B33DFc2DDA91004C5123e370c4d4ea4422CF5E2", + "commit_store": "0xACDB79b5CA027fe6F004430996dADb8646c51E2A", + "receiver_dapp": "0xfE48aA92fA6666e1020B6eeD38A6b658Bc41F242" } } }, - "BSC Testnet-1": { + "Avalanche Fuji-3": { "is_mock_arm": true, - "fee_token": "0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06", + "fee_token": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846", "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0x86b9af794d83DAe5452d48957109227A59E32bc4", - "router": "0x8a082b4e5d46B4bc5fb4AE81Bd012269f27878A5", - "price_registry": "0xd96C62E1D6a3EabB0f04d8900A3Bb3dA9014Fd59", + "arm": "0xFee98E43a2ED492Bb7f0EBE29ccBcdBd4b99E906", + "router": "", + "price_registry": "0xb014099621f4d7996BDaAa381545aE6A3F146526", + "wrapped_native": "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", + "src_contracts": {}, + "dest_contracts": {} + }, + "Avalanche Fuji-4": { + "is_mock_arm": true, + "fee_token": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846", + "bridge_tokens": null, + "bridge_tokens_pools": null, + "arm": "0xFee98E43a2ED492Bb7f0EBE29ccBcdBd4b99E906", + "router": "", + "price_registry": "0xb014099621f4d7996BDaAa381545aE6A3F146526", + "wrapped_native": "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", + "src_contracts": {}, + "dest_contracts": {} + }, + "BSC Testnet-1": { + "is_mock_arm": true, + "fee_token": "0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06", + "bridge_tokens": [], + "bridge_tokens_pools": [], + "arm": "0x179C4756E9894abAD41407EE2dCe32865E950Beb", + "router": "0xd1bd7346e8Bc782aeB5b010216D128386AE4a33D", + "price_registry": "0x65CBEA8Db87e4719Ec21963E93fc2161a5b80C0E", "wrapped_native": "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd", "src_contracts": { "Arbitrum Goerli-1": { - "on_ramp": "0xA81163e500F3F839467e866dec2F2B97CC15e304", - "deployed_at": 33570760 + "on_ramp": "0x9FD236C14029Be980D849e7ba6e470bC633C48B9", + "deployed_at": 34322273 }, "Avalanche Fuji-1": { - "on_ramp": "0x58fD2d9e9f16b900e731701B45b528Fb3d9C3a50", - "deployed_at": 33570769 + "on_ramp": "0x8836490c82A80A163E4E9D469Cd6EF66743A894E", + "deployed_at": 34322274 }, "Base Goerli-1": { - "on_ramp": "0xC869632eFDf4cc9A7bC37539eDe37718c4498768", - "deployed_at": 33570764 + "on_ramp": "0xbb75e487e23CBfcbB0ab1b1f480DC2Db8b9542b5", + "deployed_at": 34323023 }, "Optimism Goerli-1": { - "on_ramp": "0xcEDf9cb2465fC439C19B648e5d11F6253693854D", - "deployed_at": 33570766 + "on_ramp": "0x9C08B7712af0344188aa5087D9e6aD0f47191037", + "deployed_at": 34322274 + }, + "Polygon Mumbai-1": { + "on_ramp": "0x16fF08bcBDCE5dA3BFC6e27cB02CE0CDe1dC33Ec", + "deployed_at": 34322274 }, "Sepolia Testnet-1": { - "on_ramp": "0x3048d2d1897B2278A8f9bCbC13AAdd5fd0C945b0", - "deployed_at": 33570756 + "on_ramp": "0x1a037Df369AE8Fe3de497735714652b776162EA8", + "deployed_at": 34322274 } }, "dest_contracts": { "Arbitrum Goerli-1": { - "off_ramp": "0xcdAc3deE846f51C034CB606b42fEdE81560cA245", - "commit_store": "0x6a12C3251EcfE1A69c609BCe17F333433366DcbB", - "receiver_dapp": "0xeFf383ea10AD1c52566D3A16CDc6A9DBCf86676D" + "off_ramp": "0xFC5c071F8Bb198366D36bd893C42f675281aFbE8", + "commit_store": "0x927A10BebeA3777a60999B4DE8669beC21255bAa", + "receiver_dapp": "0xcb342aE3D65E3fEDF8F912B0432e2B8F88514d5D" }, "Avalanche Fuji-1": { - "off_ramp": "0x5569DCE9e02C8179855f390625B5aB2BD068f5dd", - "commit_store": "0xeaece6f4d182177e9474588b3eb0feecf4489a58", - "receiver_dapp": "0xcE956b42EaD4AbDBA1808991068041a84788Fec4" + "off_ramp": "0xA269EEAc1BB817644Eb0c5938CF5A931eE229bCB", + "commit_store": "0x9ff1fE8ce8f288Aa51fb3369Ed5524921A334c24", + "receiver_dapp": "0x33c3Cd21df6eD05424Fb7b4917aA335a329e28ac" }, "Base Goerli-1": { - "off_ramp": "0x6589a24739BEeEBc7e7EDB9b8e6acb9D91eD6b38", - "commit_store": "0xdF3e53749A0a8781d052329CECdc93e3b038F4dC", - "receiver_dapp": "0x3d6d340692E08887e35800e7dd105685f87CBe64" + "off_ramp": "0x0029998e5ec69EeFDB8FD339dF4272d55686eBD2", + "commit_store": "0x2d141126325ec39DE6b19eE80aDCC4Fd36d546fF", + "receiver_dapp": "0x788e2E45966BaEC06C72afbcB2aA85330fD681B4" }, "Optimism Goerli-1": { - "off_ramp": "0x8765f1dfA7e127290afd8BF92084394a8aC73A33", - "commit_store": "0xBa5324cBf19DFdD431349cc7ee88F0edf45A4D88", - "receiver_dapp": "0xdd7b1893F32a1db2f5fbE60708403d70A781c9a1" + "off_ramp": "0xdF5bdd0b51EF32aF590FD551a3f9EE2aAFD79425", + "commit_store": "0xA1A312D5d350cBa700c96B4aD666fD9fc362EC80", + "receiver_dapp": "0x53b84d560D21ce0B9BD4677974e58BA85Cc77849" + }, + "Polygon Mumbai-1": { + "off_ramp": "0x42f3543096C0F0eeEEDCf5198d54619cA9E93E8A", + "commit_store": "0x8028328fD86C63F7cA14ba031c193DD5BF4cd678", + "receiver_dapp": "0xe62F91bF15Ae7D262BC516a878eF7c69d6449712" }, "Sepolia Testnet-1": { - "off_ramp": "0x11f9640A1CaBE7C08126fE0b51B3b4b2fae27444", - "commit_store": "0x6932a2F65fd143CF3A8878BF85290E85126418Fb", - "receiver_dapp": "0x7807C5187797208bea89F1967165B54Cc828E762" + "off_ramp": "0x255169701cbEBd19bA56D4135a0456619BBdE1Bf", + "commit_store": "0x31A992D45608e9707d8E5485b3D2387Ab7a79fC9", + "receiver_dapp": "0x2E86b60de5381FD44227C6BB92e06192c30F4a48" } } }, "BSC Testnet-2": { "is_mock_arm": true, "fee_token": "0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06", - "bridge_tokens": null, - "bridge_tokens_pools": null, - "arm": "0x78BdF1fa80f43f8dA8cbd85151B8e31e59E1ee13", - "router": "0xF13Cfac3A6350975550f358A6DbEdab84d3a4092", - "price_registry": "0xF89bF3b471EE4d268472E768bF488013864afD0B", + "bridge_tokens": [], + "bridge_tokens_pools": [], + "arm": "0x092047b6f7db7C0Ea8AE58075f7869DC5c1C0f3f", + "router": "0x8E5F52E9E72cc1Ef65EFee336b2ea751F7499f79", + "price_registry": "0x1b424319E6DA0FFaAD1Df89A3FD49E90014c3e66", "wrapped_native": "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd", "src_contracts": { "Arbitrum Goerli-2": { - "on_ramp": "0xa86CabB64c75a2489BA719f7afed04Bd7A717137", - "deployed_at": 33570760 + "on_ramp": "0xc6F57d0C4dB1f9CBf429f603ff64DB5bD42A278D", + "deployed_at": 34322273 }, "Avalanche Fuji-2": { - "on_ramp": "0xE0d3d9f0E6181AB4eEc2578839825fEEC2fEFE9c", - "deployed_at": 33570769 + "on_ramp": "0x85fC1bFd60ea5EC7378DA0Ce4a63D66DC924A029", + "deployed_at": 34322274 }, "Base Goerli-2": { - "on_ramp": "0xC24985E626fb1e93E1B750240Cf1B36DB48c5c84", - "deployed_at": 33570764 + "on_ramp": "0xDDf86095Be746779BAf913635429CE60b8Cc1159", + "deployed_at": 34323023 }, "Optimism Goerli-2": { - "on_ramp": "0xfD0cb62e225FB9fa4BD7450EDeDd8A2133fFc2b0", - "deployed_at": 33570764 + "on_ramp": "0x1B5c3F26275b8d5fe2B082D40f199c7194a466B4", + "deployed_at": 34322274 + }, + "Polygon Mumbai-2": { + "on_ramp": "0xa556F001eED578fBB9d60AbE7d4b32a6aE2614e4", + "deployed_at": 34322274 }, "Sepolia Testnet-2": { - "on_ramp": "0x212a73B06343698f4ea8526D3605FA041AC1c714", - "deployed_at": 33570756 + "on_ramp": "0x4BE6DB0B884169a6A207fe5cad01eB4C025a13dB", + "deployed_at": 34322274 } }, "dest_contracts": { "Arbitrum Goerli-2": { - "off_ramp": "0x568250875D5cfb983372D7551F69444371e497a9", - "commit_store": "0xDB76939E46E08e7afB34A63472032D30d6857245", - "receiver_dapp": "0x5262af1245B612c186eaF27AE602e09a09D4cC98" + "off_ramp": "0x8aE93eB0935FB6E8843F808F4655e89D9B2516e1", + "commit_store": "0x33871d5dDAa001e6A201f3158d7323BC04a748D1", + "receiver_dapp": "0x58A1c47cEeb0C6b0E93CE289Ea3930D009C0CFeF" }, "Avalanche Fuji-2": { - "off_ramp": "0x8F0097F37eE35fF07B7289Ef275B1A6AAc497b83", - "commit_store": "0x8F9134cDe4fF6A45C5FF1568bD2e1188f51Ff194", - "receiver_dapp": "0x93b828C608D536EeDed6eD8ed9Ea273337e171D2" + "off_ramp": "0x350FB3532c91eb810735Bce794573AF0774B33aB", + "commit_store": "0x482B912c4884830E71635A3BdF4E8a47e91C813A", + "receiver_dapp": "0x885553FA149f7e450092aF33c1D0E496F06Da25a" }, "Base Goerli-2": { - "off_ramp": "0x43825EA6a7ab9D4b3054e631EB9e9F1646c4cd07", - "commit_store": "0xae0700EF9D1aAF703D8C4497817d4D2EB6e0eCA0", - "receiver_dapp": "0x8E5500CF568093896797E3c056EA15bff8AB1Ce3" + "off_ramp": "0x1C196f394244E3955430331F1c7BA15923d6671d", + "commit_store": "0xFA8F4f340ee156f27528a6bd4C2390252cA932F6", + "receiver_dapp": "0x4Dca657257f6392922e1834183A27daEaD2c8D62" }, "Optimism Goerli-2": { - "off_ramp": "0x8cC0Ca2cc336c03C1600585Ce21926Bc65Ca46eB", - "commit_store": "0x8c429C7709DdED5817e63db075E55eB934b4F5b6", - "receiver_dapp": "0x0178b04baDbb44650bD62808CD327F01071f4109" + "off_ramp": "0x37b34BE327B2de1aC2AEfB7045B4BfD017920395", + "commit_store": "0xDFBeAc9989DC112CE4F5AAF9E86cFF779AE42110", + "receiver_dapp": "0x6A430C920cbB68B748c5c6eCc8baf65FA1242E8C" + }, + "Polygon Mumbai-2": { + "off_ramp": "0xfbf5FB8C424A5E5852520387f199447aa713159a", + "commit_store": "0xcB3DfefD1223843c3C3eAB23502a0421Cf0703ba", + "receiver_dapp": "0xAfe0BF63E534a351F78b9a2D4a8fa761bd85AF2E" }, "Sepolia Testnet-2": { - "off_ramp": "0xA6d935cbe192543FF8e58e930156ABF1BCFcDc01", - "commit_store": "0x59959D544c81Fcacf8506d8084cBD99376b25712", - "receiver_dapp": "0xe41bA28D2673410228346B117efc903091c3551b" + "off_ramp": "0x547ac745Cf56A925626D4763078Ed95c4Bb4FC97", + "commit_store": "0xA86e3c35cbdFCA1dE405b30C6fb458DEB5a73D5B", + "receiver_dapp": "0xd604e61Cec366dE54C1C1F14b5F1c5D60094dE07" } } }, "BSC Testnet-3": { "is_mock_arm": true, "fee_token": "0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06", - "bridge_tokens": null, - "bridge_tokens_pools": null, - "arm": "0x78BdF1fa80f43f8dA8cbd85151B8e31e59E1ee13", - "router": "0x67a89f023378b457E01dFfceF3c2a7E3922ac4ef", - "price_registry": "0xF89bF3b471EE4d268472E768bF488013864afD0B", + "bridge_tokens": [], + "bridge_tokens_pools": [], + "arm": "0x092047b6f7db7C0Ea8AE58075f7869DC5c1C0f3f", + "router": "", + "price_registry": "0x1b424319E6DA0FFaAD1Df89A3FD49E90014c3e66", "wrapped_native": "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd", - "src_contracts": { - "Arbitrum Goerli-3": { - "on_ramp": "0x28c32c0381bAC68ECd074EFf42e34004078E390f", - "deployed_at": 33664955 - }, - "Avalanche Fuji-3": { - "on_ramp": "0xB3A2f0BED6174eA061b69188E07A3fdFF38B86E1", - "deployed_at": 33664955 - }, - "Base Goerli-3": { - "on_ramp": "0x143B484D1E7F383f76B40Fa07B943DAC4bfB5971", - "deployed_at": 33664955 - }, - "Optimism Goerli-3": { - "on_ramp": "0x057225C609004bf87470f56C3F2Ba1C419CF7a43", - "deployed_at": 33664955 - }, - "Sepolia Testnet-3": { - "on_ramp": "0xaAA75BfB29Ae1FFd69583ae93c59655d54E2F783", - "deployed_at": 33664963 - } - }, - "dest_contracts": { - "Arbitrum Goerli-3": { - "off_ramp": "0x660fde9CdD37509830A5Bd779E3ef64496066C09", - "commit_store": "0x97a09Df388921A2A98e09cCf03f2b9d11d294e07", - "receiver_dapp": "0x3E231Ba6A09b9989B0B090d02b6e84881efCcD8a" - }, - "Avalanche Fuji-3": { - "off_ramp": "0x7373d09D6eCA4e0830CfC91FF8a760935b6BF425", - "commit_store": "0x9C712E5d23A0C20C79A6f84E8C0c41e3DE1A5DEc", - "receiver_dapp": "0x7cA325cfF9ff7ae116CB8A1F0C9a1524ee70CF2d" - }, - "Base Goerli-3": { - "off_ramp": "0x622ccE97d8c88EE48e0fC8BCE4da15c983Ea3472", - "commit_store": "0x53b9E91F03a78b641eBE6eBe4D5CF8afb77f83C0", - "receiver_dapp": "0x4f856Ab0cBf155f0Fe181CcBFD1C66C4018a7e6b" - }, - "Optimism Goerli-3": { - "off_ramp": "0x657415e55d8b09607546AA85F56996a621e5D6F5", - "commit_store": "0x0a7C9cd207B475C16D4Ae026721AF112Ae144f61", - "receiver_dapp": "0xcAB6D796b771CB9d9cbABBc1fB1800f0fAf993C8" - }, - "Sepolia Testnet-3": { - "off_ramp": "0x3Ad0B1554BfBca724Ee7dD98645cd4790073619d", - "commit_store": "0x85E70d4CB9d705D86045Ec353354c19764fB01B2", - "receiver_dapp": "0xA1903b2735735Bf5e0E34363bF866b349291cCbD" - } - } + "src_contracts": {}, + "dest_contracts": {} }, "BSC Testnet-4": { "is_mock_arm": true, "fee_token": "0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06", - "bridge_tokens": null, - "bridge_tokens_pools": null, - "arm": "0x78BdF1fa80f43f8dA8cbd85151B8e31e59E1ee13", - "router": "0x5C867ea1326f1a98c96752239C098A2195C979d3", - "price_registry": "0xF89bF3b471EE4d268472E768bF488013864afD0B", + "bridge_tokens": [], + "bridge_tokens_pools": [], + "arm": "0x092047b6f7db7C0Ea8AE58075f7869DC5c1C0f3f", + "router": "", + "price_registry": "0x1b424319E6DA0FFaAD1Df89A3FD49E90014c3e66", "wrapped_native": "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd", - "src_contracts": { - "Arbitrum Goerli-4": { - "on_ramp": "0x14d209C5c0867e0e779BCBB407986826eC132E50", - "deployed_at": 33664955 - }, - "Avalanche Fuji-4": { - "on_ramp": "0x6978c45Cd210769DdB1c05Fd7F1841C0dE3dc9a6", - "deployed_at": 33664955 - }, - "Base Goerli-4": { - "on_ramp": "0xbAd5194F0af07c7D0e636F84b4ce23BE4146d342", - "deployed_at": 33664955 - }, - "Optimism Goerli-4": { - "on_ramp": "0x6C7163a7383a52044861fFC34cad9e93ee762592", - "deployed_at": 33664955 - }, - "Sepolia Testnet-4": { - "on_ramp": "0x987063C6c18358302C684075e2B9B2f53E274f15", - "deployed_at": 33664963 - } - }, - "dest_contracts": { - "Arbitrum Goerli-4": { - "off_ramp": "0xAf6E8c1E28C9BA4e943b9537ea8862C39dF65ba4", - "commit_store": "0xE6753049E6d9e5720955761a088116413263237a", - "receiver_dapp": "0x25D0cE8c83Aa384706D8a7Fa29d4BE63E4aD8F21" - }, - "Avalanche Fuji-4": { - "off_ramp": "0xF309cb74D08F13c0B5dD07B06c1fDF9f11836f18", - "commit_store": "0x560bD3A58b9e865A9446505D2272fed6AF19d4E0", - "receiver_dapp": "0x55130928Adc10A94158a8f2f39d19c51893D3479" - }, - "Base Goerli-4": { - "off_ramp": "0xb679892C6DF5d5B7C62B1820E259Dd5C806dd742", - "commit_store": "0x04727Cf448ef85abD04c1bd96E0D5Ead1ED28E9F", - "receiver_dapp": "0xf35c8F9bc29511b726C3FFB9Cdf0Cb1be14fd456" - }, - "Optimism Goerli-4": { - "off_ramp": "0x927ff2ECCb39d9C276FeF0c144C0D152F87F2522", - "commit_store": "0x6563d2aAdc3263054088E4d6d9581284cf25d29C", - "receiver_dapp": "0xC60eAF4BfA46D66319993583c5207376ADcafeb6" - }, - "Sepolia Testnet-4": { - "off_ramp": "0xA26Ec1785ea604B28aAC11321b6F7948714393B5", - "commit_store": "0x1865fF5Dc1E7a9027D85A2946e5B0f64cb904371", - "receiver_dapp": "0x296F2f509e636a9FC978160Aa34671BD11a4Ef6a" - } - } + "src_contracts": {}, + "dest_contracts": {} }, "Base Goerli-1": { "is_mock_arm": true, "fee_token": "0xD886E2286Fd1073df82462ea1822119600Af80b6", - "is_native_fee_token" : true, "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0x1E5b6ce8EB1071B2B1686ddd241fE6a3c07560DE", - "router": "0x798fc31e7f9df420004e30924e0bB2f70bd81A6B", - "price_registry": "0x3D81363D0b071327870133c7932893189c1A74E1", + "arm": "0x7808b2CE1D8b23C172c29372c34747E7127e2E5d", + "router": "0x22CEaEE4E873D0fA279D300910895f89aAeE3e6c", + "price_registry": "0x7Ea5F675272bBC19830e24b0F098626498246f4e", "wrapped_native": "0x4200000000000000000000000000000000000006", "src_contracts": { "Arbitrum Goerli-1": { - "on_ramp": "0x409cBD2ABcb81e9C4955f609d127A1e13681f8DE", - "deployed_at": 10107794 + "on_ramp": "0x9d5Adc4348A28Df5786E8bE10D494402369e6A1e", + "deployed_at": 11236358 }, "Avalanche Fuji-1": { - "on_ramp": "0x704BDdbb7a54FAB8845555511C7386d44cF65716", - "deployed_at": 10107803 + "on_ramp": "0x649Ad8C55eE6AD8Ebb9435bd6C8b9Aa91C5eD400", + "deployed_at": 11236357 }, "BSC Testnet-1": { - "on_ramp": "0xEC264F72a32B05dda535D4afEaD0FDB5eFB59ED1", - "deployed_at": 10107790 + "on_ramp": "0x88bF90E3de10b69a8Cc4525B5944240AA5f534DC", + "deployed_at": 11236360 }, "Optimism Goerli-1": { - "on_ramp": "0x64143a99D37De9681439e243DB55bFaEE744f969", - "deployed_at": 10107800 + "on_ramp": "0xd0cB68D1fd8804ee40d8f458C0999B09bf995CbE", + "deployed_at": 11236365 + }, + "Polygon Mumbai-1": { + "on_ramp": "0x8A284Ec893949716B44f8b7612A537140323Ec38", + "deployed_at": 11236361 }, "Sepolia Testnet-1": { - "on_ramp": "0x8bAD2082cbF0D68bE5e9347a5b91F4d092440942", - "deployed_at": 10107788 + "on_ramp": "0xcdaD701E791dd195fDa538cA24c0be8b789eE904", + "deployed_at": 11236358 } }, "dest_contracts": { "Arbitrum Goerli-1": { - "off_ramp": "0xA317059893c4Cf4746939361324d5b4FFef32ef6", - "commit_store": "0x5414059785A1fDc13B0515bd27437cCa1e9bb35A", - "receiver_dapp": "0x0FB27151FAb7F4c9804e201013e9cEB4160b8F4E" + "off_ramp": "0xC68b7F6c8d7c0Ea0F8dc1F9eaAdF08896ab247e4", + "commit_store": "0xfc6617f3Dfa5500203f00ddf83c2212F376176bd", + "receiver_dapp": "0xD2Cd9350a088d43452cA1A50dBfA15343E3a45A0" }, "Avalanche Fuji-1": { - "off_ramp": "0xcF9278Ad7D9528784174e4D6fd30C5bD5ED0f8C3", - "commit_store": "0xa3ea4eb9Df43B8c281A91CeA9F9a66A4F542e25A", - "receiver_dapp": "0x0172C9cFb36A51C28B9E499722cd561b143f7b92" + "off_ramp": "0x55029d5268240db81c401580c4071c32A7e3D5B1", + "commit_store": "0x801439a270f18A7c73586E229ADf6e94C7B81173", + "receiver_dapp": "0xc48d32E988253ceE66E2F4F3fbB53B01B26B4685" }, "BSC Testnet-1": { - "off_ramp": "0xf6c000bF7803326465824c3016BF06523C81a983", - "commit_store": "0xcd055C60fc9FbB19B0A7a401ac7E166e859fB5cF", - "receiver_dapp": "0x3c2484b44566bD10aD03a1c212166D6B3625D024" + "off_ramp": "0x687EF81b62D5DA3c49b3064454d9D1cefEdE1755", + "commit_store": "0xebD05F8d74C9caBfc4b6ef8835fd7C5FaD4C9883", + "receiver_dapp": "0xfBe96d0E8284239EB9c1cbf2890178b1444B3Dd7" }, "Optimism Goerli-1": { - "off_ramp": "0xA02EB0b271E741015CF9A89C1dd6324617D95dc1", - "commit_store": "0x8e3fC15954915D6C9b9ABf0C747CE1c43e050Cbd", - "receiver_dapp": "0x552f6C63894c00D0979e614FF9B0300B4B974E45" + "off_ramp": "0x3f07B9ebd84Bd4088D80897B0378C9645EC95117", + "commit_store": "0x451086C19A04d89a840354e5537BD59550d1F2d3", + "receiver_dapp": "0x104A49d81847eE3bcd900cCcAb1333d2EEFAcDF8" + }, + "Polygon Mumbai-1": { + "off_ramp": "0xcff8582f56513C2082D56c31479715C98dc4d700", + "commit_store": "0x8Fb6282368a648FaDA28DeF325a723AE061Ebb72", + "receiver_dapp": "0x09dAF7eC6601E08a1adD371011aaB0b8a7953dBF" }, "Sepolia Testnet-1": { - "off_ramp": "0xFb48042b433cc190524e2cF82347D0415d6600A8", - "commit_store": "0x54846bFAc88C74575a90e54817279b614255e80c", - "receiver_dapp": "0x53e82715596baa2470E57D20AeaFBEaDDa3Bd8e4" + "off_ramp": "0x41172db9Cc50a6861910b5c62b323756B05ea9C3", + "commit_store": "0x65e54B4F338bD718a258668b60E9d141e8d756D1", + "receiver_dapp": "0x11a76806E6639A67789E4f679ca479c0C8E2CF44" } } }, "Base Goerli-2": { "is_mock_arm": true, "fee_token": "0xD886E2286Fd1073df82462ea1822119600Af80b6", - "is_native_fee_token" : true, "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0xE42597d226Eab595893f1ad1B0d7F58d7F1Cc375", - "router": "0x405411ECF0F3863f77631C6A50787027FFC4ab78", - "price_registry": "0x8d426F4A530618414c3C93eD39AD1e2368214C6e", + "arm": "0xC110044180409bdF033B25e5962C415c5C5C2A99", + "router": "0x0fA77A2df96f59Ab60f440aF790Ed74eB7D16128", + "price_registry": "0x3011Df7E7d34Ae72070Bb9C5A9DEfCc8489269C5", "wrapped_native": "0x4200000000000000000000000000000000000006", "src_contracts": { "Arbitrum Goerli-2": { - "on_ramp": "0x6Ee577bb575590127f54703FCe50026e9D8627D4", - "deployed_at": 10107795 + "on_ramp": "0x3150C882f21Cf670a01073002D8E10Cd56dB44CF", + "deployed_at": 11236358 }, "Avalanche Fuji-2": { - "on_ramp": "0x118982B77e37af4B4240b5ed828aBfB35088D61e", - "deployed_at": 10107801 + "on_ramp": "0x7556Ada51AC7d8f319f90F05d5837349C0D6eBD4", + "deployed_at": 11236357 }, "BSC Testnet-2": { - "on_ramp": "0x003CE3196F8bA0c082D94CdA36500fDa529E67Dc", - "deployed_at": 10107789 + "on_ramp": "0xA700eB666922f033583c61eAeC82E6cFD68C20f2", + "deployed_at": 11236360 }, "Optimism Goerli-2": { - "on_ramp": "0x0c1B5a823ee5dfDea8c26d999394C9c4E43479bD", - "deployed_at": 10107802 + "on_ramp": "0xdDe7fd5817d6c02016F278E7746C9Ded8151be30", + "deployed_at": 11236366 + }, + "Polygon Mumbai-2": { + "on_ramp": "0x01A765F78529a7e7E2DbFe112b968Bb521A74242", + "deployed_at": 11236361 }, "Sepolia Testnet-2": { - "on_ramp": "0xF27aA4Dc5A15DF188F89f7745AfFa1105FA4a5bF", - "deployed_at": 10107785 + "on_ramp": "0xEC6d1eC94D518be47DA1cb35F5d43286558d8B62", + "deployed_at": 11236358 } }, "dest_contracts": { "Arbitrum Goerli-2": { - "off_ramp": "0xd6568f014004Fb726AAC149A3e4dB9A6001C605c", - "commit_store": "0x946D2ea85689eDA05De9b4e24d579D0dCf040eD1", - "receiver_dapp": "0x2bf7263FC70D855E0a79E22449b27114b871aD09" + "off_ramp": "0x315d63683C0A8Ad3ACC8604Cd38735a6C19FA8F3", + "commit_store": "0x6DB5F2850A5505738D25d13654848EA4273D8584", + "receiver_dapp": "0x8ac7b1BBe2eCd32EcdD6AeBeb9251B201672c7B3" }, "Avalanche Fuji-2": { - "off_ramp": "0x0DbB6CdF8B2D0e9A24110138A21e23c6ECB85A91", - "commit_store": "0x6dDf27754dD14c7f7291873dc34c6D4b0335b5ed", - "receiver_dapp": "0xf806cC406aCfC9deedfeb7b071F4CB77017aE3f9" + "off_ramp": "0x9810C63348d64c58fB9b5ab4328977258abc090D", + "commit_store": "0xacf9f41f1a92Ac3b996d215fCAF1968c3232CCFF", + "receiver_dapp": "0xB57AC862d8e69c9c0Ba8b30b3E0ee85672C49fAB" }, "BSC Testnet-2": { - "off_ramp": "0x95c712fC91DAC73C225a034F5FB547A22b0F4D86", - "commit_store": "0xEe46548b5bb32ba954255f80a2A39BB42651a999", - "receiver_dapp": "0x92334BAC40e00ec8ED6Dc4571E3Cf9E2554D93FA" + "off_ramp": "0x0Ba90663C2054dAd5620A9DF1fe3A240589EC9D8", + "commit_store": "0xCA12eA4BAc7F6F16a1f6f02d7BBB2F6a8590CFEC", + "receiver_dapp": "0x6Db0562f19E5447d839574b595Eba618902E01A7" }, "Optimism Goerli-2": { - "off_ramp": "0x9c2c1b8364CC0244584a3d042E169Ae35A49c348", - "commit_store": "0x6579C136a5FB099CD1B7261A2517C19849Bc870F", - "receiver_dapp": "0x3Ad2bb7704FDf4de50fE676317005605Ba21D15f" + "off_ramp": "0x3720cE4E83da9405A45f550d77cc576C3211AD82", + "commit_store": "0x0AC393E07CeA97Acb3Eef27A828917020F8c9EdB", + "receiver_dapp": "0x73B7B4F5Dc8F9D07Efb34764CBAf13184F91EaE4" + }, + "Polygon Mumbai-2": { + "off_ramp": "0x5C736FB30eef6B417E8c2Ad25844D1E9DDef3848", + "commit_store": "0xc0B3Ee7AfF50E43eebD637528f12287B68279956", + "receiver_dapp": "0x946acE3C86bda373637729ee95B20684F3B977e7" }, "Sepolia Testnet-2": { - "off_ramp": "0xb0A1fbdd6521979b7D15aF5939f920d012CB6be6", - "commit_store": "0x7Cfb072E634b3A96DC67890d3C07d7eE5Ded3412", - "receiver_dapp": "0x3c7AD47dC6633005039d1DAc20b7d2e6cBe2E24d" + "off_ramp": "0xC3bf411c3B304ab823AAA05E9A2d1B0c8DC0bFF8", + "commit_store": "0x9Ca6c4617E217b546F24cd57356Bb8e5c6FeBBF8", + "receiver_dapp": "0xAfe3Da6C0c770A4dd3F5D5DA3D0D9499617de52D" } } }, "Base Goerli-3": { "is_mock_arm": true, "fee_token": "0xD886E2286Fd1073df82462ea1822119600Af80b6", - "is_native_fee_token" : true, "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0xE42597d226Eab595893f1ad1B0d7F58d7F1Cc375", - "router": "0x119295630AE140d11716351D99D31C303f15538F", - "price_registry": "0x8d426F4A530618414c3C93eD39AD1e2368214C6e", + "arm": "0xC110044180409bdF033B25e5962C415c5C5C2A99", + "router": "", + "price_registry": "0x3011Df7E7d34Ae72070Bb9C5A9DEfCc8489269C5", "wrapped_native": "0x4200000000000000000000000000000000000006", - "src_contracts": { - "Arbitrum Goerli-3": { - "on_ramp": "0xBbe775C0B4b0977c1182f8e7a12CDa5C7271Fd1D", - "deployed_at": 10249083 - }, - "Avalanche Fuji-3": { - "on_ramp": "0x819136C2C9681d22351F906D1f103f5b8B386315", - "deployed_at": 10249093 - }, - "BSC Testnet-3": { - "on_ramp": "0x2df7D687d02cF6Cc610E9E888Cb84db2490e26D3", - "deployed_at": 10249085 - }, - "Optimism Goerli-3": { - "on_ramp": "0x059Cd76e5f748c6A79b378C87c4Bad43CA314C27", - "deployed_at": 10249081 - }, - "Sepolia Testnet-3": { - "on_ramp": "0x03BcB459B152f356E0b5F47b5c17599EC0d6CD04", - "deployed_at": 10249084 - } - }, - "dest_contracts": { - "Arbitrum Goerli-3": { - "off_ramp": "0xE0eba23f2cC06027e909efDecED8E2De476EA97D", - "commit_store": "0xAe3408aC4C8a4a1270234C6Ca9D1051aEb4b0711", - "receiver_dapp": "0x386aD221EB041290e5927d3d2d980d4A36111D19" - }, - "Avalanche Fuji-3": { - "off_ramp": "0x4a0fE04874e4Cf3a374C0C33cbfc5106069bAAd6", - "commit_store": "0x97D9693E8b2EF2A46b3E30bE2FD4d378107C02b9", - "receiver_dapp": "0xb7deDF359A5bCdD109E8Fa822D7D7E318FEC241f" - }, - "BSC Testnet-3": { - "off_ramp": "0x7b6f0a5FC3c32DbA5a796d4E7cc774A6e177e537", - "commit_store": "0x16C8ed56c10a0CC7CCfCf96de7d7A4091C6A4ce9", - "receiver_dapp": "0x5B095cDD702accd8Faa2130c2b6f533A28F363c3" - }, - "Optimism Goerli-3": { - "off_ramp": "0x946BDEa21453b53E46CEeC0e0925D44Cd6E8C304", - "commit_store": "0xB7B4d6F6b96c541417838C76F759286fcc9337c2", - "receiver_dapp": "0x0920292d713b7acf373D6Af0C494bE9B6B98B941" - }, - "Sepolia Testnet-3": { - "off_ramp": "0xfDe58673975FCcA65A70ea1B048655d28C19E0Ba", - "commit_store": "0xCf0082aaA5428Ff2E5213D483D522Ff5aa644Dab", - "receiver_dapp": "0xF19a94D55FfbCb40bCA5df788A3101BCfF03b3cD" - } - } + "src_contracts": {}, + "dest_contracts": {} }, "Base Goerli-4": { "is_mock_arm": true, "fee_token": "0xD886E2286Fd1073df82462ea1822119600Af80b6", - "is_native_fee_token" : true, "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0xE42597d226Eab595893f1ad1B0d7F58d7F1Cc375", - "router": "0x619ECD15082E7090B189cF70Ebd96346d812a3d8", - "price_registry": "0x8d426F4A530618414c3C93eD39AD1e2368214C6e", + "arm": "0xC110044180409bdF033B25e5962C415c5C5C2A99", + "router": "", + "price_registry": "0x3011Df7E7d34Ae72070Bb9C5A9DEfCc8489269C5", "wrapped_native": "0x4200000000000000000000000000000000000006", - "src_contracts": { - "Arbitrum Goerli-4": { - "on_ramp": "0x16F248290E48AAe3725D74F8260A0418bd789323", - "deployed_at": 10249083 - }, - "Avalanche Fuji-4": { - "on_ramp": "0xD0b163872bc332B25782cDBd0279f8d92496759f", - "deployed_at": 10249082 - }, - "BSC Testnet-4": { - "on_ramp": "0x7B3363AD3b1711376179A38efA45e3E043C40cB5", - "deployed_at": 10249086 - }, - "Optimism Goerli-4": { - "on_ramp": "0x54DFeca9e1c2090033C379492c24CeAb80D09817", - "deployed_at": 10249082 - }, - "Sepolia Testnet-4": { - "on_ramp": "0xc908846e83521CD0a37b89413Ca36d618eaD7a67", - "deployed_at": 10249084 - } - }, - "dest_contracts": { - "Arbitrum Goerli-4": { - "off_ramp": "0xE4322B07010081875F6f827b4AcF42B74cFAd0b3", - "commit_store": "0xe9Cf8E15F10C55F607fE98ee194855933E3F56f7", - "receiver_dapp": "0x3A01B945a12a368182a62F850D025af21a7DdE30" - }, - "Avalanche Fuji-4": { - "off_ramp": "0x17478F43dA12C925719Ea344592Eed1bBE0A1787", - "commit_store": "0x096Ad364c84746F23686154AE97BcAe520a84CDF", - "receiver_dapp": "0x81077C865C299ec402282622acc8Db002ecae2CA" - }, - "BSC Testnet-4": { - "off_ramp": "0xcAa1E252C8890B930cA4a167c7Ce7D57507Ca545", - "commit_store": "0x511Af6Dbf6cecf05e8DcF03Bc3D974B75f505D86", - "receiver_dapp": "0x8DD2E7060a419E96A68E77dF003e43bb943ea6Ac" - }, - "Optimism Goerli-4": { - "off_ramp": "0xa8Fa3E931ec2add3eb6b46956A602320dD149Ae9", - "commit_store": "0x72c986D0869eE271050350cA203680652901C671", - "receiver_dapp": "0x2e1463eBa48354fD908A3b939b8121677CDC00eC" - }, - "Sepolia Testnet-4": { - "off_ramp": "0x8A2A44a29711E7Ed4C0a6BEd710FB7Af00875c91", - "commit_store": "0x66dF432569e693190648fFC88AA5F75CC285Fa6f", - "receiver_dapp": "0x49043C6065BcE4331d34Ee6C69d16252B51Ff82A" - } - } + "src_contracts": {}, + "dest_contracts": {} }, "Optimism Goerli-1": { "is_mock_arm": true, "fee_token": "0xdc2CC710e42857672E7907CF474a69B63B93089f", "bridge_tokens": null, "bridge_tokens_pools": null, - "arm": "0x401ecB00c5b6Df3F529924B5170A6177A3AB1c45", - "router": "0xdAD60047E2Cbb315656F1757549F472EcFffAD54", - "price_registry": "0x2a79C673cE100dc24330580f2a564AeEf11Fc74f", + "arm": "0x77bf6b784308AbAEbBA9fbee75a71298c5221f59", + "router": "0x106F2ffD7FE5517Ede516704285Df6EB58eab079", + "price_registry": "0x457A974fdE3450CEC14fD1ff1175cFC8B08bb7a4", "wrapped_native": "0x4200000000000000000000000000000000000006", "src_contracts": { "Arbitrum Goerli-1": { - "on_ramp": "0xBe3115e346f3B0897D2bD97b58dd09800B1c9900", - "deployed_at": 14990570 + "on_ramp": "0xD134fA555922E4Aa004B0AcADdfd087808FDe270", + "deployed_at": 16118006 }, "Avalanche Fuji-1": { - "on_ramp": "0x31d5eCf30CA270e17337b99E1b21E9e828B8266d", - "deployed_at": 14990588 + "on_ramp": "0x9eED531051B5d118Deb7b3B07316Ed5c2C29327B", + "deployed_at": 16118008 }, "BSC Testnet-1": { - "on_ramp": "0xece424587F322fc32a89804f056d3fC49Ff7585A", - "deployed_at": 14990567 + "on_ramp": "0x7285F330Ba177ea3549DD380A3Feaf84aCB3b168", + "deployed_at": 16118010 }, "Base Goerli-1": { - "on_ramp": "0xc5458cAd4B7bE62B4b88dFE6d0657255A48eB3c2", - "deployed_at": 14990574 + "on_ramp": "0xB778a287107afCDdB09D161fc6c3E8c3E06914eb", + "deployed_at": 16119136 + }, + "Polygon Mumbai-1": { + "on_ramp": "0x62a8FeF63dA483A40481344F653A9D5444b26169", + "deployed_at": 16118011 }, "Sepolia Testnet-1": { - "on_ramp": "0x98ba15e487696AC814851208F8CAf8121f0E602C", - "deployed_at": 14990561 + "on_ramp": "0x665091087c06ef53fCa017Ba228460b0312fB8bC", + "deployed_at": 16118012 } }, "dest_contracts": { "Arbitrum Goerli-1": { - "off_ramp": "0x897e6855816eD892EF23C7765Cf08664788D4287", - "commit_store": "0x1c3D94Df656466cfc4C12D2775be4f46fc77b8C3", - "receiver_dapp": "0x944F059ca5eEF187daef3D8A8726340D428FDfC6" + "off_ramp": "0xd67d11267B422739C64b66F4d2df750040cdBe6f", + "commit_store": "0xC1B3d2BE51cE3403B508532c5DC5566D9f8aE6c1", + "receiver_dapp": "0x76B3b6b8D6e1D6446eb2758c4cbe61Dd281035DB" }, "Avalanche Fuji-1": { - "off_ramp": "0x005e9C8c57430e03385368f9696FAA1C42429127", - "commit_store": "0x588e7eBa8df2155F3895a07E49026AF736BE8A8F", - "receiver_dapp": "0xb7d71eB87412840178571E95b05B1703d99A81ED" + "off_ramp": "0x07cBee0977c30Da886FB4A6A4172BC41b7B06a23", + "commit_store": "0x5224F22F709502BA97E2508Cd2DdcAcff4366f25", + "receiver_dapp": "0x79624B7c19Eb37Eeabe08c7e7A3A0bd1a40c2EdC" }, "BSC Testnet-1": { - "off_ramp": "0x9a37aD66Bc04F19e8Aa28D2a42e8F374c1f84836", - "commit_store": "0x29316E9d9A4FBe3910664944958Ac5C336c0F5a9", - "receiver_dapp": "0x538e1EDD7De66248321713beC94fa3D9D0c15DB2" + "off_ramp": "0xa58DB5d5f9147CfF8979103Db1820ccfD6170a7E", + "commit_store": "0x6510681a46F122015Cf8FAcA62b765d71863CE7b", + "receiver_dapp": "0xcD6327cF88752aC4a1fDcD4740F23D8723879c83" }, "Base Goerli-1": { - "off_ramp": "0xFD0885391BA4A1Aa8E968f60d556D56D3a61077d", - "commit_store": "0x64E50D9af4407dAB94bE4cD37a458130e77477d7", - "receiver_dapp": "0xe9b14E195fDcEed8264Ce7a79F582964214D6F95" + "off_ramp": "0xbA7920cb2db638305a75b4d8923372A00ddd34d0", + "commit_store": "0x84FE4068672023046862819C193271DF8ca5F344", + "receiver_dapp": "0xc9Daf4b5e8666660aD440EF1a1f66d5E1F10A184" + }, + "Polygon Mumbai-1": { + "off_ramp": "0xe57Fb302c66827Ac73403440CFB6994559a6CcC4", + "commit_store": "0xF1fE58274b9c89aD2b256991526C84C90Ab0Fd31", + "receiver_dapp": "0xE2664FA356BA7fBf2CAc7D15aA94BA1d4aA17199" }, "Sepolia Testnet-1": { - "off_ramp": "0xbE015Db186383cd09b2170D169E7dF9694a447F9", - "commit_store": "0x1d2C8acF53d98014beEca677103Be065c8b47Bbc", - "receiver_dapp": "0x9ef068D31f93325623E9cfE9756A58405401a653" + "off_ramp": "0x5530A11Ddb4053A7e5a55F00ba553D58b599e287", + "commit_store": "0x1A63Fb4224E72BE3cbE1182549e58D566dE05E1e", + "receiver_dapp": "0xBFF34Eed83c62a2CFa427dA3d4E9d33166c03F2b" } } }, @@ -1365,691 +1302,410 @@ "fee_token": "0xdc2CC710e42857672E7907CF474a69B63B93089f", "bridge_tokens": [], "bridge_tokens_pools": [], - "arm": "0x748f62a1C919DE20aE6CDECCC8A16519F828029f", - "router": "0x5FD5c71a5A3fB741B8d002C431F2b1B54676E513", - "price_registry": "0x30cD10363Be70109FBA90594DF35F18eFd78C8b9", + "arm": "0xb2BDC15AF974EdD65813C5d508F60E625fDDC7F6", + "router": "0x8f43c9B0FBC73296F2424Ba44615Dff9d41A680C", + "price_registry": "0x121F2CBDa72d73502d7a896CA10b2650e45dd83D", "wrapped_native": "0x4200000000000000000000000000000000000006", "src_contracts": { "Arbitrum Goerli-2": { - "on_ramp": "0x39902524F192C9ACe6B3C1a8b7be66842C4EA92A", - "deployed_at": 14990571 + "on_ramp": "0xFF8fe868F57F19314B12F29f524718481912A9F5", + "deployed_at": 16118007 }, "Avalanche Fuji-2": { - "on_ramp": "0xeEE91056b7344534134b2511665590Ec8aA4A8EF", - "deployed_at": 14990588 + "on_ramp": "0x6842143b9D1d2B98e6be983624F2C39742113eeE", + "deployed_at": 16118007 }, "BSC Testnet-2": { - "on_ramp": "0xD2De582855d3Eec43aD612A3faFBe322C263427C", - "deployed_at": 14990564 + "on_ramp": "0xf3Fda996cFA9341F21A7fD2BFE097856a467E8fa", + "deployed_at": 16118010 }, "Base Goerli-2": { - "on_ramp": "0xBce34b1dba66f9E6aBe260D0Eeb3F501837efab4", - "deployed_at": 14990576 + "on_ramp": "0x26a35eA06dcD09Fa1e3A81903228eE9Eb5aea136", + "deployed_at": 16119137 + }, + "Polygon Mumbai-2": { + "on_ramp": "0xA517b41046071e628182fdCE6d2924f1aeb3a303", + "deployed_at": 16118012 }, "Sepolia Testnet-2": { - "on_ramp": "0x4b318890a8Dd9E15F1905cEB141044Ce5D9df985", - "deployed_at": 14990561 + "on_ramp": "0x0Fdcc0e7132854d6E918557a929F8c871740695A", + "deployed_at": 16118014 } }, "dest_contracts": { "Arbitrum Goerli-2": { - "off_ramp": "0x306CB37D07461e4efCB064dA6e60b4D9fa85A256", - "commit_store": "0x2D204A86c42329f40f3b5B4c4a0D67E704E052d0", - "receiver_dapp": "0xE736Ed75089e1a3e04bBaCA11893A76fb0A57BB1" + "off_ramp": "0x55c9F0EC7030Bf952407075294aa4c90a1565455", + "commit_store": "0x9360C79929E78Ab707495C4d6074273b7a5849e3", + "receiver_dapp": "0x3F692b26f22f6b5450B29a2644377D5c9afd9961" }, "Avalanche Fuji-2": { - "off_ramp": "0xF8694639B5F148C06833a1DF4251D3965DF275af", - "commit_store": "0x5d9B554E8Dd3B4899b4841DFbe11EA55fF49cC8A", - "receiver_dapp": "0xaA1F2Aa8Ac8B9266316879C5859cABac91218250" + "off_ramp": "0x4f19B309d563558C198a596CFb195ff4a61581D9", + "commit_store": "0xAd4dDB9889d08377841B3943B05a428c89A8d959", + "receiver_dapp": "0xdC94fCfA7974F956fDb43617af14fd314BEb9BA5" }, "BSC Testnet-2": { - "off_ramp": "0x86d7f150D8263B571F44CBf5879418Cc5F6587c6", - "commit_store": "0x2a17B31b07db58EA9e19b7d2e0a8A359a7591674", - "receiver_dapp": "0xF2E35f4802F760481BeB0c366673D932618bFEB6" + "off_ramp": "0x5eE39a902d39EE0ca99999C779dF41Cbdf83243F", + "commit_store": "0xb4a1C4A6de3BDaF18CF8bE2cD83756e213e7A266", + "receiver_dapp": "0x89D0ACD21aCa8aD4aa27417FBBb5E7AD835517bc" }, "Base Goerli-2": { - "off_ramp": "0xCe8A903dE11ddc103D1A6cf2C5c021872e5AaeFB", - "commit_store": "0x1925bca238d975e916AE3f9984Ab2759F2aDd4cF", - "receiver_dapp": "0x3277A065FC72A7c0E3fffCDD7512827556777eb6" + "off_ramp": "0x5Db263f1EE3b3905b2d56Ef4D15481f37D01DD9c", + "commit_store": "0x08bbD2208df3F3b4b3D0e0719048090E1C8EeC90", + "receiver_dapp": "0xeC820655f73151CdFe8409759Db0fc5acE21d6dd" + }, + "Polygon Mumbai-2": { + "off_ramp": "0x1Bc568Fc4e1f0e2fF554886f570B30D4b8Ee707C", + "commit_store": "0x1bBbbDE96eD6825CdB1CCE82da1Da1F7709aA4fe", + "receiver_dapp": "0xE603ECe719D459e9e0B6EBd09fec8EbF1CfD2B40" }, "Sepolia Testnet-2": { - "off_ramp": "0x7CFD61cf92bB819DE715B1Cd4D1B4fb1bd0FB17D", - "commit_store": "0xfe88eEdEe1e20d239Fcb9851A0c850274E53371F", - "receiver_dapp": "0x471686D9713a4C0F11f623fE935A22f397949102" + "off_ramp": "0xb8FdAc8dE3A11ba84Ff600D7c5C8996645341fd6", + "commit_store": "0x64D8CeA5F389887b6E882d8169d47687a1867E2f", + "receiver_dapp": "0x39B57064FAD9Dd07cBAc8002Ec5547942Eba1720" } } }, "Optimism Goerli-3": { "is_mock_arm": true, "fee_token": "0xdc2CC710e42857672E7907CF474a69B63B93089f", - "bridge_tokens": null, - "bridge_tokens_pools": null, - "arm": "0x748f62a1C919DE20aE6CDECCC8A16519F828029f", - "router": "0x96Ea2127F0B6BE0Ccf34aF85Dcba49dAB2c1b6c6", - "price_registry": "0x30cD10363Be70109FBA90594DF35F18eFd78C8b9", + "bridge_tokens": [], + "bridge_tokens_pools": [], + "arm": "0xb2BDC15AF974EdD65813C5d508F60E625fDDC7F6", + "router": "", + "price_registry": "0x121F2CBDa72d73502d7a896CA10b2650e45dd83D", "wrapped_native": "0x4200000000000000000000000000000000000006", - "src_contracts": { - "Arbitrum Goerli-3": { - "on_ramp": "0xc908846e83521CD0a37b89413Ca36d618eaD7a67", - "deployed_at": 15131856 - }, - "Avalanche Fuji-3": { - "on_ramp": "0x3701f6fa77914696CD83B77324A68601b85b547f", - "deployed_at": 15131854 - }, - "BSC Testnet-3": { - "on_ramp": "0xB7B4d6F6b96c541417838C76F759286fcc9337c2", - "deployed_at": 15131858 - }, - "Base Goerli-3": { - "on_ramp": "0xA3212F7e6a221daaAaA35bFF0d5BB456357B280B", - "deployed_at": 15131856 - }, - "Sepolia Testnet-3": { - "on_ramp": "0xC556cA1fAc9E00043bAC2Ece9593f176f8255A06", - "deployed_at": 15131866 - } - }, - "dest_contracts": { - "Arbitrum Goerli-3": { - "off_ramp": "0xcAa1E252C8890B930cA4a167c7Ce7D57507Ca545", - "commit_store": "0x17478F43dA12C925719Ea344592Eed1bBE0A1787", - "receiver_dapp": "0x5B095cDD702accd8Faa2130c2b6f533A28F363c3" - }, - "Avalanche Fuji-3": { - "off_ramp": "0xD206E643420BAbb3Aa1aaE29eb885EF04200928d", - "commit_store": "0x998Af278888C2d6E1AF8dB2D9809dACF6bE89AaD", - "receiver_dapp": "0xAe3408aC4C8a4a1270234C6Ca9D1051aEb4b0711" - }, - "BSC Testnet-3": { - "off_ramp": "0x8DD2E7060a419E96A68E77dF003e43bb943ea6Ac", - "commit_store": "0x0A3925586d28a8bA1AF6Db338cd432feC59c7287", - "receiver_dapp": "0xA7e019CBc9f3430bbB0F05c569797fbea91efC20" - }, - "Base Goerli-3": { - "off_ramp": "0x7D8a404D4dc926237b5F310e72b1EE8fA3701E12", - "commit_store": "0x819136C2C9681d22351F906D1f103f5b8B386315", - "receiver_dapp": "0x7075eAFeE0B814B4eb6aaD9E1eFD6B86D3020F12" - }, - "Sepolia Testnet-3": { - "off_ramp": "0x49043C6065BcE4331d34Ee6C69d16252B51Ff82A", - "commit_store": "0x66dF432569e693190648fFC88AA5F75CC285Fa6f", - "receiver_dapp": "0xdD24d7579f364290b680E22b75300AAce638E9ee" - } - } + "src_contracts": {}, + "dest_contracts": {} }, "Optimism Goerli-4": { "is_mock_arm": true, "fee_token": "0xdc2CC710e42857672E7907CF474a69B63B93089f", - "bridge_tokens": null, - "bridge_tokens_pools": null, - "arm": "0x748f62a1C919DE20aE6CDECCC8A16519F828029f", - "router": "0x6572e9D22E3Be33069233616B1C9CbA9FDDfDD00", - "price_registry": "0x30cD10363Be70109FBA90594DF35F18eFd78C8b9", + "bridge_tokens": [], + "bridge_tokens_pools": [], + "arm": "0xb2BDC15AF974EdD65813C5d508F60E625fDDC7F6", + "router": "", + "price_registry": "0x121F2CBDa72d73502d7a896CA10b2650e45dd83D", "wrapped_native": "0x4200000000000000000000000000000000000006", - "src_contracts": { - "Arbitrum Goerli-4": { - "on_ramp": "0x2df7D687d02cF6Cc610E9E888Cb84db2490e26D3", - "deployed_at": 15131856 - }, - "Avalanche Fuji-4": { - "on_ramp": "0xc525cF7788f58DBA3A397587Ce737b8876cbD841", - "deployed_at": 15131855 - }, - "BSC Testnet-4": { - "on_ramp": "0x096Ad364c84746F23686154AE97BcAe520a84CDF", - "deployed_at": 15131857 - }, - "Base Goerli-4": { - "on_ramp": "0x7B3363AD3b1711376179A38efA45e3E043C40cB5", - "deployed_at": 15131857 - }, - "Sepolia Testnet-4": { - "on_ramp": "0xE0eba23f2cC06027e909efDecED8E2De476EA97D", - "deployed_at": 15131867 - } - }, - "dest_contracts": { - "Arbitrum Goerli-4": { - "off_ramp": "0x386aD221EB041290e5927d3d2d980d4A36111D19", - "commit_store": "0x81077C865C299ec402282622acc8Db002ecae2CA", - "receiver_dapp": "0xb7deDF359A5bCdD109E8Fa822D7D7E318FEC241f" - }, - "Avalanche Fuji-4": { - "off_ramp": "0xa8Fa3E931ec2add3eb6b46956A602320dD149Ae9", - "commit_store": "0x3117F05A37389aA4f2DA622C37f690A7f908DEB8", - "receiver_dapp": "0xCDD62679E7D01fB746E17Eb1eb541aC84A3Ec2Db" - }, - "BSC Testnet-4": { - "off_ramp": "0x68a8E8e4cCe6DEf522E15f34E45449F550684981", - "commit_store": "0x946BDEa21453b53E46CEeC0e0925D44Cd6E8C304", - "receiver_dapp": "0x7f1Fce567c78FE4b35cBbB074A4E25e10d82dee6" - }, - "Base Goerli-4": { - "off_ramp": "0x694b0d85D7fF83B7e5d06116DdC0D1bb026Be019", - "commit_store": "0xcCE09B797509bcC74A2526F7F549f71B568f4887", - "receiver_dapp": "0x4a0fE04874e4Cf3a374C0C33cbfc5106069bAAd6" - }, - "Sepolia Testnet-4": { - "off_ramp": "0xf33458F121A5cff13cC124750b3BfFCb34D56102", - "commit_store": "0x56C2D2DeE8A7d912D56111e25b696E9398D2361D", - "receiver_dapp": "0xbD4A5BFcBC9eF701330ABd94c20f492f047C421c" - } - } + "src_contracts": {}, + "dest_contracts": {} }, - "Sepolia Testnet-1": { + "Polygon Mumbai-1": { "is_mock_arm": true, - "fee_token": "0x779877A7B0D9E8603169DdbD7836e478b4624789", + "fee_token": "0x326C977E6efc84E512bB9C30f76E30c160eD06FB", "bridge_tokens": [], "bridge_tokens_pools": [], - "arm": "0x95168889CD6f182A966B99A3Ada4f08E3eCeA9EB", - "router": "0x717905F34933175A04a6E8f6e0d0B47264Fdb736", - "price_registry": "0xd2c25A23db2496aFFeB221d31B5C81A2B0Ae3E74", - "wrapped_native": "0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534", + "arm": "0x8C03ec36b26B4c84cdF206163742775929F7E2A7", + "router": "0xD81CB475a9DC24b02D446aaedd6e2415D1443794", + "price_registry": "0xAfab88c501E09167fBD69dC7Ee26C769A098E088", + "wrapped_native": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", "src_contracts": { "Arbitrum Goerli-1": { - "on_ramp": "0xA734E75d9606b132869fAc8051Ab932076EA8cEB", - "deployed_at": 4342317 + "on_ramp": "0x8343b3270afa7b602D08b94e50C27d89C4fFE5BF", + "deployed_at": 41361322 }, "Avalanche Fuji-1": { - "on_ramp": "0xb8B2f66b082A614D40aB389C722F19478e73D08E", - "deployed_at": 4342320 + "on_ramp": "0x7FA0FF9b422EB13FB4F11012cC7A448c061f2374", + "deployed_at": 41361323 }, "BSC Testnet-1": { - "on_ramp": "0xD24dF9c44e2CfB2574Bc1fbBFF6eC1C7F4404361", - "deployed_at": 4342315 + "on_ramp": "0xA88e3247f458A58FFfe54E579a7eeCDC5DD5a5CA", + "deployed_at": 41361323 }, "Base Goerli-1": { - "on_ramp": "0xE1d7bb1e140Ba486538A868490f11A9Fe0C7AD88", - "deployed_at": 4342319 + "on_ramp": "0x173bD58563ea2bE2B0FA4f474A215702B4B2A17F", + "deployed_at": 41362382 }, "Optimism Goerli-1": { - "on_ramp": "0xDF86A952fb23A8EC9fb71f031bB1655D81aEfCC2", - "deployed_at": 4342319 + "on_ramp": "0x1C1bE776240A7B8b1DDA62981E84d78a476FB6c2", + "deployed_at": 41361324 + }, + "Sepolia Testnet-1": { + "on_ramp": "0xB86d1f45F64c996709154F76c2E576355db6faEB", + "deployed_at": 41361324 } }, "dest_contracts": { "Arbitrum Goerli-1": { - "off_ramp": "0x40039A61389d23F0F106F2921d774e971Ae2FE67", - "commit_store": "0x1f61cD1DE08e8c2038C4155C439eb5E2315e277e", - "receiver_dapp": "0xEd5843922C15fB8750366ec2e246c97d45B5e491" + "off_ramp": "0xB27Cc3Bb913e2d1de1D39976Ca93542Ab420Cb4F", + "commit_store": "0xd050Fab5403F1431ee9250F749Bb15D1085FF0F5", + "receiver_dapp": "0x630560CA9347C25fF62A3DD0b0A62Afba7498673" }, "Avalanche Fuji-1": { - "off_ramp": "0xe89A9727b05977a31D4A77EBa45275c14c06ffBC", - "commit_store": "0x3234a127c345653b85D3258A12b568aB56D106e4", - "receiver_dapp": "0xC7BeC5f164cE19e056C718A14411Bc2a3BEE0D18" + "off_ramp": "0xa78E87cCa899fc66086655e00942C4e14dE9D942", + "commit_store": "0xe78Aa91EEb3CBedd77da69FbC099b9a6E66347b5", + "receiver_dapp": "0xB5dCFF78201703e4618f5921d6C1cde7031edC59" }, "BSC Testnet-1": { - "off_ramp": "0x1c40a3667ca69dAA8e01B9fC52C54ad4313214Da", - "commit_store": "0xE48986ceC47743c7D60Fae2955083f16A95d3BEe", - "receiver_dapp": "0xC729A4AC7320531b27DdA703890E7C2CB130DaC9" + "off_ramp": "0x975Ba33ef1Cd950aBF09A313045fe363dfbFeeFd", + "commit_store": "0x45E7361248457E9A46c97c1CE58d44bA42422945", + "receiver_dapp": "0x6Af7412f5F5Aec29d44321014de6919bC382C673" }, "Base Goerli-1": { - "off_ramp": "0x2447be412EE66921791f870a5789CfE99906CE4d", - "commit_store": "0x0E2223248C3867d897fa368b69063F98A62369AC", - "receiver_dapp": "0xd1C95B8fcd4577F47De04f3C729A12F1fA7858a9" + "off_ramp": "0xD39A904Ca66c4C0C07C20f9E184E3559f63451eA", + "commit_store": "0xD26B54fCE0cEFE6956da8a538cB61d0867E5141a", + "receiver_dapp": "0x2728b518391C9ae0173F9f77aaCBC71eed14F48e" }, "Optimism Goerli-1": { - "off_ramp": "0x97604ab0E0E78acEE9F6f6181155CE7Cd7317d97", - "commit_store": "0xaDEbBa34FaEc7261B4f836d4Ff744ccb64AbA525", - "receiver_dapp": "0x4B298437afbE102009ce5eC875E325A0aac2380e" + "off_ramp": "0xaE43B5e341212c741e110EcAA52a538Cf0A1FA41", + "commit_store": "0x81918D94908b0B326911B9D6001C6394ADAD6985", + "receiver_dapp": "0x4B6f3987e778AAC1b9aCDa7A5F2fa3754E011241" + }, + "Sepolia Testnet-1": { + "off_ramp": "0xc93d436312da3f89Df05436fe670FB82d5338383", + "commit_store": "0x04363843255e56f6f0848c0a5Fe45Af08d676b77", + "receiver_dapp": "0x1f9c623320fa9e5FE487C62c95723854497C6046" } } }, - "Sepolia Testnet-2": { + "Polygon Mumbai-2": { "is_mock_arm": true, - "fee_token": "0x779877A7B0D9E8603169DdbD7836e478b4624789", - "bridge_tokens": [], - "bridge_tokens_pools": [], - "arm": "0x891847805D3D6766Ad515Abf9db986B8Aa147BB6", - "router": "0x27D9AB095E183A2D6e93242C44ea3503762a6114", - "price_registry": "0x779d3Dbc779BdF7ce35B0CF11438A7246831e41C", - "wrapped_native": "0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534", + "fee_token": "0x326C977E6efc84E512bB9C30f76E30c160eD06FB", + "bridge_tokens": null, + "bridge_tokens_pools": null, + "arm": "0xDC88BcE99f0C1A997010953e83BC9380ec9aDa8F", + "router": "0xb45b5035703b703c1cFAf21bE496FA05695582A3", + "price_registry": "0x569CaE44B4C2B94dB796032119440e85e229DDbF", + "wrapped_native": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", "src_contracts": { "Arbitrum Goerli-2": { - "on_ramp": "0x3277AD6B84418a04d2E89528e4faEB698b12Aa00", - "deployed_at": 4342317 + "on_ramp": "0x2743dd6Dd9203fb31FD4f9a2d73b1D72A9548a62", + "deployed_at": 41361322 }, "Avalanche Fuji-2": { - "on_ramp": "0x34d550380b89AB801bc59f31a1F99FA094FCF646", - "deployed_at": 4342320 + "on_ramp": "0x7c10D039C3E4355E176ebEE79c9c623A09aF4dAB", + "deployed_at": 41361323 }, "BSC Testnet-2": { - "on_ramp": "0x1cc7dee6B786b7e0027Bf87AB0a2AD9c1C39427a", - "deployed_at": 4342315 + "on_ramp": "0x9c88C23c54503cE15B94f9BF4E098E1336B2A682", + "deployed_at": 41361323 }, "Base Goerli-2": { - "on_ramp": "0x9b8fae26099b96AF3DB194f42ca4C543dfa8E21C", - "deployed_at": 4342319 + "on_ramp": "0x1D3Fa0a6491685F54eDd8946d09e55011C2226ef", + "deployed_at": 41362382 }, "Optimism Goerli-2": { - "on_ramp": "0x15D1a152912A8A871fE036A05668439a87158c52", - "deployed_at": 4342319 + "on_ramp": "0xfAB1f948108B2782F82F49eAe80bc37fCCFf2864", + "deployed_at": 41361324 + }, + "Sepolia Testnet-2": { + "on_ramp": "0xA038a3E04630F40718C5d994B089C2DDAfc1CbAf", + "deployed_at": 41361324 } }, "dest_contracts": { "Arbitrum Goerli-2": { - "off_ramp": "0x3279489f87bF670E295013C073eEF5B5894ed653", - "commit_store": "0xfFb508760Db8e868C60dF489FE589c8Af36d4631", - "receiver_dapp": "0x20e84934de0cCD3654ceB67E9F698FC40a8c6E2D" + "off_ramp": "0x0755dacD8DCf33F96c1Cc103223Db0f1EBA41286", + "commit_store": "0xc51dbeeBA5e9fE298BaF513Dd011E3A7fec17F03", + "receiver_dapp": "0x4F26D3aAbb3df8cc6D36639C32e72C344E628BdE" }, "Avalanche Fuji-2": { - "off_ramp": "0x3C794C8EeEC4B2932297d9B7022ae57e2C25Fa32", - "commit_store": "0xc9Ce379B24E607f9E652Bf3C1Fe435e13FBFa726", - "receiver_dapp": "0xD7d3945aaEa87eE9b02964BD895a101A3d5d9770" + "off_ramp": "0x0B306f896ED7ffe18cc0a7D0211E4E690036A696", + "commit_store": "0x31f092B17e17c5fc389b6B45d3dc765c1fb15E25", + "receiver_dapp": "0x8755a6603283c5C7038709Bd204417A302945e30" }, "BSC Testnet-2": { - "off_ramp": "0xF711517BD8aB1dA0e4bbB2861ABBE24db81367E2", - "commit_store": "0xd847D679F2882DC71cA8bAb4A5259594ec8cC9Ba", - "receiver_dapp": "0x7Ab8Abb8Ed09B8252FBCcE4D62336B331dF6d46A" + "off_ramp": "0x7f8A310fDec550D1D42C3F3745CeDD96Cb0f72Dd", + "commit_store": "0x15AF4DBe71BBBe2EEA2C53EDc6f3a6c230EA65ad", + "receiver_dapp": "0x59E28B6cad534CCA0Fa95423d51d0014830d3786" }, "Base Goerli-2": { - "off_ramp": "0xdDEe6624F2c8d779BFaCEa99eedF22897807F69E", - "commit_store": "0xc8beD93bEFD7Ea2D3914D04bAc5DAe312B90EF36", - "receiver_dapp": "0xE2A183438161E4971BCf0DDD9FBC40A08984B1B6" + "off_ramp": "0x24D0f36577d99ecfC87d99De9bBcD4a01eBDe467", + "commit_store": "0x8DA290d47D4aEe097B0cAF00C93F22529B56ea88", + "receiver_dapp": "0x22C6789CFA2261998019Db1575Be2FC5A4C75274" }, "Optimism Goerli-2": { - "off_ramp": "0x2E078df006f58E67B4f2eb428e77357EB960a2FD", - "commit_store": "0x0c60F5E60feeDa71b14C11f22DC3AcC073A14d0F", - "receiver_dapp": "0xfFF1d7e2742C385cC16f2835a217f76Cf697A815" + "off_ramp": "0x1a9C9b9bf6d33B1207035906CC7bdA0aB6102Bb0", + "commit_store": "0x0F5E5b478cB1667414bEb90D74d21E96dD4d3994", + "receiver_dapp": "0xDb4841b12F1f9C4Ac14080670F2dC97b86C47fca" + }, + "Sepolia Testnet-2": { + "off_ramp": "0x4d80a0CbCd6eA0c95c8C58c71995cF3B0432FefF", + "commit_store": "0xC3582e6d2f1CF1439f1BBD65794061078b6d3ce1", + "receiver_dapp": "0xa95a0798dea3380b1E22fefCAa85997e50a08800" } } }, - "Sepolia Testnet-3": { + "Polygon Mumbai-3": { "is_mock_arm": true, - "fee_token": "0x779877A7B0D9E8603169DdbD7836e478b4624789", - "bridge_tokens": [], - "bridge_tokens_pools": [], - "arm": "0x891847805D3D6766Ad515Abf9db986B8Aa147BB6", - "router": "0xdE5B3FB30B002624197460Fd7F829e8DF8A407A6", - "price_registry": "0x779d3Dbc779BdF7ce35B0CF11438A7246831e41C", - "wrapped_native": "0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534", - "src_contracts": { - "Arbitrum Goerli-3": { - "on_ramp": "0x306f3448fC771f21B83ebb8C19E2387438216982", - "deployed_at": 4364802 - }, - "Avalanche Fuji-3": { - "on_ramp": "0x29C0cfF96B7A9871A6Feb40f7D5362AdeE43bd75", - "deployed_at": 4364802 - }, - "BSC Testnet-3": { - "on_ramp": "0x09cfd48fe21197A194a91FEd0edB81E1521C6c28", - "deployed_at": 4364804 - }, - "Base Goerli-3": { - "on_ramp": "0xEDC008585162F73018f14b24CaCfaBC03D4A70B4", - "deployed_at": 4364802 - }, - "Optimism Goerli-3": { - "on_ramp": "0xB2b7feADe8B400A194401DBc6A9821C8c11c5A62", - "deployed_at": 4364804 - } - }, - "dest_contracts": { - "Arbitrum Goerli-3": { - "off_ramp": "0x2E6069Ea9f661679D9E7d517eD3f3819c4012F00", - "commit_store": "0x7A45CE4452135Ce2D1F616d954BA6698eDb039F5", - "receiver_dapp": "0x6cD97c1b9A767c4c70E398a0530BEf079dCdfdA7" - }, - "Avalanche Fuji-3": { - "off_ramp": "0x71e31277e63AB37Ea32485cc0661B9A24f2f0eF2", - "commit_store": "0xD4324D3A34DE013F0DEA7B8EAca0eDB8325059fa", - "receiver_dapp": "0xBe5A4C5E279AA821630fED8f8AfC5e1132AcFBFf" - }, - "BSC Testnet-3": { - "off_ramp": "0xdeA3E7c1c63DaeA250118022812AD54Cf43c4C74", - "commit_store": "0x858634290B379f7DEa715E01af913771799B8D59", - "receiver_dapp": "0x896327FE054F749709Cf1Bf6018F32DD79fC23c8" - }, - "Base Goerli-3": { - "off_ramp": "0x631b4b0082694FfB3707657B8baE657c699750F4", - "commit_store": "0xaf0353EB9bD6Bf238e25518A9178FB07e70b9f16", - "receiver_dapp": "0xb9ccbC18085FCF559ec903753FAe4c55Ad34a16f" - }, - "Optimism Goerli-3": { - "off_ramp": "0x55eA8fcceC40318Dcebf3990b5FC13e1FBAA6304", - "commit_store": "0x277f3c1e074c2a5e2D6970d641688Ed9b112ACCB", - "receiver_dapp": "0xF0b1EF332840D28540C5F71EF1dE120334431f23" - } - } + "fee_token": "0x326C977E6efc84E512bB9C30f76E30c160eD06FB", + "bridge_tokens": null, + "bridge_tokens_pools": null, + "arm": "0xDC88BcE99f0C1A997010953e83BC9380ec9aDa8F", + "router": "", + "price_registry": "0x569CaE44B4C2B94dB796032119440e85e229DDbF", + "wrapped_native": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", + "src_contracts": {}, + "dest_contracts": {} }, - "Sepolia Testnet-4": { + "Polygon Mumbai-4": { "is_mock_arm": true, - "fee_token": "0x779877A7B0D9E8603169DdbD7836e478b4624789", - "bridge_tokens": [], - "bridge_tokens_pools": [], - "arm": "0x891847805D3D6766Ad515Abf9db986B8Aa147BB6", - "router": "0xe146F928fDE54CE8b96d5A9C3E4cDeFf22604C3F", - "price_registry": "0x779d3Dbc779BdF7ce35B0CF11438A7246831e41C", - "wrapped_native": "0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534", - "src_contracts": { - "Arbitrum Goerli-4": { - "on_ramp": "0xEc73b46b8c4a39b485BAc945ef146F52963dF04B", - "deployed_at": 4364802 - }, - "Avalanche Fuji-4": { - "on_ramp": "0x2612dCe78304f09a7576d1bc833b5FBaAce0f445", - "deployed_at": 4364802 - }, - "BSC Testnet-4": { - "on_ramp": "0x0620a23882EF5814c4DB64F594B4771B30D389fa", - "deployed_at": 4364804 - }, - "Base Goerli-4": { - "on_ramp": "0xBd80016871eb751Be17cEf838D06277994473aeA", - "deployed_at": 4364802 - }, - "Optimism Goerli-4": { - "on_ramp": "0xE6B5339B871A44a8F605Bf71D724C8C3096F5518", - "deployed_at": 4364804 - } - }, - "dest_contracts": { - "Arbitrum Goerli-4": { - "off_ramp": "0xedFf27E460d0c429e3241dD818F4468B573E5D8d", - "commit_store": "0x6A71C9dB1503d7A74eB3c067487dE3487F6f82F4", - "receiver_dapp": "0x7Bd2A6797C8F5827A298Ce3f6851b4428AD97C32" - }, - "Avalanche Fuji-4": { - "off_ramp": "0xab45c01C95f03Cd97bcF5F36eEC533FC55B3a217", - "commit_store": "0x3504a8fC66ad9b76bd54219f07B181420434A62e", - "receiver_dapp": "0x24be9D55cb096d98cC13e365B17F1801089564bf" - }, - "BSC Testnet-4": { - "off_ramp": "0xdF79fCF6EC7eD9dAD20b210cc66449B37BBcA4fa", - "commit_store": "0x382dCbEab06a3bA37032cc8e61E2D991A972c93E", - "receiver_dapp": "0xF49998a4B07Ba4d1CdDA62dC21D2C38B162d749a" - }, - "Base Goerli-4": { - "off_ramp": "0xa33675eFa1f0fA709e3b36fDd3f950dA371Dc3f1", - "commit_store": "0x016C22764c861d754DaDDfE16918237BE6197a3A", - "receiver_dapp": "0xE0741da33e9cc8b47d1E0c006880aA808A8F5793" - }, - "Optimism Goerli-4": { - "off_ramp": "0x65C54F096Fe992Eb1c24f66F9cdc484D8B3bE1D4", - "commit_store": "0xE3713d1a73B7d9ea5a21F1A11DE670119fcF6e01", - "receiver_dapp": "0x007D13935235A139Ae3c3372ABBF61f9Fe2eb823" - } - } + "fee_token": "0x326C977E6efc84E512bB9C30f76E30c160eD06FB", + "bridge_tokens": null, + "bridge_tokens_pools": null, + "arm": "0xDC88BcE99f0C1A997010953e83BC9380ec9aDa8F", + "router": "", + "price_registry": "0x569CaE44B4C2B94dB796032119440e85e229DDbF", + "wrapped_native": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", + "src_contracts": {}, + "dest_contracts": {} }, - "Avalanche Fuji-1": { + "Sepolia Testnet-1": { "is_mock_arm": true, - "fee_token": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846", + "fee_token": "0x779877A7B0D9E8603169DdbD7836e478b4624789", "bridge_tokens": [], "bridge_tokens_pools": [], - "arm": "0x033b274504d63757E0f2Dc97396c903Ce703Df68", - "router": "0xA464A0843a6e127b1913731007A0D56390BC3aA0", - "price_registry": "0xCaFBfaB3fBCA6B577ec1Ccc38105451BD5DaE034", - "wrapped_native": "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", + "arm": "0x1069E81DB4F9Db931594360E7305C947814bbB2e", + "router": "0x143B0B516F243387B17aFFE6E0e34376A935c545", + "price_registry": "0x18f98D54107438091b1e254d77744015CEf622C6", + "wrapped_native": "0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534", "src_contracts": { "Arbitrum Goerli-1": { - "on_ramp": "0x9b1E98a9A494e835CBd194D468f058de25722C36", - "deployed_at": 26098412 + "on_ramp": "0x39bf0819517A4F7Ed9e29454a625121Ff7b97709", + "deployed_at": 4515765 + }, + "Avalanche Fuji-1": { + "on_ramp": "0xc348D13c61B81Df5D990a1aa7d044F5505FDea15", + "deployed_at": 4515765 }, "BSC Testnet-1": { - "on_ramp": "0x317459077b0871253C8D3323Efc1e2942BBC755f", - "deployed_at": 26098402 + "on_ramp": "0x06A7DDCf253643574e3dF8ed415B248d14c104c1", + "deployed_at": 4515765 }, "Base Goerli-1": { - "on_ramp": "0x532575b6632A87238FFc35F668ec43594D088BB3", - "deployed_at": 26098412 + "on_ramp": "0x87bb499F0Ee6EC8282665bA4a2B84117D88386B7", + "deployed_at": 4515929 }, "Optimism Goerli-1": { - "on_ramp": "0x8EB1B2116F43b8E43C14179c5069093F40110700", - "deployed_at": 26098420 + "on_ramp": "0xF91Af2Bc6451228488921de3c2f703e8F3c4556E", + "deployed_at": 4515765 }, - "Sepolia Testnet-1": { - "on_ramp": "0x090776f7E99716fe87dEe2B75473e3197BCA15cB", - "deployed_at": 26098397 + "Polygon Mumbai-1": { + "on_ramp": "0x209b2b4f7facF8E9e53c370a78cD8A266606e0B3", + "deployed_at": 4515765 } }, "dest_contracts": { "Arbitrum Goerli-1": { - "off_ramp": "0x931ebD0096764fDCAF4D88E2847AaB34EA957fA6", - "commit_store": "0x20258DAAC29Dc66eC1e3CF5856C961876471B153", - "receiver_dapp": "0x2e18750B97519F5e1b3d13ea6c9ee56911472540" + "off_ramp": "0x1Cce271a9387077B389710c182749C51C971d002", + "commit_store": "0x3FEE5025BD824bD8481247FcceCd652948abe581", + "receiver_dapp": "0x03644c622F88F2fCfa0AEB0F337F2B0BE39F532d" + }, + "Avalanche Fuji-1": { + "off_ramp": "0x5aA01Bfbe5dB3070A9096e4979004427e2c31E0D", + "commit_store": "0x7aDf96C1bC4fab43D96c47fa9f22422b46477016", + "receiver_dapp": "0xe2a764BAbBF3CB99786a578b68A6de322d7330aC" }, "BSC Testnet-1": { - "off_ramp": "0x5Bf10fb982f0C05E4b10f3fAbC79d5211cB87bC0", - "commit_store": "0x7433A952954F2e83feb0d4396434D1416032999a", - "receiver_dapp": "0xaE50729bc32c250fc2730F70aECCB22beEa8d986" + "off_ramp": "0xBd027F5e4790aB8101A7dA13B495414feBc0a062", + "commit_store": "0x8B1BB3f2E0888943A22CB6C555CAF65DC9b14848", + "receiver_dapp": "0x062F615997BCAD26AcB2D465f131b5B54aB3032E" }, "Base Goerli-1": { - "off_ramp": "0x1b574a8E19BB8E1A307f47c2cdA3Bf6f944dB648", - "commit_store": "0x929Dd22fA4695266302D69475086e43131FF829f", - "receiver_dapp": "0xbCB97BF9390ce3826C872D8C887d8080aA91Cd10" + "off_ramp": "0x34DD788777615bBab82B0deFa37B004910e50B63", + "commit_store": "0x9092501130B1De7918c3D39e2F93B748aF9f72f3", + "receiver_dapp": "0x9B32BcbD7cEa52c1dBeDAB817ed5d23A369FBE80" }, "Optimism Goerli-1": { - "off_ramp": "0x2a79C673cE100dc24330580f2a564AeEf11Fc74f", - "commit_store": "0x65D539aeAEb0D5164E78F056C8c5dA354fb3ee70", - "receiver_dapp": "0x4b318890a8Dd9E15F1905cEB141044Ce5D9df985" + "off_ramp": "0x59C8c7CF51B0bF3dDbFB83a7b4abE564c7a52373", + "commit_store": "0x3388D2c3A68cDe70e072F0ABDa2656A7a04b98F2", + "receiver_dapp": "0xfFD4938A5ED2a0bc298d79992100F2E7EF383A9c" }, - "Sepolia Testnet-1": { - "off_ramp": "0xbcfa9cA055f281A2e57240a1eb938f247490a9A9", - "commit_store": "0xD2De582855d3Eec43aD612A3faFBe322C263427C", - "receiver_dapp": "0x2D204A86c42329f40f3b5B4c4a0D67E704E052d0" + "Polygon Mumbai-1": { + "off_ramp": "0x2D8161383F25A314eCee8227D009c087f040743a", + "commit_store": "0x503372568E6b6928A72492F164Da1946E5323750", + "receiver_dapp": "0xe5033cEE365d863E9DD53EaEA0caB82D11b1e435" } } }, - "Avalanche Fuji-2": { + "Sepolia Testnet-2": { "is_mock_arm": true, - "fee_token": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846", + "fee_token": "0x779877A7B0D9E8603169DdbD7836e478b4624789", "bridge_tokens": [], "bridge_tokens_pools": [], - "arm": "0x56cB819B2e13Aef5807e2c6eF4A4256a6121F1c4", - "router": "0xD23c0A6c4CAce271a5c3b57c648D9bD379D3cCCf", - "price_registry": "0x1C2C1B41B97FCFE1d427c08CCcf5c6ED8b897Ba1", - "wrapped_native": "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", + "arm": "0x996C84211D7D2E80a0c27857dD38BFBb87700075", + "router": "0x8dA56A0F8957F12495066d47F6a9Ac3d922F865c", + "price_registry": "0x27D25dE4E6d2C876bE139908acA8a3783a53dACf", + "wrapped_native": "0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534", "src_contracts": { "Arbitrum Goerli-2": { - "on_ramp": "0x732BDc1124C0928574fb2C3F86D4D53E4Bc3Fb18", - "deployed_at": 26098412 + "on_ramp": "0x32ddC7ff17a82C0F3499af2ebda78E48855427dD", + "deployed_at": 4515765 + }, + "Avalanche Fuji-2": { + "on_ramp": "0x04107187AF2D75BA385162edfE5369FcAE673553", + "deployed_at": 4515765 }, "BSC Testnet-2": { - "on_ramp": "0x6bE9698CAf97908a8b5c4A8C9cd96CA8a81cDbfa", - "deployed_at": 26098402 + "on_ramp": "0xdc5FB32ABDF951B9098AAD4eFB0C198F9800d9d6", + "deployed_at": 4515765 }, "Base Goerli-2": { - "on_ramp": "0xFE0d73c108D0a2a2bb103e81273a7cBB9C3b4F93", - "deployed_at": 26098405 + "on_ramp": "0x1840c7Ac49537A28EE7A5E3A52D3632bE5De7cE6", + "deployed_at": 4515929 }, "Optimism Goerli-2": { - "on_ramp": "0x5477C0B7491112412a7908dF5a4b30B17547E8aA", - "deployed_at": 26098420 + "on_ramp": "0x5EEE8454073c4D11c3821f7f5aF0EE33D1663e53", + "deployed_at": 4515765 }, - "Sepolia Testnet-2": { - "on_ramp": "0xF11E8d51b6F980c64B373001F6212B367BA469C1", - "deployed_at": 26098397 + "Polygon Mumbai-2": { + "on_ramp": "0x78c3648A3C600c5852a37d27E9d1e5F8A9699821", + "deployed_at": 4515765 } }, "dest_contracts": { "Arbitrum Goerli-2": { - "off_ramp": "0x635979f7F94bD5a503f11918aAbA94BFa7E58098", - "commit_store": "0x70b10209D353f831848e1a4E1E4cF901994f35fE", - "receiver_dapp": "0x51f70558d4b2E070D478a56f00B38517Cac8F217" + "off_ramp": "0x5d036638aEd400db451D4DEe1530BeDc7b9234AB", + "commit_store": "0xAC275F1eEC26fD5DDecBf0B85DB2762aae74b216", + "receiver_dapp": "0x573DE46F76eb9B63bdB6D414384fA6De6996714c" + }, + "Avalanche Fuji-2": { + "off_ramp": "0x58C1DB71169CA494f3F7e39C045e4B5B510bC73D", + "commit_store": "0x3464F0AfFC6eaE433116B5826DfCa122477DF4d8", + "receiver_dapp": "0x253B204E3a542E573ECB0d2149BAA9E280fC1F11" }, "BSC Testnet-2": { - "off_ramp": "0x5d3a0bb8aD15b5D0b401035316EC55EC36F01319", - "commit_store": "0x166D464e862d25d1B44EdD00df7A7739Aa623308", - "receiver_dapp": "0x30cD10363Be70109FBA90594DF35F18eFd78C8b9" + "off_ramp": "0xCbE7C73ee9Ac21Ae9575aB2E44Fc331c5BD3D4e5", + "commit_store": "0xD74EFeB45df0a6629aedF4ea6a63de66D060044D", + "receiver_dapp": "0x8559148d41ED5ea3FFe2CA663167adaD2e4a2677" }, "Base Goerli-2": { - "off_ramp": "0x8689589C56E89454832fFeEa3702DA329FF2b31c", - "commit_store": "0xFeD7666412Cdb45396537B021593E395bD6f293F", - "receiver_dapp": "0x67c5a66642441C2128b6E598f8A64308133454b3" + "off_ramp": "0xb722282eaFC06Ff8228F5D81C1EA6EF952ea6907", + "commit_store": "0x68885f9797D35Fa16e4692285c32c91036447a2c", + "receiver_dapp": "0xd603639cec76c9c918D48eAdb5604d6c07e5803f" }, "Optimism Goerli-2": { - "off_ramp": "0xbe3C7F1766efe63b7c62aD2128670047B6D27110", - "commit_store": "0xD09e3365D6d5fDCFe48D23De9c64F7e8f568EdCA", - "receiver_dapp": "0xe23eeee816ED08Ac9d6218535544f129D1EB12b4" + "off_ramp": "0x4aca7d51Fe672B86Fd0a7C97d1a06b1Bb12f38AF", + "commit_store": "0xEeBD2E924E6D9b4Ea4693C23cA6eF8224B5BD7E3", + "receiver_dapp": "0xa2F5E0FBa9C0e81fF7B9db2dD9cc8d28ABf241c2" }, - "Sepolia Testnet-2": { - "off_ramp": "0x7b925849aD41D524a4d62587df7a455f50f2eFEB", - "commit_store": "0x3C66740724297B50c10CF66a8e15C5EBb43F735D", - "receiver_dapp": "0x39902524F192C9ACe6B3C1a8b7be66842C4EA92A" + "Polygon Mumbai-2": { + "off_ramp": "0x729c245b925B9cfe32c3D4fE16a5962890d6ca21", + "commit_store": "0xC00d11334Af7DaD7A4f214512897d1063fc7d8B3", + "receiver_dapp": "0x2078C5fc33ccC02dafFf18e9C6Cbf09fcc43D66c" } } }, - "Avalanche Fuji-3": { - "is_mock_arm": true, - "fee_token": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846", - "bridge_tokens": null, - "bridge_tokens_pools": null, - "arm": "0x033b274504d63757E0f2Dc97396c903Ce703Df68", - "router": "0x29b634FcCD3bB59d263851779eCaa13Ff7Ec2558", - "price_registry": "0xCaFBfaB3fBCA6B577ec1Ccc38105451BD5DaE034", - "wrapped_native": "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", - "src_contracts": { - "Arbitrum Goerli-3": { - "on_ramp": "0xc0e0EFA82784ed6B157DdcA82693eb9270041f56", - "deployed_at": 26205219 - }, - "BSC Testnet-3": { - "on_ramp": "0xb21f9E8F4B40434cF4F3d8C8f577121E26f663E9", - "deployed_at": 26205219 - }, - "Base Goerli-3": { - "on_ramp": "0xf525381c5a77E32E3d4BEb8670a3f0421179A10D", - "deployed_at": 26205231 - }, - "Optimism Goerli-3": { - "on_ramp": "0x8674B6559F538E0A8Aa02d91980eb91e5420d5f8", - "deployed_at": 26205219 - }, - "Sepolia Testnet-3": { - "on_ramp": "0xD86bcE9A4709302bA042e100F874cc815E12e4e0", - "deployed_at": 26205219 - } - }, - "dest_contracts": { - "Arbitrum Goerli-3": { - "off_ramp": "0x56aa95805eAb1bfE44F350d10624DA78D0dF7766", - "commit_store": "0x6D1575CF487d7b64bC05e86d35dBbB8490C16b62", - "receiver_dapp": "0x6f9C176499C412b5c48551FA567553436b439D0e" - }, - "BSC Testnet-3": { - "off_ramp": "0x21d989cf64806BCF2C227b0B3302Fd0956cB97f9", - "commit_store": "0x8685Bb51d37CABd11D4B60dB9C2a489D2157Dd10", - "receiver_dapp": "0xBA5ba034372287fD49dA4002F19BeE6C8E633a29" - }, - "Base Goerli-3": { - "off_ramp": "0x0Abc05f3F5F6b2A7e0080CE14D25f95fEF58c39A", - "commit_store": "0x1538dfbD1E9F6DdacBE5E98cfF53F3a7a2c2F8F4", - "receiver_dapp": "0xA20B642335968621788B108f2F4ef8174B439A40" - }, - "Optimism Goerli-3": { - "off_ramp": "0xDa684f2c7F30BDA4fD070ffA7Bf6259380E82e5E", - "commit_store": "0xb9ad97803E97ADF560e58d42aF285697A1F8138c", - "receiver_dapp": "0x0966f05394F97f13Bdcd9E13C28d5a75B4BD7944" - }, - "Sepolia Testnet-3": { - "off_ramp": "0xf6c51374d5D23CF63F94eCD4f44Cc726D15b4AC9", - "commit_store": "0x3cd537779315591F9E3495A7E03Ae2a8294498F0", - "receiver_dapp": "0xC9FAc13C9474a82D3F921E188f00Fbd5e70D6323" - } - } - }, - "Avalanche Fuji-4": { + "Sepolia Testnet-3": { "is_mock_arm": true, - "fee_token": "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846", - "bridge_tokens": null, - "bridge_tokens_pools": null, - "arm": "0x033b274504d63757E0f2Dc97396c903Ce703Df68", - "router": "0xB38AeC87e1952206E75Dc9600092059E6E587899", - "price_registry": "0xCaFBfaB3fBCA6B577ec1Ccc38105451BD5DaE034", - "wrapped_native": "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", - "src_contracts": { - "Arbitrum Goerli-4": { - "on_ramp": "0x3CBb11AC1ABfB4e415B9A70311f0f07FCe0cb5D7", - "deployed_at": 26205219 - }, - "BSC Testnet-4": { - "on_ramp": "0x9Fb8F11C408Cd484A4F5EcB0ae969994dbC01912", - "deployed_at": 26205219 - }, - "Base Goerli-4": { - "on_ramp": "0xd3A1cF0AEceE62236187aB23069f295e5a25D6A2", - "deployed_at": 26205219 - }, - "Optimism Goerli-4": { - "on_ramp": "0x4F43264311ccCEA86E6d5B90480462FE13585de7", - "deployed_at": 26205219 - }, - "Sepolia Testnet-4": { - "on_ramp": "0x93c554E5E15eaCC29E19676847B8aB5304b1719B", - "deployed_at": 26205219 - } - }, - "dest_contracts": { - "Arbitrum Goerli-4": { - "off_ramp": "0xFB324e02D7b1ED8c75ee21f7EC00d43DcB3AaF60", - "commit_store": "0x8FFF75FCB63e0E09269fE576fAebbfa2A411eC3C", - "receiver_dapp": "0x08CeA01430159c6d20c65c918689F888424dAa81" - }, - "BSC Testnet-4": { - "off_ramp": "0x7A122671abB7A95B956a04f1D08f6B92C4BbeAf8", - "commit_store": "0x2f1181B3aC758BD307794365988aed0817B610CC", - "receiver_dapp": "0xdc6324Cd70F9032bba1C7f0f96c180dCa6e266f7" - }, - "Base Goerli-4": { - "off_ramp": "0xB1D3D8dE960991e42312fFfD7055C14F1A87d088", - "commit_store": "0x8d9d4AD897b383189E567E9E45c03E2640Bea893", - "receiver_dapp": "0x0096bcaC2fE6156369eB8FcA01276a4D83787D46" - }, - "Optimism Goerli-4": { - "off_ramp": "0x34377fbDbcF336aF920AA48Ff224b81cC0E3b5F9", - "commit_store": "0xdd05a7905666c3C8FC00f8253d45c157A9DC249A", - "receiver_dapp": "0x6cf526596C61A7268046fFD319cB9930025aF94d" - }, - "Sepolia Testnet-4": { - "off_ramp": "0x509bCeDb15DCcb5761DD9DD356dF0d5c4E68f180", - "commit_store": "0x251702f9BFDd1Cd1BfdACD23696faaf65ceB78B9", - "receiver_dapp": "0x258018d0DCa868372d86d9d2c6a0168eaC611a96" - } - } - }, - "Polygon Mumbai-1": { - "fee_token": "0x326C977E6efc84E512bB9C30f76E30c160eD06FB", - "bridge_tokens": [], - "bridge_tokens_pools": [], - "arm": "0x5BDD59cde34F2f40DC34e0eac61057561175ba16", - "router": "0x9125a9B0eEf57E55966C31C0A0095dAE7b5a885C", - "price_registry": "0x933fEB900212240EC19D2752529e0007F182B543", - "wrapped_native": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", - "src_contracts": {}, - "dest_contracts": {} - }, - "Polygon Mumbai-2": { - "fee_token": "0x326C977E6efc84E512bB9C30f76E30c160eD06FB", - "bridge_tokens": [], - "bridge_tokens_pools": [], - "arm": "0x5BDD59cde34F2f40DC34e0eac61057561175ba16", - "router": "0x30cC62ad8BacF4f1e7bCDd0EE24d9a7874513B43", - "price_registry": "0x933fEB900212240EC19D2752529e0007F182B543", - "wrapped_native": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", - "src_contracts": {}, - "dest_contracts": {} - }, - "Polygon Mumbai-3": { - "fee_token": "0x326C977E6efc84E512bB9C30f76E30c160eD06FB", + "fee_token": "0x779877A7B0D9E8603169DdbD7836e478b4624789", "bridge_tokens": [], "bridge_tokens_pools": [], - "arm": "0x5BDD59cde34F2f40DC34e0eac61057561175ba16", - "router": "0x03073cD021f57661A689F944A35e0041a08B8E21", - "price_registry": "0x933fEB900212240EC19D2752529e0007F182B543", - "wrapped_native": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", + "arm": "0x996C84211D7D2E80a0c27857dD38BFBb87700075", + "router": "", + "price_registry": "0x27D25dE4E6d2C876bE139908acA8a3783a53dACf", + "wrapped_native": "0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534", "src_contracts": {}, "dest_contracts": {} }, - "Polygon Mumbai-4": { - "fee_token": "0x326C977E6efc84E512bB9C30f76E30c160eD06FB", + "Sepolia Testnet-4": { + "is_mock_arm": true, + "fee_token": "0x779877A7B0D9E8603169DdbD7836e478b4624789", "bridge_tokens": [], "bridge_tokens_pools": [], - "arm": "0x5BDD59cde34F2f40DC34e0eac61057561175ba16", - "router": "0x1d30Aef5886907e4c59e5BA5a083fb9509BD4707", - "price_registry": "0x933fEB900212240EC19D2752529e0007F182B543", - "wrapped_native": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", + "arm": "0x996C84211D7D2E80a0c27857dD38BFBb87700075", + "router": "", + "price_registry": "0x27D25dE4E6d2C876bE139908acA8a3783a53dACf", + "wrapped_native": "0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534", "src_contracts": {}, "dest_contracts": {} } diff --git a/integration-tests/ccip-tests/contracts/laneconfig/parse_contracts.go b/integration-tests/ccip-tests/contracts/laneconfig/parse_contracts.go index 9063d1462d..b53d473b93 100644 --- a/integration-tests/ccip-tests/contracts/laneconfig/parse_contracts.go +++ b/integration-tests/ccip-tests/contracts/laneconfig/parse_contracts.go @@ -134,16 +134,14 @@ func (l *Lanes) CopyCommonContracts(fromNetwork, toNetwork string, reuse, isToke DestContractsMu: &sync.Mutex{}, DestContracts: make(map[string]DestContracts), CommonContracts: CommonContracts{ - FeeToken: existing.FeeToken, - WrappedNative: existing.WrappedNative, - IsNativeFeeToken: existing.IsNativeFeeToken, + FeeToken: existing.FeeToken, + WrappedNative: existing.WrappedNative, }, } // if reuse is set to true, it copies all the common contracts except the router if reuse { cfg.CommonContracts.PriceRegistry = existing.PriceRegistry cfg.CommonContracts.ARM = existing.ARM - cfg.CommonContracts.IsNativeFeeToken = existing.IsNativeFeeToken cfg.CommonContracts.IsMockARM = existing.IsMockARM } // if it is a token transfer, it copies the bridge token contracts diff --git a/integration-tests/ccip-tests/load-test.env b/integration-tests/ccip-tests/load-test.env index 157c7d7413..944f603047 100644 --- a/integration-tests/ccip-tests/load-test.env +++ b/integration-tests/ccip-tests/load-test.env @@ -12,15 +12,15 @@ export CCIP_TESTS_ON_EXISTING_DEPLOYMENT=False # the test will use simulated networks export SELECTED_NETWORKS="SIMULATED,SIMULATED_1,SIMULATED_2" export CCIP_NETWORK_PAIRS="" -# th -export CCIP_NO_OF_NETWORKS=10 + +export CCIP_NO_OF_NETWORKS=18 export CCIP_NO_OF_LANES_PER_PAIR=2 # The load will be triggered as per # for . Example for following: 1 request per 10s for 1h export CCIP_LOAD_TEST_RATEUNIT=10s export CCIP_LOAD_TEST_RATE=1 -export CCIP_TEST_DURATION=1h +export CCIP_TEST_DURATION=2h # if CCIP_KEEP_ENV_ALIVE is set to true, the env will not be destroyed after the test. export CCIP_KEEP_ENV_ALIVE=True @@ -33,7 +33,11 @@ export CCIP_KEEP_ENV_TTL=24h # Msg type to use for the load test. Default value is WithToken unless specified. # Values to choose from WithToken,WithoutToken -export CCIP_MSG_TYPE=WithoutToken +export CCIP_MSG_TYPE=WithToken +export CCIP_NO_OF_TOKENS=35 +export CCIP_NO_OF_TOKENS_PER_REQUEST=2 +export CCIP_TRANSFER_AMOUNT_PER_TOKEN=1 +export CCIP_DEPLOY_BLOCKSCOUT=False # remote runner resource requirements export RR_MEM=16Gi @@ -42,11 +46,13 @@ export RR_CPU=4 # pg resource requirements export CCIP_DB_MEM=6Gi export CCIP_DB_CPU=2 -export CCIP_DB_ARGS="shared_buffers=1536MB,effective_cache_size=4096MB,work_mem=64MB" +export CCIP_DB_ARGS="shared_buffers=2GB,effective_cache_size=4GB,work_mem=128MB" +export CCIP_MAX_OPEN_CONNECTIONS=50 +export CCIP_MAX_IDLE_CONNECTIONS=10 # node resource requirements -export CCIP_NODE_MEM=4Gi -export CCIP_NODE_CPU=2 +export CCIP_NODE_MEM=8Gi +export CCIP_NODE_CPU=4 export DETACH_RUNNER=true export TEST_SUITE=load diff --git a/integration-tests/ccip-tests/load/ccip_loadgen.go b/integration-tests/ccip-tests/load/ccip_loadgen.go index 08b22786cb..7022bdf027 100644 --- a/integration-tests/ccip-tests/load/ccip_loadgen.go +++ b/integration-tests/ccip-tests/load/ccip_loadgen.go @@ -3,10 +3,10 @@ package load import ( "bytes" "context" - "crypto/rand" "encoding/base64" "fmt" "math/big" + "math/rand" "strconv" "testing" "time" @@ -170,8 +170,16 @@ func (c *CCIPE2ELoad) Call(_ *wasp.Generator) *wasp.CallResult { msgStr = randomString[:length] } } - msg := c.msg + // if msg contains more than 2 tokens, selectively choose random 2 tokens + if len(msg.TokenAmounts) > 2 { + // randomize the order of elements in the slice + rand.Shuffle(len(msg.TokenAmounts), func(i, j int) { + msg.TokenAmounts[i], msg.TokenAmounts[j] = msg.TokenAmounts[j], msg.TokenAmounts[i] + }) + // select first 2 tokens + msg.TokenAmounts = msg.TokenAmounts[:2] + } msg.Data = []byte(msgStr) feeToken := sourceCCIP.Common.FeeToken.EthAddress diff --git a/integration-tests/ccip-tests/load/helper.go b/integration-tests/ccip-tests/load/helper.go index 883f060081..816d3d2d69 100644 --- a/integration-tests/ccip-tests/load/helper.go +++ b/integration-tests/ccip-tests/load/helper.go @@ -47,7 +47,6 @@ type loadArgs struct { } func (l *loadArgs) Setup(sameCommitAndExec bool, noOfcommit, noOfExec int) { - transferAmounts := []*big.Int{big.NewInt(1)} lggr := l.lggr var setUpArgs *testsetups.CCIPTestSetUpOutputs if !l.TestCfg.ExistingDeployment { @@ -56,9 +55,9 @@ func (l *loadArgs) Setup(sameCommitAndExec bool, noOfcommit, noOfExec int) { replicas = noOfcommit + noOfExec + 2 } setUpArgs = testsetups.CCIPDefaultTestSetUp(l.TestCfg.Test, lggr, "load-ccip", - replicas, transferAmounts, nil, noOfcommit, sameCommitAndExec, true, l.TestCfg) + replicas, nil, noOfcommit, sameCommitAndExec, true, l.TestCfg) } else { - setUpArgs = testsetups.CCIPExistingDeploymentTestSetUp(l.TestCfg.Test, lggr, transferAmounts, true, l.TestCfg) + setUpArgs = testsetups.CCIPExistingDeploymentTestSetUp(l.TestCfg.Test, lggr, true, l.TestCfg) } l.TestSetupArgs = setUpArgs } diff --git a/integration-tests/ccip-tests/smoke/ccip_test.go b/integration-tests/ccip-tests/smoke/ccip_test.go index 509460c63d..43a0a192c4 100644 --- a/integration-tests/ccip-tests/smoke/ccip_test.go +++ b/integration-tests/ccip-tests/smoke/ccip_test.go @@ -24,8 +24,7 @@ func TestSmokeCCIPForBidirectionalLane(t *testing.T) { } l := logging.GetTestLogger(t) TestCfg := testsetups.NewCCIPTestConfig(t, l, testsetups.Smoke) - transferAmounts := []*big.Int{big.NewInt(1e14), big.NewInt(1e14)} - setUpOutput := testsetups.CCIPDefaultTestSetUp(t, l, "smoke-ccip", 6, transferAmounts, nil, 5, true, true, TestCfg) + setUpOutput := testsetups.CCIPDefaultTestSetUp(t, l, "smoke-ccip", 6, nil, 5, true, true, TestCfg) var tcs []subtestInput if len(setUpOutput.Lanes) == 0 { return @@ -79,9 +78,8 @@ func TestSmokeCCIPRateLimit(t *testing.T) { l := logging.GetTestLogger(t) TestCfg := testsetups.NewCCIPTestConfig(t, l, testsetups.Smoke) require.Equal(t, actions.TokenTransfer, TestCfg.MsgType, "Test config should have token transfer message type") - transferAmounts := []*big.Int{big.NewInt(1e14)} setUpOutput := testsetups.CCIPDefaultTestSetUp( - t, l, "smoke-ccip", 6, transferAmounts, nil, + t, l, "smoke-ccip", 6, nil, 5, true, true, TestCfg) var tcs []subtestInput if len(setUpOutput.Lanes) == 0 { @@ -114,6 +112,18 @@ func TestSmokeCCIPRateLimit(t *testing.T) { t.Run(fmt.Sprintf("%s - Rate Limit", tc.testName), func(t *testing.T) { tc.lane.Test = t src := tc.lane.Source + // add liquidity to pools on both networks + if !TestCfg.ExistingDeployment { + addFund := func(ccipCommon *actions.CCIPCommon) { + for i, btp := range ccipCommon.BridgeTokenPools { + token := ccipCommon.BridgeTokens[i] + err := btp.AddLiquidity(token.Approve, token.Address(), new(big.Int).Mul(AggregatedRateLimitCapacity, big.NewInt(20))) + require.NoError(t, err) + } + } + addFund(src.Common) + addFund(tc.lane.Dest.Common) + } l.Info(). Str("Source", tc.lane.SourceNetworkName). Str("Destination", tc.lane.DestNetworkName). diff --git a/integration-tests/ccip-tests/testsetups/ccip.go b/integration-tests/ccip-tests/testsetups/ccip.go index 77610c1726..e1bf4b94e7 100644 --- a/integration-tests/ccip-tests/testsetups/ccip.go +++ b/integration-tests/ccip-tests/testsetups/ccip.go @@ -17,6 +17,7 @@ import ( chainselectors "github.com/smartcontractkit/chain-selectors" "github.com/smartcontractkit/chainlink-env/client" "github.com/smartcontractkit/chainlink-env/environment" + "github.com/smartcontractkit/chainlink-env/pkg/cdk8s/blockscout" "github.com/smartcontractkit/chainlink-env/pkg/helm/chainlink" "github.com/smartcontractkit/chainlink-env/pkg/helm/reorg" "github.com/smartcontractkit/chainlink-testing-framework/blockchain" @@ -49,6 +50,8 @@ const ( DefaultPhaseTimeoutForLongTests = 50 * time.Minute DefaultPhaseTimeout = 10 * time.Minute DefaultTestDuration = 10 * time.Minute + DefaultDBMaxOpenConns = 40 + DefaultDBMaxIdleConns = 20 ) var ( @@ -106,14 +109,20 @@ type CCIPTestConfig struct { EnvTTL time.Duration KeepEnvAlive bool MsgType string + NoOfTokensPerChain int + NoOfTokensInMsg int + TokenAmount *big.Int PhaseTimeout time.Duration TestDuration time.Duration LocalCluster bool ExistingDeployment bool ExistingEnv string ReuseContracts bool + Blockscout bool SequentialLaneAddition bool NodeFunding *big.Float + DBMaxOpenConns int64 + DBMaxIdleConns int64 Load *CCIPLoadInput AllNetworks map[string]blockchain.EVMNetwork SelectedNetworks []blockchain.EVMNetwork @@ -496,6 +505,63 @@ func NewCCIPTestConfig(t *testing.T, lggr zerolog.Logger, tType string) *CCIPTes } } + maxConnInput, _ := utils.GetEnv("CCIP_MAX_OPEN_CONNECTIONS") + p.DBMaxOpenConns = DefaultDBMaxOpenConns + if maxConnInput != "" { + n, err := strconv.ParseInt(maxConnInput, 10, 64) + if err != nil { + allError = multierr.Append(allError, err) + } else { + p.DBMaxOpenConns = n + } + } + + idleConnInput, _ := utils.GetEnv("CCIP_MAX_IDLE_CONNECTIONS") + p.DBMaxIdleConns = DefaultDBMaxIdleConns + if maxConnInput != "" { + n, err := strconv.ParseInt(idleConnInput, 10, 64) + if err != nil { + allError = multierr.Append(allError, err) + } else { + p.DBMaxIdleConns = n + } + } + + if p.MsgType == actions.TokenTransfer { + p.NoOfTokensPerChain = 1 + + inputNo, _ := utils.GetEnv("CCIP_NO_OF_TOKENS") + if inputNo != "" { + n, err := strconv.Atoi(inputNo) + if err != nil { + allError = multierr.Append(allError, err) + } else { + p.NoOfTokensPerChain = n + } + } + p.NoOfTokensInMsg = p.NoOfTokensPerChain + inputNoPerMsg, _ := utils.GetEnv("CCIP_NO_OF_TOKENS_PER_REQUEST") + if inputNoPerMsg != "" { + n, err := strconv.Atoi(inputNoPerMsg) + if err != nil { + allError = multierr.Append(allError, err) + } else { + p.NoOfTokensInMsg = n + } + } + + tokenAmountStr, _ := utils.GetEnv("CCIP_TRANSFER_AMOUNT_PER_TOKEN") + p.TokenAmount = big.NewInt(1) + if tokenAmountStr != "" { + amount, _ := big.NewInt(0).SetString(tokenAmountStr, 10) + if amount == nil { + allError = multierr.Append(allError, fmt.Errorf("invalid CCIP_TRANSFER_AMOUNT_PER_TOKEN env variable value: %s", tokenAmountStr)) + } else { + p.TokenAmount = amount + } + } + } + fundingAmountStr, _ := utils.GetEnv("CCIP_CHAINLINK_NODE_FUNDING") if fundingAmountStr != "" { fundingAmount, _ := big.NewFloat(0).SetString(fundingAmountStr) @@ -516,6 +582,16 @@ func NewCCIPTestConfig(t *testing.T, lggr zerolog.Logger, tType string) *CCIPTes } } + blckscout, _ := utils.GetEnv("CCIP_DEPLOY_BLOCKSCOUT") + if blckscout != "" { + e, err := strconv.ParseBool(blckscout) + if err != nil { + allError = multierr.Append(allError, err) + } else { + p.Blockscout = e + } + } + alive, _ := utils.GetEnv("CCIP_KEEP_ENV_ALIVE") if alive != "" { e, err := strconv.ParseBool(alive) @@ -650,7 +726,7 @@ func (o *CCIPTestSetUpOutputs) AddLanesForNetworkPair( numOfCommitNodes int, commitAndExecOnSameDON, bidirectional bool, ) error { - var allErrors error + var allErrors atomic.Error t := o.Cfg.Test var k8Env *environment.Environment ccipEnv := o.Env @@ -780,19 +856,21 @@ func (o *CCIPTestSetUpOutputs) AddLanesForNetworkPair( srcConfig, destConfig, err := ccipLaneA2B.DeployNewCCIPLane(numOfCommitNodes, commitAndExecOnSameDON, networkACmn, networkBCmn, transferAmounts, o.BootstrapAdded, configureCLNode, o.JobAddGrp) if err != nil { - allErrors = multierr.Append(allErrors, fmt.Errorf("deploying lane %s to %s; err - %+v", networkA.Name, networkB.Name, err)) + allErrors.Store(multierr.Append(allErrors.Load(), fmt.Errorf("deploying lane %s to %s; err - %+v", networkA.Name, networkB.Name, err))) return err } err = o.LaneConfig.WriteLaneConfig(networkA.Name, srcConfig) if err != nil { - allErrors = multierr.Append(allErrors, fmt.Errorf("writing lane config for %s; err - %+v", networkA.Name, err)) + lggr.Error().Err(err).Msgf("error deploying lane %s to %s", networkA.Name, networkB.Name) + allErrors.Store(multierr.Append(allErrors.Load(), fmt.Errorf("writing lane config for %s; err - %+v", networkA.Name, err))) return err } err = o.LaneConfig.WriteLaneConfig(networkB.Name, destConfig) if err != nil { - allErrors = multierr.Append(allErrors, fmt.Errorf("writing lane config for %s; err - %+v", networkB.Name, err)) + allErrors.Store(multierr.Append(allErrors.Load(), fmt.Errorf("writing lane config for %s; err - %+v", networkB.Name, err))) return err } + lggr.Info().Msgf("done setting up lane %s to %s", networkA.Name, networkB.Name) return nil }) @@ -802,20 +880,22 @@ func (o *CCIPTestSetUpOutputs) AddLanesForNetworkPair( srcConfig, destConfig, err := ccipLaneB2A.DeployNewCCIPLane(numOfCommitNodes, commitAndExecOnSameDON, networkBCmn, networkACmn, transferAmounts, o.BootstrapAdded, configureCLNode, o.JobAddGrp) if err != nil { - allErrors = multierr.Append(allErrors, fmt.Errorf("deploying lane %s to %s; err - %+v", networkB.Name, networkA.Name, err)) + lggr.Error().Err(err).Msgf("error deploying lane %s to %s", networkB.Name, networkA.Name) + allErrors.Store(multierr.Append(allErrors.Load(), fmt.Errorf("deploying lane %s to %s; err - %+v", networkB.Name, networkA.Name, err))) return err } err = o.LaneConfig.WriteLaneConfig(networkB.Name, srcConfig) if err != nil { - allErrors = multierr.Append(allErrors, fmt.Errorf("writing lane config for %s; err - %+v", networkA.Name, err)) + allErrors.Store(multierr.Append(allErrors.Load(), fmt.Errorf("writing lane config for %s; err - %+v", networkA.Name, err))) return err } err = o.LaneConfig.WriteLaneConfig(networkA.Name, destConfig) if err != nil { - allErrors = multierr.Append(allErrors, fmt.Errorf("writing lane config for %s; err - %+v", networkB.Name, err)) + allErrors.Store(multierr.Append(allErrors.Load(), fmt.Errorf("writing lane config for %s; err - %+v", networkB.Name, err))) return err } + lggr.Info().Msgf("done setting up lane %s to %s", networkB.Name, networkA.Name) return nil } return nil @@ -835,7 +915,7 @@ func (o *CCIPTestSetUpOutputs) AddLanesForNetworkPair( return err case <-ctx.Done(): lggr.Print(ctx.Err()) - return allErrors + return allErrors.Load() } } } @@ -919,7 +999,6 @@ func CCIPDefaultTestSetUp( lggr zerolog.Logger, envName string, numOfCLNodes int, - transferAmounts []*big.Int, tokenDeployerFns []blockchain.ContractDeployer, numOfCommitNodes int, commitAndExecOnSameDON, bidirectional bool, inputs *CCIPTestConfig, @@ -933,9 +1012,11 @@ func CCIPDefaultTestSetUp( ) filename := fmt.Sprintf("./tmp_%s.json", strings.ReplaceAll(t.Name(), "/", "_")) inputs.Test = t - if inputs.MsgType == actions.DataOnlyTransfer { - transferAmounts = []*big.Int{} + var transferAmounts []*big.Int + for i := 0; i < inputs.NoOfTokensInMsg; i++ { + transferAmounts = append(transferAmounts, inputs.TokenAmount) } + setUpArgs := &CCIPTestSetUpOutputs{ Cfg: inputs, Reporter: testreporters.NewCCIPTestReporter(t, lggr), @@ -967,7 +1048,7 @@ func CCIPDefaultTestSetUp( var local *test_env.CLClusterTestEnv if configureCLNode { if inputs.LocalCluster { - local, deployCL = DeployLocalCluster(t, numOfCLNodes, inputs.SelectedNetworks) + local, deployCL = DeployLocalCluster(t, numOfCLNodes, inputs) ccipEnv = &actions.CCIPTestEnv{ LocalCluster: local, } @@ -986,7 +1067,7 @@ func CCIPDefaultTestSetUp( TTL: inputs.EnvTTL, NamespacePrefix: envName, Test: t, - }, clProps, inputs.GethResourceProfile, inputs.SelectedNetworks) + }, clProps, inputs.GethResourceProfile, inputs) ccipEnv = &actions.CCIPTestEnv{K8Env: k8Env} } @@ -1083,8 +1164,9 @@ func CCIPDefaultTestSetUp( if setUpArgs.Cfg.NoOfLanesPerPair > 1 { regex := regexp.MustCompile(`-(\d+)$`) networkNameToReadCfg := regex.ReplaceAllString(n, "") + reuse := inputs.ReuseContracts // if reuse contracts is true, copy common contracts from the same network except the router contract - setUpArgs.LaneConfig.CopyCommonContracts(networkNameToReadCfg, n, inputs.ReuseContracts, inputs.MsgType == actions.TokenTransfer) + setUpArgs.LaneConfig.CopyCommonContracts(networkNameToReadCfg, n, reuse, inputs.MsgType == actions.TokenTransfer) } } @@ -1097,7 +1179,7 @@ func CCIPDefaultTestSetUp( net.HTTPURLs = chain.GetNetworkConfig().HTTPURLs net.URLs = chain.GetNetworkConfig().URLs chainAddGrp.Go(func() error { - return setUpArgs.DeployChainContracts(chain, net, len(transferAmounts), tokenDeployerFns, lggr) + return setUpArgs.DeployChainContracts(chain, net, inputs.NoOfTokensPerChain, tokenDeployerFns, lggr) }) } require.NoError(t, chainAddGrp.Wait(), "Deploying common contracts shouldn't fail") @@ -1184,37 +1266,39 @@ func CCIPDefaultTestSetUp( func CCIPExistingDeploymentTestSetUp( t *testing.T, lggr zerolog.Logger, - transferAmounts []*big.Int, bidirectional bool, input *CCIPTestConfig, ) *CCIPTestSetUpOutputs { - return CCIPDefaultTestSetUp(t, lggr, "ccip-runner", 0, transferAmounts, + return CCIPDefaultTestSetUp(t, lggr, "ccip-runner", 0, nil, 0, false, bidirectional, input) } func DeployLocalCluster( t *testing.T, noOfCLNodes int, - networks []blockchain.EVMNetwork, + testInputs *CCIPTestConfig, ) (*test_env.CLClusterTestEnv, func() error) { + selectedNetworks := testInputs.SelectedNetworks env, err := test_env.NewCLTestEnvBuilder(). WithTestLogger(t). - WithPrivateGethChains(networks). + WithPrivateGethChains(selectedNetworks). Build() require.NoError(t, err) for _, n := range env.PrivateChain { primaryNode := n.GetPrimaryNode() require.NotNil(t, primaryNode, "Primary node is nil in PrivateChain interface") - for i, networkCfg := range networks { + for i, networkCfg := range selectedNetworks { if networkCfg.ChainID == n.GetNetworkConfig().ChainID { - networks[i].URLs = []string{primaryNode.GetInternalWsUrl()} - networks[i].HTTPURLs = []string{primaryNode.GetInternalHttpUrl()} + selectedNetworks[i].URLs = []string{primaryNode.GetInternalWsUrl()} + selectedNetworks[i].HTTPURLs = []string{primaryNode.GetInternalHttpUrl()} } } } configOpts := []integrationnodes.NodeConfigOpt{ - node.WithPrivateEVMs(networks), + node.WithPrivateEVMs(selectedNetworks), + node.WithDBConnectionPool(testInputs.DBMaxIdleConns, testInputs.DBMaxOpenConns), } + // a func to start the CL nodes asynchronously deployCL := func() error { toml, err := node.NewConfigFromToml(ccipnode.CCIPTOML, configOpts...) @@ -1235,11 +1319,13 @@ func DeployEnvironments( envconfig *environment.Config, clProps map[string]interface{}, gethResource map[string]interface{}, - networks []blockchain.EVMNetwork, + testInputs *CCIPTestConfig, ) *environment.Environment { + useBlockscout := testInputs.Blockscout + selectedNetworks := testInputs.SelectedNetworks testEnvironment := environment.New(envconfig) numOfTxNodes := 1 - for _, network := range networks { + for _, network := range selectedNetworks { if !network.Simulated { continue } @@ -1291,23 +1377,22 @@ func DeployEnvironments( return internalWsURLs, internalHttpURLs } var nets []blockchain.EVMNetwork - for i := range networks { - nets = append(nets, networks[i]) - nets[i].URLs, nets[i].HTTPURLs = urlFinder(networks[i]) - // skip adding blockscout for simplified deployments - // uncomment the following to debug on-chain transactions - /* + for i := range selectedNetworks { + nets = append(nets, selectedNetworks[i]) + nets[i].URLs, nets[i].HTTPURLs = urlFinder(selectedNetworks[i]) + if useBlockscout { testEnvironment.AddChart(blockscout.New(&blockscout.Props{ - Name: fmt.Sprintf("%s-blockscout", networks[i].Name), - WsURL: networks[i].URLs[0], - HttpURL: networks[i].HTTPURLs[0], - })) - */ + Name: fmt.Sprintf("%s-blockscout", selectedNetworks[i].Name), + WsURL: selectedNetworks[i].URLs[0], + HttpURL: selectedNetworks[i].HTTPURLs[0], + })) + } } tomlCfg, err := node.NewConfigFromToml( ccipnode.CCIPTOML, ccipnode.WithPrivateEVMs(nets), + ccipnode.WithDBConnectionPool(testInputs.DBMaxIdleConns, testInputs.DBMaxOpenConns), ) tomlStr, err := tomlCfg.TOMLString() require.NoError(t, err) diff --git a/integration-tests/ccip-tests/types/config/node/core.go b/integration-tests/ccip-tests/types/config/node/core.go index 1f9cb3dfe8..186760ea55 100644 --- a/integration-tests/ccip-tests/types/config/node/core.go +++ b/integration-tests/ccip-tests/types/config/node/core.go @@ -34,6 +34,13 @@ func NewConfigFromToml(tomlConfig []byte, opts ...node.NodeConfigOpt) (*chainlin return &cfg, nil } +func WithDBConnectionPool(open, idle int64) node.NodeConfigOpt { + return func(c *chainlink.Config) { + c.Database.MaxOpenConns = itutils.Ptr(open) + c.Database.MaxIdleConns = itutils.Ptr(idle) + } +} + func WithPrivateEVMs(networks []blockchain.EVMNetwork) node.NodeConfigOpt { var evmConfigs []*evmcfg.EVMConfig for _, network := range networks { diff --git a/integration-tests/ccip-tests/types/config/node/tomls/ccip.toml b/integration-tests/ccip-tests/types/config/node/tomls/ccip.toml index 00770f27b1..36ca394e04 100644 --- a/integration-tests/ccip-tests/types/config/node/tomls/ccip.toml +++ b/integration-tests/ccip-tests/types/config/node/tomls/ccip.toml @@ -22,8 +22,9 @@ Unauthenticated = 1000 HTTPSPort = 0 [Database] -MaxIdleConns = 10 -MaxOpenConns = 20 +MaxIdleConns = 20 +MaxOpenConns = 40 +MigrateOnStartup = true [OCR2] Enabled = true