diff --git a/ccip_runner_helpers.go b/ccip_runner_helpers.go index 114123d447..565f0be50f 100644 --- a/ccip_runner_helpers.go +++ b/ccip_runner_helpers.go @@ -24,11 +24,13 @@ import ( var laneMapping = map[dione.Environment]map[rhea.Chain]map[rhea.Chain]rhea.EvmDeploymentConfig{ dione.StagingBeta: deployments.BetaChainMapping, dione.Production: deployments.ProdChainMapping, + dione.Mainnet: deployments.MainnetChainMapping, } var chainMapping = map[dione.Environment]map[rhea.Chain]rhea.EvmDeploymentConfig{ dione.StagingBeta: deployments.BetaChains, dione.Production: deployments.ProdChains, + dione.Mainnet: deployments.MainnetChains, } func loadEnvironment(t *testing.T, env dione.Environment) { diff --git a/dione/dione.go b/dione/dione.go index 2abc855657..056d603ad3 100644 --- a/dione/dione.go +++ b/dione/dione.go @@ -23,6 +23,7 @@ type Environment string const ( StagingBeta Environment = "staging-beta" Production Environment = "prod" + Mainnet Environment = "mainnet" ) type JobType string diff --git a/rhea/deployments/mainnet.go b/rhea/deployments/mainnet.go new file mode 100644 index 0000000000..3c1c91257f --- /dev/null +++ b/rhea/deployments/mainnet.go @@ -0,0 +1,530 @@ +package deployments + +import ( + gethcommon "github.com/ethereum/go-ethereum/common" + + "github.com/smartcontractkit/ccip-scripts/rhea" +) + +var MainnetChains = map[rhea.Chain]rhea.EvmDeploymentConfig{ + rhea.EthereumMainnet: {ChainConfig: ETHEREUM_MAINNET}, + rhea.OptimismMainnet: {ChainConfig: OPTIMISM_MAINNET}, + rhea.AvalancheMainnet: {ChainConfig: AVALANCHE_MAINNET}, + rhea.ArbitrumMainnet: {ChainConfig: ARBITRUM_MAINNET}, + rhea.PolygonMainnet: {ChainConfig: POLYGON_MAINNET}, + rhea.BASEMainnet: {ChainConfig: BASE_MAINNET}, + rhea.BSCMainnet: {ChainConfig: BSC_MAINNET}, +} + +var MainnetChainMapping = map[rhea.Chain]map[rhea.Chain]rhea.EvmDeploymentConfig{ + rhea.EthereumMainnet: { + rhea.AvalancheMainnet: Mainnet_EthToAvx, + rhea.OptimismMainnet: Mainnet_EthToOptimism, + rhea.ArbitrumMainnet: Mainnet_EthToArbitrum, + rhea.PolygonMainnet: Mainnet_EthToPolygon, + rhea.BASEMainnet: Mainnet_EthToBase, + rhea.BSCMainnet: Mainnet_EthToBSC, + }, + rhea.AvalancheMainnet: { + rhea.EthereumMainnet: Mainnet_AvxToEth, + rhea.PolygonMainnet: Mainnet_AvxToPolygon, + rhea.BSCMainnet: Mainnet_AvxToBSC, + }, + rhea.OptimismMainnet: { + rhea.EthereumMainnet: Mainnet_OptimismToEth, + rhea.PolygonMainnet: Mainnet_OptimismToPolygon, + rhea.BASEMainnet: Mainnet_OptimismToBase, + }, + rhea.ArbitrumMainnet: { + rhea.EthereumMainnet: Mainnet_ArbitrumToEth, + rhea.BASEMainnet: Mainnet_ArbitrumToBase, + }, + rhea.PolygonMainnet: { + rhea.EthereumMainnet: Mainnet_PolygonToEth, + rhea.AvalancheMainnet: Mainnet_PolygonToAvx, + rhea.OptimismMainnet: Mainnet_PolygonToOptimism, + rhea.BSCMainnet: Mainnet_PolygonToBSC, + }, + rhea.BSCMainnet: { + rhea.EthereumMainnet: Mainnet_BSCToEth, + rhea.AvalancheMainnet: Mainnet_BSCToAvx, + rhea.PolygonMainnet: Mainnet_BSCToPolygon, + rhea.BASEMainnet: Mainnet_BSCToBase, + }, + rhea.BASEMainnet: { + rhea.EthereumMainnet: Mainnet_BaseToEth, + rhea.OptimismMainnet: Mainnet_BaseToOptimism, + rhea.ArbitrumMainnet: Mainnet_BaseToArbitrum, + rhea.BSCMainnet: Mainnet_BaseToBSC, + }, +} +var ETHEREUM_MAINNET = rhea.EVMChainConfig{ + EvmChainId: 1, + GasSettings: rhea.EVMGasSettings{ + EIP1559: false, + }, + SupportedTokens: map[rhea.Token]rhea.EVMBridgedToken{ + rhea.LINK: { + Token: gethcommon.HexToAddress("0x514910771AF9Ca656af840dff83E8264EcF986CA"), + Pool: gethcommon.HexToAddress("0xC2291992A08eBFDfedfE248F2CCD34Da63570DF4"), + TokenPoolType: rhea.LockRelease, + }, + rhea.WETH: { + Token: gethcommon.HexToAddress("0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"), + TokenPoolType: rhea.FeeTokenOnly, + }, + }, + FeeTokens: []rhea.Token{rhea.LINK, rhea.WETH}, + WrappedNative: rhea.WETH, + Router: gethcommon.HexToAddress("0xE561d5E02207fb5eB32cca20a699E0d8919a1476"), + ARM: gethcommon.HexToAddress("0x8B63b3DE93431C0f756A493644d128134291fA1b"), + //ARMProxy: gethcommon.HexToAddress("0xe628d44b64fedaf9175b368bc50ccc17f2cc7f9a"), + PriceRegistry: gethcommon.HexToAddress("0x020082A7a9c2510e1921116001152DEE4da81985"), +} + +var OPTIMISM_MAINNET = rhea.EVMChainConfig{ + EvmChainId: 10, + GasSettings: rhea.EVMGasSettings{ + EIP1559: false, + }, + SupportedTokens: map[rhea.Token]rhea.EVMBridgedToken{ + rhea.LINK: { + Token: gethcommon.HexToAddress("0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6"), + Pool: gethcommon.HexToAddress("0x841b32B5309ba30cFbf4534667fC3D99EdF05B7A"), + TokenPoolType: rhea.LockRelease, + }, + rhea.WETH: { + Token: gethcommon.HexToAddress("0x4200000000000000000000000000000000000006"), + Price: rhea.WETH.Price(), + TokenPoolType: rhea.FeeTokenOnly, + TokenPriceType: rhea.TokenPrices, + }, + }, + FeeTokens: []rhea.Token{rhea.LINK, rhea.WETH}, + WrappedNative: rhea.WETH, + Router: gethcommon.HexToAddress("0x261c05167db67B2b619f9d312e0753f3721ad6E8"), + ARM: gethcommon.HexToAddress("0x8C7C2C3362a42308BB5c368677Ad321D11693b81"), + //ARMProxy: gethcommon.HexToAddress("0xbf93cf175dad548528829d2558445eea200131c9"), + PriceRegistry: gethcommon.HexToAddress("0x9270AAA75F4B9038f4c25fEc665B02a150a90361"), +} + +var ARBITRUM_MAINNET = rhea.EVMChainConfig{ + EvmChainId: 42161, + GasSettings: rhea.EVMGasSettings{ + EIP1559: false, + }, + SupportedTokens: map[rhea.Token]rhea.EVMBridgedToken{ + rhea.LINK: { + Token: gethcommon.HexToAddress("0xf97f4df75117a78c1A5a0DBb814Af92458539FB4"), + TokenPoolType: rhea.FeeTokenOnly, + }, + rhea.WETH: { + Token: gethcommon.HexToAddress("0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"), + TokenPoolType: rhea.FeeTokenOnly, + }, + }, + FeeTokens: []rhea.Token{rhea.LINK, rhea.WETH}, + WrappedNative: rhea.WETH, + Router: gethcommon.HexToAddress("0xE92634289A1841A979C11C2f618B33D376e4Ba85"), + ARM: gethcommon.HexToAddress("0xe06b0e8c4bd455153e8794ad7Ea8Ff5A14B64E4b"), + PriceRegistry: gethcommon.HexToAddress("0xeBec5Cb8651FCD0Fd86Bd1BBb8562f5028D5102E"), + //ARMProxy: gethcommon.HexToAddress("0xbf93cf175dad548528829d2558445eea200131c9"), +} + +var AVALANCHE_MAINNET = rhea.EVMChainConfig{ + EvmChainId: 43114, + GasSettings: rhea.EVMGasSettings{ + EIP1559: false, + }, + SupportedTokens: map[rhea.Token]rhea.EVMBridgedToken{ + rhea.LINK: { + Token: gethcommon.HexToAddress("0x5947BB275c521040051D82396192181b413227A3"), + TokenPoolType: rhea.FeeTokenOnly, + }, + rhea.WAVAX: { + Token: gethcommon.HexToAddress("0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7"), + TokenPoolType: rhea.FeeTokenOnly, + }, + }, + WrappedNative: rhea.WAVAX, + Router: gethcommon.HexToAddress("0x27F39D0af3303703750D4001fCc1844c6491563c"), + ARM: gethcommon.HexToAddress("0xdFD6C0dc67666DE3bB36b31eec5c7B1542A82C1E"), + PriceRegistry: gethcommon.HexToAddress("0x2d3b38E0a4DFFDad2A613f7760bE1683F272eA18"), +} + +var BSC_MAINNET = rhea.EVMChainConfig{ + EvmChainId: 56, + GasSettings: rhea.EVMGasSettings{ + EIP1559: false, + }, + SupportedTokens: map[rhea.Token]rhea.EVMBridgedToken{ + rhea.LINK: { + Token: gethcommon.HexToAddress("0x404460C6A5EdE2D891e8297795264fDe62ADBB75"), + TokenPoolType: rhea.FeeTokenOnly, + }, + rhea.WBNB: { + Token: gethcommon.HexToAddress("0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"), + TokenPoolType: rhea.FeeTokenOnly, + }, + }, + WrappedNative: rhea.WBNB, + Router: gethcommon.HexToAddress("0x536d7E53D0aDeB1F20E7c81fea45d02eC9dBD698"), + ARM: gethcommon.HexToAddress("0x3DB43b96B2625F4232e9Df900d464dd2c64C0021"), + PriceRegistry: gethcommon.HexToAddress("0x18C3D917D55Bc1784a3d4729AA3e2C1ecd662fFd"), +} + +var BASE_MAINNET = rhea.EVMChainConfig{ + EvmChainId: 8453, + GasSettings: rhea.EVMGasSettings{ + EIP1559: false, + }, + SupportedTokens: map[rhea.Token]rhea.EVMBridgedToken{ + rhea.LINK: { + Token: gethcommon.HexToAddress("0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196"), + Pool: gethcommon.HexToAddress("0x1568A4131760231712E59778DAB9EFE67911f4ff"), + TokenPoolType: rhea.LockRelease, + }, + rhea.WETH: { + Token: gethcommon.HexToAddress("0x4200000000000000000000000000000000000006"), + TokenPoolType: rhea.FeeTokenOnly, + }, + }, + WrappedNative: rhea.WETH, + Router: gethcommon.HexToAddress("0x673AA85efd75080031d44fcA061575d1dA427A28"), + ARM: gethcommon.HexToAddress("0x38660c8CC222c0192b635c2ac09687B4F25cCE5F"), + PriceRegistry: gethcommon.HexToAddress("0x1bA15c57c8b74cD32443D7583E7f6d7c638aCf46"), +} + +var POLYGON_MAINNET = rhea.EVMChainConfig{ + EvmChainId: 137, + GasSettings: rhea.EVMGasSettings{ + EIP1559: false, + }, + SupportedTokens: map[rhea.Token]rhea.EVMBridgedToken{ + rhea.LINK: { + Token: gethcommon.HexToAddress("0xb0897686c545045aFc77CF20eC7A532E3120E0F1"), + Pool: gethcommon.HexToAddress("0x086892015567fb8764d02c6845C85C25C8FcA389"), + TokenPoolType: rhea.LockRelease, + }, + rhea.WMATIC: { + Token: gethcommon.HexToAddress("0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270"), + TokenPoolType: rhea.FeeTokenOnly, + }, + }, + WrappedNative: rhea.WMATIC, + Router: gethcommon.HexToAddress("0x3C3D92629A02a8D95D5CB9650fe49C3544f69B43"), + ARM: gethcommon.HexToAddress("0xD7AcF65dA1E1f34b663aB199a474F209bF2b0523"), + PriceRegistry: gethcommon.HexToAddress("0x68590799942eed65f9f1fB2277B9F6584A5957B8"), +} + +var Mainnet_EthToAvx = rhea.EvmDeploymentConfig{ + ChainConfig: ETHEREUM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xd0B5Fc9790a6085b048b8Aa1ED26ca2b3b282CF2"), + OffRamp: gethcommon.HexToAddress("0x1C207dabc46902dF9028b27D6d301c3849b2D12c"), + CommitStore: gethcommon.HexToAddress("0x40c558575093eC1099CC21B020d9b8D13c74417F"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_EthToOptimism = rhea.EvmDeploymentConfig{ + ChainConfig: ETHEREUM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xCC19bC4D43d17eB6859F0d22BA300967C97780b0"), + OffRamp: gethcommon.HexToAddress("0x41627a90f2c6238f2BADAB72D5aB050B857fdAb5"), + CommitStore: gethcommon.HexToAddress("0x8bEFCa744c6f2b567b1863dcF055C593afdC11A0"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_EthToPolygon = rhea.EvmDeploymentConfig{ + ChainConfig: ETHEREUM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x0f27c8532457b66D6037141DEB0ed479Dad04B3c"), + OffRamp: gethcommon.HexToAddress("0xBDd822f3bC2EAB6818CfA3053107831D4E93fE72"), + CommitStore: gethcommon.HexToAddress("0x20718EfbC25Dba60FD51c2c81362b83f7C411A6D"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_EthToArbitrum = rhea.EvmDeploymentConfig{ + ChainConfig: ETHEREUM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x333f976915195ba9044fD0cd603cEcE936f6264e"), + OffRamp: gethcommon.HexToAddress("0x61135E701a2214C170c5F596D0067798FEfbaaE4"), + CommitStore: gethcommon.HexToAddress("0x3d3467e1036Ee25F6F4aa15e3Abf77443A23144C"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_EthToBSC = rhea.EvmDeploymentConfig{ + ChainConfig: ETHEREUM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xdF1d7FD22aC3aB5171E275796f123224039f3b24"), + OffRamp: gethcommon.HexToAddress("0xC7176620daf49A39a17FF9A6C2DE1eAA6033EE94"), + CommitStore: gethcommon.HexToAddress("0x7986C9892389854cAAbAC785ff18123B0070a5Fd"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_EthToBase = rhea.EvmDeploymentConfig{ + ChainConfig: ETHEREUM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xe2Eb229e88F56691e96bb98256707Bc62160FE73"), + OffRamp: gethcommon.HexToAddress("0xfF51C00546AA3d9051a4B96Ae81346E14709CD24"), + CommitStore: gethcommon.HexToAddress("0x2D1708ff2a15adbE313eA8C6035aA24d0FBA1c77"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_OptimismToEth = rhea.EvmDeploymentConfig{ + ChainConfig: OPTIMISM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xad1b1F2A6DD55627e3893B771A00Cd43F69DcE35"), + OffRamp: gethcommon.HexToAddress("0x032F957BfbB8C535a1b2048f8b4FA27E1F2018Fd"), + CommitStore: gethcommon.HexToAddress("0xa4D34ca38244F6c8AB640315d7257221408B6596"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_OptimismToPolygon = rhea.EvmDeploymentConfig{ + ChainConfig: OPTIMISM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xB188Bd6CC347299EEBb3aE93F57d90F580536B3A"), + OffRamp: gethcommon.HexToAddress("0x43a2DF743aAC63Eeb7DA430AC0BbfF0579311b84"), + CommitStore: gethcommon.HexToAddress("0xB6b7A8b59a3A0c7F73Bc3F6E8996a26736afAaC0"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_OptimismToBase = rhea.EvmDeploymentConfig{ + ChainConfig: OPTIMISM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xC40f7C8763e35fb64ab968Dc812C2d24c6f8404c"), + OffRamp: gethcommon.HexToAddress("0x704dF5613166F552B80ED5a27F3559DaA30eB8C8"), + CommitStore: gethcommon.HexToAddress("0x3224dB1d2F7aBa70469DEEE357472D2550fe7579"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_ArbitrumToEth = rhea.EvmDeploymentConfig{ + ChainConfig: ARBITRUM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x98dd9E9b8AE458225119Ab5B8c947A9d1cd0B648"), + OffRamp: gethcommon.HexToAddress("0x7b1f908ceBf41d5829D0134c7dfD6aa0f163C97d"), + CommitStore: gethcommon.HexToAddress("0x8E2adA223f8514C2E6E6Fb0877a19018B67256fF"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_ArbitrumToBase = rhea.EvmDeploymentConfig{ + ChainConfig: ARBITRUM_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x590791aA846eC4D2Aa2B8697Edeb6158F6054839"), + OffRamp: gethcommon.HexToAddress("0x7f3d6228c1a21FfeD859A5D5b67D25238D94E3CA"), + CommitStore: gethcommon.HexToAddress("0xCDDC8B12512F027887460C9B8f2C5B6F7CD4766e"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_PolygonToEth = rhea.EvmDeploymentConfig{ + ChainConfig: POLYGON_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xAE0e486Fa6577188d586A8e4c12360FB82E2a386"), + OffRamp: gethcommon.HexToAddress("0xa73bf37F78CD1629ff11Fa2B397CED39F49F6efe"), + CommitStore: gethcommon.HexToAddress("0x779cA414cAC21c76AbE9213861b1bE9187d495F9"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_PolygonToAvx = rhea.EvmDeploymentConfig{ + ChainConfig: POLYGON_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x47D945f7bbb814B65775a89c71F5D2229BE96CE9"), + OffRamp: gethcommon.HexToAddress("0xd59A3770c3e05479152b8581Ae0839f51b315E6A"), + CommitStore: gethcommon.HexToAddress("0xC2870bF94E24657f7f5E75cF458e391D23CD84B5"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_PolygonToBSC = rhea.EvmDeploymentConfig{ + ChainConfig: POLYGON_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xFFAacDD8FB3aF6aDa58AbABAEc549587C81351BF"), + OffRamp: gethcommon.HexToAddress("0x42d61CA7732f7b4323F93acB2F37E0D7BB35A602"), + CommitStore: gethcommon.HexToAddress("0x879F3DDABc596f731A732213aa2996cf6cfaC3c9"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_PolygonToOptimism = rhea.EvmDeploymentConfig{ + ChainConfig: POLYGON_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xD8E79DeF51a98b71c98b4C19D4A314341670AC36"), + OffRamp: gethcommon.HexToAddress("0x0e28F3ad2D2C0777334626cb9885DE3D38B2f019"), + CommitStore: gethcommon.HexToAddress("0xB9D0FF67631a3a8F36E1690C77eb0dB7a484D054"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_AvxToEth = rhea.EvmDeploymentConfig{ + ChainConfig: AVALANCHE_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x3D3817270db2b89e9F68bA27297fb4672082f942"), + OffRamp: gethcommon.HexToAddress("0x2BF2611a07e2cA880b814d53325e9b2ee0BbfD2f"), + CommitStore: gethcommon.HexToAddress("0x5eBE880c4d340892dA1b0F32798a7A28e17e6E65"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_AvxToPolygon = rhea.EvmDeploymentConfig{ + ChainConfig: AVALANCHE_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x2d306510FE83Cdb33Ff1658c71C181e9567F0009"), + OffRamp: gethcommon.HexToAddress("0xC65F15b8178c2Fd653183130C6E003d196C39eC2"), + CommitStore: gethcommon.HexToAddress("0xa9DC27fAc318fdDCa08E215ca157Fa5C7A832d80"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_AvxToBSC = rhea.EvmDeploymentConfig{ + ChainConfig: AVALANCHE_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x5c7AD3715257D20F2ae8596af55203373128BeE1"), + OffRamp: gethcommon.HexToAddress("0xD3db68744F64FE7C19CE91fF2C8F04a1363D2192"), + CommitStore: gethcommon.HexToAddress("0xB1528358cC3eb7Ed3A8402C19Fc436A9D06B7E84"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_BSCToEth = rhea.EvmDeploymentConfig{ + ChainConfig: BSC_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x1f17D464652f5Bd74a03446FeA20590CCfB3332D"), + OffRamp: gethcommon.HexToAddress("0xEcaa7473b57956647C8Cff5a909520e7A0A4a5f6"), + CommitStore: gethcommon.HexToAddress("0x9C68a868db2C27E9A7Ce43b73272A5d7ecFB5865"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_BSCToAvx = rhea.EvmDeploymentConfig{ + ChainConfig: BSC_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xf7c9B607cF09B4048f09C84236cE7f11DF6D6364"), + OffRamp: gethcommon.HexToAddress("0x006FC7533e472ee3AC7277BD600e086A0a8bBCa7"), + CommitStore: gethcommon.HexToAddress("0x70cc6b5314F37bB474b0BF3EcD8EC2C459F2e676"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_BSCToPolygon = rhea.EvmDeploymentConfig{ + ChainConfig: BSC_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xCAd54BE1A4Bc5e467cd5B53896eb692D9f6956cD"), + OffRamp: gethcommon.HexToAddress("0xdf6c2c8ac1A8545E172333bcC78B4b99958985c1"), + CommitStore: gethcommon.HexToAddress("0x7E523c0fe72300755B5b314F9CcCFbad021BD3c0"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_BSCToBase = rhea.EvmDeploymentConfig{ + ChainConfig: BSC_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xFdc26aA261655580f7ac413927983F664291Fd22"), + OffRamp: gethcommon.HexToAddress("0xfAAF6AC087CFb1355416f7f7828cb485d8e0605C"), + CommitStore: gethcommon.HexToAddress("0xc61a0A4C57F6CBFdF3D4c15E9cf556D63b318826"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_BaseToEth = rhea.EvmDeploymentConfig{ + ChainConfig: BASE_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xD44371bFDe87f2db3eA6Df242091351A06c2e181"), + OffRamp: gethcommon.HexToAddress("0x391B9B016C3bBA61F02e7ddd345130415908B9c7"), + CommitStore: gethcommon.HexToAddress("0x398d2164a3F61353B4619814A31cC74A7741612E"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_BaseToOptimism = rhea.EvmDeploymentConfig{ + ChainConfig: BASE_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0xe96563b8a6b4eA245e7fCEFaba813104FC889C6c"), + OffRamp: gethcommon.HexToAddress("0x10AB904E9F423C748577B9cf86dBb9F9814f581E"), + CommitStore: gethcommon.HexToAddress("0x01B21f0351638b309678C289FE112787882cC42E"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_BaseToArbitrum = rhea.EvmDeploymentConfig{ + ChainConfig: BASE_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x223953DB4E0A4C33bac1B17B0df1c22919984c60"), + OffRamp: gethcommon.HexToAddress("0x98b7a92f4C92b495f0652862eDed7b0aF1c8dD9A"), + CommitStore: gethcommon.HexToAddress("0x275DB63EDFc4414a2Ce04D69403575652ca8C053"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} + +var Mainnet_BaseToBSC = rhea.EvmDeploymentConfig{ + ChainConfig: BASE_MAINNET, + LaneConfig: rhea.EVMLaneConfig{ + OnRamp: gethcommon.HexToAddress("0x064f0960Ab66F44A5e6c7D2335b19De4Bb75AA0D"), + OffRamp: gethcommon.HexToAddress("0x12aaadFed6627174702F20CEA9eaC6C118Eea829"), + CommitStore: gethcommon.HexToAddress("0x96fC2dD483edd2719B9925a0503e080b4689A1D9"), + DeploySettings: rhea.LaneDeploySettings{ + DeployedAtBlock: 0, + }, + }, +} diff --git a/rhea/deployments/shared.go b/rhea/deployments/shared.go index 3a507dfd06..ce3dd8ce46 100644 --- a/rhea/deployments/shared.go +++ b/rhea/deployments/shared.go @@ -37,6 +37,15 @@ func getFinalityDepth(chain rhea.Chain) uint32 { rhea.BASEGoerli: 5, // We use finality tag rhea.AvaxAnzSubnet: 1, // devnet without normal block production rhea.BSCTestnet: 2, // We use finality tag + + // Mainnets + rhea.EthereumMainnet: 4, // We use finality tag + rhea.OptimismMainnet: 5, // We use finality tag + rhea.AvalancheMainnet: 35, // Implements strange finality tag, use 35 instead + rhea.PolygonMainnet: 550, // No finality tag available + rhea.ArbitrumMainnet: 5, // We use finality tag + rhea.BASEMainnet: 5, // We use finality tag + rhea.BSCMainnet: 2, // We use finality tag } if val, ok := finalityDepthPerChain[chain]; ok { @@ -58,6 +67,15 @@ func getOptimisticConfirmations(chain rhea.Chain) uint32 { rhea.BASEGoerli: 4, rhea.AvaxAnzSubnet: 1, // devnet without normal block production rhea.BSCTestnet: 2, + + // Mainnets + rhea.EthereumMainnet: 4, + rhea.OptimismMainnet: 4, + rhea.AvalancheMainnet: 1, + rhea.PolygonMainnet: 4, + rhea.ArbitrumMainnet: 1, + rhea.BASEMainnet: 4, + rhea.BSCMainnet: 2, } if val, ok := optimisticConfirmations[chain]; ok { @@ -79,6 +97,15 @@ func getMaxGasPrice(chain rhea.Chain) uint64 { rhea.AvaxAnzSubnet: 200e9, rhea.BASEGoerli: 200e9, rhea.BSCTestnet: 200e9, + + // Mainnets + rhea.EthereumMainnet: 200e9, + rhea.OptimismMainnet: 200e9, + rhea.AvalancheMainnet: 200e9, + rhea.PolygonMainnet: 200e9, + rhea.ArbitrumMainnet: 200e9, + rhea.BASEMainnet: 200e9, + rhea.BSCMainnet: 200e9, } if val, ok := maxGasPricePerChain[chain]; ok { diff --git a/rhea/models.go b/rhea/models.go index c4d87f7750..3b1af08b75 100644 --- a/rhea/models.go +++ b/rhea/models.go @@ -59,6 +59,15 @@ const ( OptimismGoerli Chain = "ethereum-testnet-goerli-optimism-1" BASEGoerli Chain = "ethereum-testnet-goerli-base-1" AvaxAnzSubnet Chain = "avalanche-testnet-anz-subnet" + + // Mainnets + EthereumMainnet Chain = "ethereum-mainnet" + AvalancheMainnet Chain = "avalanche-mainnet" + PolygonMainnet Chain = "polygon-mainnet" + BSCMainnet Chain = "binance_smart_chain-mainnet" + ArbitrumMainnet Chain = "arbitrum-1-mainnet" + OptimismMainnet Chain = "optimism-1-mainnet" + BASEMainnet Chain = "base-1-mainnet" ) func GetCCIPChainSelector(EVMChainId uint64) uint64 {