diff --git a/config/gaszip.json b/config/gaszip.json index f28d8518e..05d8188a4 100644 --- a/config/gaszip.json +++ b/config/gaszip.json @@ -30,6 +30,7 @@ "hyperevm": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "hemi": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "immutablezkevm": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", + "injective": "0x9E22ebeC84c7e4C4bD6D4aE7FF6f4D436D6D8390", "ink": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "jovay": "0x9E22ebeC84c7e4C4bD6D4aE7FF6f4D436D6D8390", "kaia": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", diff --git a/config/global.json b/config/global.json index ee86a8bd9..b9ea086c3 100644 --- a/config/global.json +++ b/config/global.json @@ -63,7 +63,6 @@ "corePeriphery": [ "ERC20Proxy", "Executor", - "FeeCollector", "FeeForwarder", "GasZipPeriphery", "LiFiTimelockController", diff --git a/config/networks.json b/config/networks.json index ea8700acd..440599247 100644 --- a/config/networks.json +++ b/config/networks.json @@ -612,6 +612,26 @@ "deployedWithSolcVersion": "0.8.17", "create3Factory": "0x93FEC2C00BfE902F733B57c5a6CeeD7CD1384AE1" }, + "injective": { + "name": "injective", + "chainId": 1776, + "nativeAddress": "0x0000000000000000000000000000000000000000", + "nativeCurrency": "INJ", + "wrappedNativeAddress": "0x0000000088827d2d103ee2d9a6b781773ae03ffb", + "status": "active", + "type": "mainnet", + "rpcUrl": "https://sentry.evm-rpc.injective.network", + "verificationType": "blockscout", + "explorerUrl": "https://blockscout.injective.network", + "explorerApiUrl": "https://blockscout-api.injective.network/api/", + "multicallAddress": "0xcA11bde05977b3631167028862bE2a173976CA11", + "safeAddress": "0xA14dD3d7CA72aE2d08055813a2DEa4CaC40910B6", + "gasZipChainId": 527, + "isZkEVM": false, + "deployedWithEvmVersion": "cancun", + "deployedWithSolcVersion": "0.8.28", + "create3Factory": "0x68b068F7869CCE4FB95E0504096Ae336dd4ae7F6" + }, "ink": { "name": "ink", "chainId": 57073, @@ -1580,4 +1600,4 @@ "deployedWithSolcVersion": "", "create3Factory": "" } -} +} \ No newline at end of file diff --git a/config/permit2Proxy.json b/config/permit2Proxy.json index 8e9c7e43f..30a50598e 100644 --- a/config/permit2Proxy.json +++ b/config/permit2Proxy.json @@ -32,6 +32,7 @@ "hyperevm": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "ink": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "immutablezkevm": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "injective": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "jovay": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "kaia": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "katana": "0x000000000022D473030F116dDEE9F6B43aC78BA3", diff --git a/config/polymercctp.json b/config/polymercctp.json index 9690a8fc6..f4e9d9b06 100644 --- a/config/polymercctp.json +++ b/config/polymercctp.json @@ -27,6 +27,7 @@ { "chainId": 98866, "domainId": 22 }, { "chainId": 5042, "domainId": 26 }, { "chainId": 1201081091099710, "domainId": 27 }, + { "chainId": 1776, "domainId": 29 }, { "chainId": 2818, "domainId": 30 }, { "chainId": 1672, "domainId": 31 }, { "chainId": 25, "domainId": 32 } @@ -71,6 +72,11 @@ "usdc": "0xb88339CB7199b77E23DB6E890353E22632Ba630f", "polymerFeeReceiver": "0x64ED4dE33769349F8C4bD6e8d1866f19D29bef79" }, + "injective": { + "tokenMessengerV2": "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d", + "usdc": "0xa00C59fF5a080D2b954d0c75e46E22a0c371235a", + "polymerFeeReceiver": "0x64ED4dE33769349F8C4bD6e8d1866f19D29bef79" + }, "ink": { "tokenMessengerV2": "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d", "usdc": "0x2D270e6886d130D724215A266106e6832161EAEd", diff --git a/config/stargateV2.json b/config/stargateV2.json index 4f99736c6..f7cb502ba 100644 --- a/config/stargateV2.json +++ b/config/stargateV2.json @@ -28,6 +28,7 @@ "hemi": "0x6F475642a6e85809B1c36Fa62763669b1b48DD5B", "gnosis": "0x1a44076050125825900e736c501f859c50fE728c", "gravity": "0x1a44076050125825900e736c501f859c50fE728c", + "injective": "0x6F475642a6e85809B1c36Fa62763669b1b48DD5B", "ink": "0xca29f3A6f966Cb2fc0dE625F8f325c0C46dbE958", "kaia": "0x1a44076050125825900e736c501f859c50fE728c", "linea": "0x1a44076050125825900e736c501f859c50fE728c", @@ -86,6 +87,7 @@ "gnosis": "0xAf368c91793CB22739386DFCbBb2F1A9e4bCBeBf", "gravity": "0x9c2dc7377717603eB92b2655c5f2E7997a4945BD", "hemi": "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6", + "injective": "0xAf368c91793CB22739386DFCbBb2F1A9e4bCBeBf", "ink": "0x45f1A95A4D3f3836523F5c83673c797f4d4d263B", "kaia": "0x16F3F98D82d965988E6853681fD578F4d719A1c0", "linea": "0x5f688f563dc16590e570f97b542fa87931af2fed", diff --git a/config/whitelist.json b/config/whitelist.json index c2665ffb8..dbedc02b6 100644 --- a/config/whitelist.json +++ b/config/whitelist.json @@ -7656,6 +7656,64 @@ ] } ], + "injective": [ + { + "name": "FeeForwarder", + "address": "0x2C7475cBe7A9813dbe93C94297491ED7bD86cFab", + "selectors": [ + { + "selector": "0x0e8ae67f", + "signature": "forwardNativeFees((address,uint256)[])" + }, + { + "selector": "0x332d746b", + "signature": "forwardERC20Fees(address,(address,uint256)[])" + } + ] + }, + { + "name": "GasZipPeriphery", + "address": "0x1Bad89ee4cA153C4E592e0Bf2f2A256fa9beDC42", + "selectors": [ + { + "selector": "0x8b71ae6c", + "signature": "depositToGasZipERC20((address,address,address,address,uint256,bytes,bool),(bytes32,uint256))" + }, + { + "selector": "0xc4af5a74", + "signature": "depositToGasZipNative((bytes32,uint256),uint256)" + } + ] + }, + { + "name": "TokenWrapper", + "address": "0x1c9633Cf7E22C36e6b9EAE03CdA5F4042d746683", + "selectors": [ + { + "selector": "0x3ccfd60b", + "signature": "withdraw()" + }, + { + "selector": "0xd0e30db0", + "signature": "deposit()" + } + ] + }, + { + "name": "OutputValidator", + "address": "0x1299f7F941745377a2091AF51557e8De04B96B10", + "selectors": [ + { + "selector": "0x27444dab", + "signature": "validateERC20Output(address,uint256,address)" + }, + { + "selector": "0x5d865df2", + "signature": "validateNativeOutput(uint256,address)" + } + ] + } + ], "ink": [ { "name": "FeeCollector", @@ -11737,4 +11795,4 @@ } ] } -} +} \ No newline at end of file diff --git a/deployments/injective.diamond.json b/deployments/injective.diamond.json new file mode 100644 index 000000000..76c6792d9 --- /dev/null +++ b/deployments/injective.diamond.json @@ -0,0 +1,84 @@ +{ + "LiFiDiamond": { + "Facets": { + "0xd62b8AC8568b0B947494F0D1d6f829D159577faf": { + "Name": "DiamondCutFacet", + "Version": "1.0.0" + }, + "0xeaE5Fbe2303D33B45290e49A6f7996a81cA18c3a": { + "Name": "DiamondLoupeFacet", + "Version": "1.0.0" + }, + "0xBb2A38a1f10f45453DEe9607a6479e0782b4B946": { + "Name": "AccessManagerFacet", + "Version": "1.0.0" + }, + "0x15cF475Eb7462F8d09a3B0a112624B263f314952": { + "Name": "CalldataVerificationFacet", + "Version": "1.3.1" + }, + "0x822C8b5e31948437268c4B55CB48abA660852a97": { + "Name": "EmergencyPauseFacet", + "Version": "1.0.1" + }, + "0xce42dEd9C024240D4EC5Fc5eD2F45D542b78Faf6": { + "Name": "GenericSwapFacet", + "Version": "1.0.0" + }, + "0x81320d8FC37A776D99c4818FE10d7d516aF8B355": { + "Name": "GenericSwapFacetV3", + "Version": "2.0.0" + }, + "0xD63D886315b1Cdc522d64c65a9927cF7774316E6": { + "Name": "LiFiIntentEscrowFacet", + "Version": "1.1.2" + }, + "0x3aeF2be30DDe6fAf277DB5DFCd72749497D5B077": { + "Name": "OwnershipFacet", + "Version": "1.0.0" + }, + "0xcc267357b6666a3dc2009D368C9Ade4C533a5637": { + "Name": "PeripheryRegistryFacet", + "Version": "1.0.0" + }, + "0xFFfA02772afae9917A8a6bE1E3e66D2Ea7719D52": { + "Name": "WhitelistManagerFacet", + "Version": "1.1.0" + }, + "0x17C19CbDe88235E9056469A21110AAb731a63538": { + "Name": "WithdrawFacet", + "Version": "1.0.0" + }, + "0x2bE73b7851482428F28c8D0206667dFC74312400": { + "Name": "StargateFacetV2", + "Version": "1.0.1" + }, + "0xc9F61AD990f4Ede27fB5573ACb5a28bb2A49B8C8": { + "Name": "PolymerCCTPFacet", + "Version": "3.0.0" + }, + "0x7bA264eDA8c49e96555321BCA1fE72efBb95b33D": { + "Name": "GasZipFacet", + "Version": "2.0.5" + } + }, + "Periphery": { + "ERC20Proxy": "0x408F530786Fa2f8B638AA5B22BFd701cD2c9f45f", + "Executor": "0x60A5bBc9F40B79d341DB3f17f145f6b3897c9661", + "FeeCollector": "", + "FeeForwarder": "0x2C7475cBe7A9813dbe93C94297491ED7bD86cFab", + "GasZipPeriphery": "0x1Bad89ee4cA153C4E592e0Bf2f2A256fa9beDC42", + "LiFiDEXAggregator": "", + "LidoWrapper": "", + "OutputValidator": "0x1299f7F941745377a2091AF51557e8De04B96B10", + "Patcher": "", + "Permit2Proxy": "0x263c63c1D8901c14520474110CE88CfADae0CfE9", + "ReceiverAcrossV3": "", + "ReceiverAcrossV4": "", + "ReceiverChainflip": "", + "ReceiverOIF": "", + "ReceiverStargateV2": "0x360cAEBad9699A334DFE5465eaDB8D0730a9a3c6", + "TokenWrapper": "0x1c9633Cf7E22C36e6b9EAE03CdA5F4042d746683" + } + } +} diff --git a/deployments/injective.json b/deployments/injective.json new file mode 100644 index 000000000..74257fb0a --- /dev/null +++ b/deployments/injective.json @@ -0,0 +1,27 @@ +{ + "AccessManagerFacet": "0xBb2A38a1f10f45453DEe9607a6479e0782b4B946", + "CalldataVerificationFacet": "0x15cF475Eb7462F8d09a3B0a112624B263f314952", + "DiamondCutFacet": "0xd62b8AC8568b0B947494F0D1d6f829D159577faf", + "DiamondLoupeFacet": "0xeaE5Fbe2303D33B45290e49A6f7996a81cA18c3a", + "EmergencyPauseFacet": "0x822C8b5e31948437268c4B55CB48abA660852a97", + "GenericSwapFacet": "0xce42dEd9C024240D4EC5Fc5eD2F45D542b78Faf6", + "GenericSwapFacetV3": "0x81320d8FC37A776D99c4818FE10d7d516aF8B355", + "LiFiIntentEscrowFacet": "0xD63D886315b1Cdc522d64c65a9927cF7774316E6", + "OwnershipFacet": "0x3aeF2be30DDe6fAf277DB5DFCd72749497D5B077", + "PeripheryRegistryFacet": "0xcc267357b6666a3dc2009D368C9Ade4C533a5637", + "WhitelistManagerFacet": "0xFFfA02772afae9917A8a6bE1E3e66D2Ea7719D52", + "WithdrawFacet": "0x17C19CbDe88235E9056469A21110AAb731a63538", + "LiFiDiamond": "0xeCeC3970Ca674278DA8D9B1c484ACaF6B20181F5", + "ERC20Proxy": "0x408F530786Fa2f8B638AA5B22BFd701cD2c9f45f", + "Executor": "0x60A5bBc9F40B79d341DB3f17f145f6b3897c9661", + "FeeForwarder": "0x2C7475cBe7A9813dbe93C94297491ED7bD86cFab", + "TokenWrapper": "0x1c9633Cf7E22C36e6b9EAE03CdA5F4042d746683", + "LiFiTimelockController": "0x7a708D4522B707EbA89e85Ca1279584C28F0f872", + "OutputValidator": "0x1299f7F941745377a2091AF51557e8De04B96B10", + "Permit2Proxy": "0x263c63c1D8901c14520474110CE88CfADae0CfE9", + "StargateFacetV2": "0x2bE73b7851482428F28c8D0206667dFC74312400", + "ReceiverStargateV2": "0x360cAEBad9699A334DFE5465eaDB8D0730a9a3c6", + "PolymerCCTPFacet": "0xc9F61AD990f4Ede27fB5573ACb5a28bb2A49B8C8", + "GasZipPeriphery": "0x1Bad89ee4cA153C4E592e0Bf2f2A256fa9beDC42", + "GasZipFacet": "0x7bA264eDA8c49e96555321BCA1fE72efBb95b33D" +} diff --git a/foundry.toml b/foundry.toml index c65f9eb9c..7356129c3 100644 --- a/foundry.toml +++ b/foundry.toml @@ -96,6 +96,7 @@ gnosis = "${ETH_NODE_URI_GNOSIS}" gravity = "${ETH_NODE_URI_GRAVITY}" etherlink = "${ETH_NODE_URI_ETHERLINK}" immutablezkevm = "${ETH_NODE_URI_IMMUTABLEZKEVM}" +injective = "${ETH_NODE_URI_INJECTIVE}" jovay = "${ETH_NODE_URI_JOVAY}" ink = "${ETH_NODE_URI_INK}" kaia = "${ETH_NODE_URI_KAIA}" @@ -178,6 +179,7 @@ hemi = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.hemi. hyperevm = { key = "${MAINNET_ETHERSCAN_API_KEY}", url = "https://api.etherscan.io/v2/api?chainid=999", chain = "999" } etherlink = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.etherlink.com/api", chain = "42793", verifier = "blockscout" } ink = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.inkonchain.com/api", verifier = "blockscout", chain = "57073"} +injective = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://blockscout-api.injective.network/api", verifier = "blockscout", chain = "1776"} jovay = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.jovay.io/api", chain = "5734951"} immutablezkevm = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://explorer.immutable.com/api", chain = "13371", verifier = "blockscout" } kaia = { key = "${NO_ETHERSCAN_API_KEY_REQUIRED}", url = "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/kaia", chain = "8217", verifier = "oklink" } diff --git a/script/deploy/_targetState.json b/script/deploy/_targetState.json index 3c1f7b623..da52daabc 100644 --- a/script/deploy/_targetState.json +++ b/script/deploy/_targetState.json @@ -2445,5 +2445,35 @@ "LiFiIntentEscrowFacetV2": "1.0.0" } } + }, + "injective": { + "production": { + "LiFiDiamond": { + "AccessManagerFacet": "1.0.0", + "CalldataVerificationFacet": "1.3.1", + "DiamondCutFacet": "1.0.0", + "DiamondLoupeFacet": "1.0.0", + "EmergencyPauseFacet": "1.0.1", + "GasZipFacet": "2.0.5", + "GenericSwapFacet": "1.0.0", + "GenericSwapFacetV3": "2.0.0", + "LiFiIntentEscrowFacet": "1.1.2", + "LiFiTimelockController": "1.0.1", + "OwnershipFacet": "1.0.0", + "PeripheryRegistryFacet": "1.0.0", + "StargateFacetV2": "1.0.1", + "WhitelistManagerFacet": "1.1.0", + "WithdrawFacet": "1.0.0", + "LiFiDiamond": "1.0.0", + "ERC20Proxy": "1.2.0", + "Executor": "2.1.0", + "FeeForwarder": "1.0.0", + "GasZipPeriphery": "1.0.2", + "OutputValidator": "1.0.0", + "Permit2Proxy": "1.0.4", + "ReceiverStargateV2": "1.1.0", + "TokenWrapper": "1.2.1" + } + } } } diff --git a/script/deploy/resources/deployRequirements.json b/script/deploy/resources/deployRequirements.json index 640c714a9..185b7744f 100644 --- a/script/deploy/resources/deployRequirements.json +++ b/script/deploy/resources/deployRequirements.json @@ -683,11 +683,6 @@ "keyInConfigFile": ".refundWallet", "allowToDeployWithZeroAddress": "false" } - }, - "contractAddresses": { - "LiFiDEXAggregator": { - "allowToDeployWithZeroAddress": "false" - } } }, "ChainflipFacet": {