From 853b5a038028ae3fef77e814faebb4eb39008c1e Mon Sep 17 00:00:00 2001 From: sendra Date: Wed, 19 Feb 2025 10:37:02 +0100 Subject: [PATCH] feat: mantle instance contracts (#828) * feat: Add Mantle * feat: add mantle v3.3 pool contracts * fix: update stata address --------- Co-authored-by: Harsh Pandey --- safe.csv | 29 +++++ scripts/configs/governance/mantle.ts | 14 +++ scripts/configs/networks/mantle.ts | 1 + scripts/configs/pools/mantle.ts | 23 ++++ scripts/generateAddresses.ts | 4 + src/AaveV3Mantle.sol | 106 ++++++++++++++++++ src/GovernanceV3Mantle.sol | 25 +++++ src/MiscMantle.sol | 3 + src/ts/AaveAddressBook.ts | 2 + src/ts/AaveV3Mantle.ts | 71 ++++++++++++ src/ts/GovernanceV3Mantle.ts | 19 ++++ src/ts/MiscMantle.ts | 3 + tests/__snapshots__/verification.spec.ts.snap | 20 ++++ tests/cache/verified.json | 84 ++++++++++++++ tests/verification.spec.ts | 5 + 15 files changed, 409 insertions(+) create mode 100644 scripts/configs/governance/mantle.ts create mode 100644 scripts/configs/pools/mantle.ts create mode 100644 src/AaveV3Mantle.sol create mode 100644 src/GovernanceV3Mantle.sol create mode 100644 src/ts/AaveV3Mantle.ts create mode 100644 src/ts/GovernanceV3Mantle.ts diff --git a/safe.csv b/safe.csv index c219b20e..e0b6198a 100644 --- a/safe.csv +++ b/safe.csv @@ -1636,6 +1636,35 @@ address,name,chainId 0x8C05474F1f0161F71276677De0a2d8a347583c45,MiscPolygonZkEvm PROTOCOL_GUARDIAN,1101 0x2f6571d3Eb9a4e350C68C36bCD2afe39530078E2,MiscPolygonZkEvm PROXY_ADMIN,1101 0xd91d1331db4F436DaF47Ec9Dd86deCb8EEF946B4,MiscPolygonZkEvm TRANSPARENT_PROXY_FACTORY,1101 +0x9138E2cAdFEB23AFFdc0419F2912CaB8F135dba9,AaveV3Mantle AAVE_PROTOCOL_DATA_PROVIDER,5000 +0x70884634D0098782592111A2A6B8d223be31CB7b,AaveV3Mantle ACL_ADMIN,5000 +0x3e652E97ff339B73421f824F5b03d75b62F1Fb51,AaveV3Mantle ACL_MANAGER,5000 +0x29B8Edc8a5158e8eBD7Dea3473517AB079260a0b,AaveV3Mantle COLLECTOR,5000 +0xea9989569Cf2D860597b4d649c9A963c15ab84fa,AaveV3Mantle CONFIG_ENGINE,5000 +0xd8247C7926841337E8adf9fD9E87026992C45062,AaveV3Mantle DEFAULT_A_TOKEN_IMPL_REV_1,5000 +0xe875feF12DF97D763038F0Eac53962Ca36249eA6,AaveV3Mantle DEFAULT_INCENTIVES_CONTROLLER,5000 +0x294daB91f3539f5a74Ed995a59235eE62A14A345,AaveV3Mantle DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1,5000 +0x9D6aB154437A28CF202954e1176449c75e6D6c4B,AaveV3Mantle EMISSION_MANAGER,5000 +0x4A49351ED179b23af08523Af98a8ca95C712b9d9,AaveV3Mantle L2_ENCODER,5000 +0x6c23bAF050ec192afc0B967a93b83e6c5405df43,AaveV3Mantle ORACLE,5000 +0x2e770EF8AbdEcA83D9310E2d3B3c2FdfFF5fd85A,AaveV3Mantle POOL,5000 +0x2aB3580a805fB10CbAd567212C70e26C1B6769eC,AaveV3Mantle POOL_ADDRESSES_PROVIDER,5000 +0xe892E40C92c2E4D281Be59b2E6300F271d824E75,AaveV3Mantle POOL_ADDRESSES_PROVIDER_REGISTRY,5000 +0x4fDE7000ac23033B0FD420098B8a83A9Ff52c33C,AaveV3Mantle POOL_CONFIGURATOR,5000 +0xBeC519531F0E78BcDdB295242fA4EC5251B38574,AaveV3Mantle POOL_CONFIGURATOR_IMPL,5000 +0x589750BA8aF186cE5B55391B0b7148cAD43a1619,AaveV3Mantle POOL_IMPL,5000 +0x7cCC8a3DF66a2cDEa6c0629412378752Db5014EA,AaveV3Mantle STATA_FACTORY,5000 +0x01d678F1bbE148C96e7501F1Ac41661904F84F61,AaveV3Mantle UI_INCENTIVE_DATA_PROVIDER,5000 +0x4F6f44325828D2A40724A0a966F33d75cD1DF7c1,AaveV3Mantle UI_POOL_DATA_PROVIDER,5000 +0x4758213271BFdC72224A7a8742dC865fC97756e1,AaveV3Mantle WALLET_BALANCE_PROVIDER,5000 +0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520,AaveV3Mantle WETH_GATEWAY,5000 +0x1283C5015B1Fb5616FA3aCb0C18e6879a02869cB,GovernanceV3Mantle CROSS_CHAIN_CONTROLLER,5000 +0x70884634D0098782592111A2A6B8d223be31CB7b,GovernanceV3Mantle EXECUTOR_LVL_1,5000 +0x14816fC7f443A9C834d30eeA64daD20C4f56fBCD,GovernanceV3Mantle GOVERNANCE_GUARDIAN,5000 +0xb26670d2800DBB9cfCe2f2660FfDcA48C799c86d,GovernanceV3Mantle GRANULAR_GUARDIAN,5000 +0xF089f77173A3009A98c45f49D547BF714A7B1e01,GovernanceV3Mantle PAYLOADS_CONTROLLER,5000 +0x5e06b10B3b9c3E1c0996D2544A35B9839Be02922,GovernanceV3Mantle PC_DATA_HELPER,5000 +0x172867391d690Eb53896623DaD22208624230686,MiscMantle PROTOCOL_GUARDIAN,5000 0xEB0682d148e874553008730f0686ea89db7DA412,MiscMantle TRANSPARENT_PROXY_FACTORY,5000 0xd82a47fdebB5bf5329b09441C3DaB4b5df2153Ad,AaveV3Base AAVE_PROTOCOL_DATA_PROVIDER,8453 0x9390B1735def18560c509E2d0bc090E9d6BA257a,AaveV3Base ACL_ADMIN,8453 diff --git a/scripts/configs/governance/mantle.ts b/scripts/configs/governance/mantle.ts new file mode 100644 index 00000000..87888564 --- /dev/null +++ b/scripts/configs/governance/mantle.ts @@ -0,0 +1,14 @@ +import {ChainId} from '@bgd-labs/rpc-env'; +import {GovernanceConfig} from '../types'; + +export const governanceConfigMantle: GovernanceConfig = { + name: 'Mantle', + CHAIN_ID: ChainId.mantle, + ADDRESSES: { + CROSS_CHAIN_CONTROLLER: '0x1283C5015B1Fb5616FA3aCb0C18e6879a02869cB', + PAYLOADS_CONTROLLER: '0xF089f77173A3009A98c45f49D547BF714A7B1e01', + PC_DATA_HELPER: '0x5e06b10B3b9c3E1c0996D2544A35B9839Be02922', + GRANULAR_GUARDIAN: '0xb26670d2800DBB9cfCe2f2660FfDcA48C799c86d', + GOVERNANCE_GUARDIAN: '0x14816fC7f443A9C834d30eeA64daD20C4f56fBCD', + }, +}; diff --git a/scripts/configs/networks/mantle.ts b/scripts/configs/networks/mantle.ts index 7fcd3066..31245a31 100644 --- a/scripts/configs/networks/mantle.ts +++ b/scripts/configs/networks/mantle.ts @@ -6,5 +6,6 @@ export const mantleAddresses: NetworkAddresses = { chainId: ChainId.mantle, addresses: { TRANSPARENT_PROXY_FACTORY: '0xEB0682d148e874553008730f0686ea89db7DA412', + PROTOCOL_GUARDIAN: '0x172867391d690Eb53896623DaD22208624230686', }, }; diff --git a/scripts/configs/pools/mantle.ts b/scripts/configs/pools/mantle.ts new file mode 100644 index 00000000..028eb8e5 --- /dev/null +++ b/scripts/configs/pools/mantle.ts @@ -0,0 +1,23 @@ +import {ChainId} from '@bgd-labs/rpc-env'; +import {PoolConfig} from '../types'; + +export const mantleProtoV3: PoolConfig = { + name: 'Mantle', + chainId: ChainId.mantle, + POOL_ADDRESSES_PROVIDER: '0x2aB3580a805fB10CbAd567212C70e26C1B6769eC', + additionalAddresses: { + CONFIG_ENGINE: '0xea9989569Cf2D860597b4d649c9A963c15ab84fa', + POOL_ADDRESSES_PROVIDER_REGISTRY: '0xe892E40C92c2E4D281Be59b2E6300F271d824E75', + UI_INCENTIVE_DATA_PROVIDER: '0x01d678F1bbE148C96e7501F1Ac41661904F84F61', + UI_POOL_DATA_PROVIDER: '0x4F6f44325828D2A40724A0a966F33d75cD1DF7c1', + WALLET_BALANCE_PROVIDER: '0x4758213271BFdC72224A7a8742dC865fC97756e1', + WETH_GATEWAY: '0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520', + L2_ENCODER: '0x4A49351ED179b23af08523Af98a8ca95C712b9d9', + STATA_FACTORY: '0x7cCC8a3DF66a2cDEa6c0629412378752Db5014EA' + }, + initial: { + COLLECTOR: '0x29B8Edc8a5158e8eBD7Dea3473517AB079260a0b', + DEFAULT_A_TOKEN_IMPL: '0xd8247C7926841337E8adf9fD9E87026992C45062', + DEFAULT_VARIABLE_DEBT_TOKEN_IMPL: '0x294daB91f3539f5a74Ed995a59235eE62A14A345' + }, +}; diff --git a/scripts/generateAddresses.ts b/scripts/generateAddresses.ts index 74a0a5b7..4e48256f 100644 --- a/scripts/generateAddresses.ts +++ b/scripts/generateAddresses.ts @@ -28,6 +28,7 @@ import {polygonProtoV2, polygonProtoV3} from './configs/pools/polygon'; import {scrollSepoliaProtoV3, scrollProtoV3} from './configs/pools/scroll'; import {zkSyncProtoV3} from './configs/pools/zksync'; import {lineaProtoV3} from './configs/pools/linea'; +import {mantleProtoV3} from './configs/pools/mantle'; import {sonicProtoV3} from './configs/pools/sonic'; import {generateGovernanceLibrary} from './generator/governanceV3Generator'; import {generateProtocolV2Library} from './generator/protocolV2Generator'; @@ -71,6 +72,7 @@ import {generateGho} from './generator/ghoGenerator'; import {governanceConfigLinea} from './configs/governance/linea'; import {mantleAddresses} from './configs/networks/mantle'; import {sonicAddresses} from './configs/networks/sonic'; +import {governanceConfigMantle} from './configs/governance/mantle'; import {governanceConfigSonic} from './configs/governance/sonic'; async function main() { @@ -102,6 +104,7 @@ async function main() { governanceConfigPolygonZkEvm, governanceConfigZkSync, governanceConfigLinea, + governanceConfigMantle, governanceConfigSonic, ].map((config) => generateGovernanceLibrary(config)), ); @@ -143,6 +146,7 @@ async function main() { lidoEthereumMainnetProtoV3Pool, etherFiEthereumMainnetProtoV3Pool, lineaProtoV3, + mantleProtoV3, sonicProtoV3, ].map((config) => generateProtocolV3Library(config)), ); diff --git a/src/AaveV3Mantle.sol b/src/AaveV3Mantle.sol new file mode 100644 index 00000000..bf3eb2db --- /dev/null +++ b/src/AaveV3Mantle.sol @@ -0,0 +1,106 @@ +// AUTOGENERATED - MANUALLY CHANGES WILL BE REVERTED BY THE GENERATOR +// SPDX-License-Identifier: MIT +pragma solidity >=0.6.0; + +import {IPoolAddressesProvider, IPool, IPoolConfigurator, IAaveOracle, IPoolDataProvider, IACLManager} from './AaveV3.sol'; +import {ICollector} from './common/ICollector.sol'; +library AaveV3Mantle { + // https://mantlescan.xyz/address/0x2aB3580a805fB10CbAd567212C70e26C1B6769eC + IPoolAddressesProvider internal constant POOL_ADDRESSES_PROVIDER = + IPoolAddressesProvider(0x2aB3580a805fB10CbAd567212C70e26C1B6769eC); + + // https://mantlescan.xyz/address/0x2e770EF8AbdEcA83D9310E2d3B3c2FdfFF5fd85A + IPool internal constant POOL = IPool(0x2e770EF8AbdEcA83D9310E2d3B3c2FdfFF5fd85A); + + // https://mantlescan.xyz/address/0x4fDE7000ac23033B0FD420098B8a83A9Ff52c33C + IPoolConfigurator internal constant POOL_CONFIGURATOR = + IPoolConfigurator(0x4fDE7000ac23033B0FD420098B8a83A9Ff52c33C); + + // https://mantlescan.xyz/address/0x6c23bAF050ec192afc0B967a93b83e6c5405df43 + IAaveOracle internal constant ORACLE = IAaveOracle(0x6c23bAF050ec192afc0B967a93b83e6c5405df43); + + // https://mantlescan.xyz/address/0x70884634D0098782592111A2A6B8d223be31CB7b + address internal constant ACL_ADMIN = 0x70884634D0098782592111A2A6B8d223be31CB7b; + + // https://mantlescan.xyz/address/0x3e652E97ff339B73421f824F5b03d75b62F1Fb51 + IACLManager internal constant ACL_MANAGER = + IACLManager(0x3e652E97ff339B73421f824F5b03d75b62F1Fb51); + + // https://mantlescan.xyz/address/0x9138E2cAdFEB23AFFdc0419F2912CaB8F135dba9 + IPoolDataProvider internal constant AAVE_PROTOCOL_DATA_PROVIDER = + IPoolDataProvider(0x9138E2cAdFEB23AFFdc0419F2912CaB8F135dba9); + + // https://mantlescan.xyz/address/0x589750BA8aF186cE5B55391B0b7148cAD43a1619 + address internal constant POOL_IMPL = 0x589750BA8aF186cE5B55391B0b7148cAD43a1619; + + // https://mantlescan.xyz/address/0xBeC519531F0E78BcDdB295242fA4EC5251B38574 + address internal constant POOL_CONFIGURATOR_IMPL = 0xBeC519531F0E78BcDdB295242fA4EC5251B38574; + + // https://mantlescan.xyz/address/0xe875feF12DF97D763038F0Eac53962Ca36249eA6 + address internal constant DEFAULT_INCENTIVES_CONTROLLER = + 0xe875feF12DF97D763038F0Eac53962Ca36249eA6; + + // https://mantlescan.xyz/address/0x9D6aB154437A28CF202954e1176449c75e6D6c4B + address internal constant EMISSION_MANAGER = 0x9D6aB154437A28CF202954e1176449c75e6D6c4B; + + // https://mantlescan.xyz/address/0x29B8Edc8a5158e8eBD7Dea3473517AB079260a0b + ICollector internal constant COLLECTOR = ICollector(0x29B8Edc8a5158e8eBD7Dea3473517AB079260a0b); + + // https://mantlescan.xyz/address/0xd8247C7926841337E8adf9fD9E87026992C45062 + address internal constant DEFAULT_A_TOKEN_IMPL_REV_1 = 0xd8247C7926841337E8adf9fD9E87026992C45062; + + // https://mantlescan.xyz/address/0x294daB91f3539f5a74Ed995a59235eE62A14A345 + address internal constant DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = + 0x294daB91f3539f5a74Ed995a59235eE62A14A345; + + // https://mantlescan.xyz/address/0xea9989569Cf2D860597b4d649c9A963c15ab84fa + address internal constant CONFIG_ENGINE = 0xea9989569Cf2D860597b4d649c9A963c15ab84fa; + + // https://mantlescan.xyz/address/0xe892E40C92c2E4D281Be59b2E6300F271d824E75 + address internal constant POOL_ADDRESSES_PROVIDER_REGISTRY = + 0xe892E40C92c2E4D281Be59b2E6300F271d824E75; + + // https://mantlescan.xyz/address/0x01d678F1bbE148C96e7501F1Ac41661904F84F61 + address internal constant UI_INCENTIVE_DATA_PROVIDER = 0x01d678F1bbE148C96e7501F1Ac41661904F84F61; + + // https://mantlescan.xyz/address/0x4F6f44325828D2A40724A0a966F33d75cD1DF7c1 + address internal constant UI_POOL_DATA_PROVIDER = 0x4F6f44325828D2A40724A0a966F33d75cD1DF7c1; + + // https://mantlescan.xyz/address/0x4758213271BFdC72224A7a8742dC865fC97756e1 + address internal constant WALLET_BALANCE_PROVIDER = 0x4758213271BFdC72224A7a8742dC865fC97756e1; + + // https://mantlescan.xyz/address/0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520 + address internal constant WETH_GATEWAY = 0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520; + + // https://mantlescan.xyz/address/0x4A49351ED179b23af08523Af98a8ca95C712b9d9 + address internal constant L2_ENCODER = 0x4A49351ED179b23af08523Af98a8ca95C712b9d9; + + // https://mantlescan.xyz/address/0x7cCC8a3DF66a2cDEa6c0629412378752Db5014EA + address internal constant STATA_FACTORY = 0x7cCC8a3DF66a2cDEa6c0629412378752Db5014EA; +} +library AaveV3MantleAssets {} +library AaveV3MantleEModes { + uint8 internal constant NONE = 0; +} +library AaveV3MantleExternalLibraries { + // https://mantlescan.xyz/address/0x34039100cc9584Ae5D741d322e16d0d18CEE8770 + address internal constant FLASHLOAN_LOGIC = 0x34039100cc9584Ae5D741d322e16d0d18CEE8770; + + // https://mantlescan.xyz/address/0x62325c94E1c49dcDb5937726aB5D8A4c37bCAd36 + address internal constant BORROW_LOGIC = 0x62325c94E1c49dcDb5937726aB5D8A4c37bCAd36; + + // https://mantlescan.xyz/address/0x621Ef86D8A5C693a06295BC288B95C12D4CE4994 + address internal constant BRIDGE_LOGIC = 0x621Ef86D8A5C693a06295BC288B95C12D4CE4994; + + // https://mantlescan.xyz/address/0xC31d2362fAeD85dF79d0bec99693D0EB0Abd3f74 + address internal constant E_MODE_LOGIC = 0xC31d2362fAeD85dF79d0bec99693D0EB0Abd3f74; + + // https://mantlescan.xyz/address/0x4731bF01583F991278692E8727d0700a00A1fBBf + address internal constant LIQUIDATION_LOGIC = 0x4731bF01583F991278692E8727d0700a00A1fBBf; + + // https://mantlescan.xyz/address/0xf8C97539934ee66a67C26010e8e027D77E821B0C + address internal constant POOL_LOGIC = 0xf8C97539934ee66a67C26010e8e027D77E821B0C; + + // https://mantlescan.xyz/address/0x185477906B46D9b8DE0DEB73A1bBfb87b5b51BC3 + address internal constant SUPPLY_LOGIC = 0x185477906B46D9b8DE0DEB73A1bBfb87b5b51BC3; +} diff --git a/src/GovernanceV3Mantle.sol b/src/GovernanceV3Mantle.sol new file mode 100644 index 00000000..5bbfd7ce --- /dev/null +++ b/src/GovernanceV3Mantle.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.6.0; + +// AUTOGENERATED - MANUALLY CHANGES WILL BE REVERTED BY THE GENERATOR +import {IGovernanceCore, IPayloadsControllerCore, IDataWarehouse, IVotingStrategy} from './GovernanceV3.sol'; +library GovernanceV3Mantle { + // https://mantlescan.xyz/address/0x1283C5015B1Fb5616FA3aCb0C18e6879a02869cB + address internal constant CROSS_CHAIN_CONTROLLER = 0x1283C5015B1Fb5616FA3aCb0C18e6879a02869cB; + + // https://mantlescan.xyz/address/0xF089f77173A3009A98c45f49D547BF714A7B1e01 + IPayloadsControllerCore internal constant PAYLOADS_CONTROLLER = + IPayloadsControllerCore(0xF089f77173A3009A98c45f49D547BF714A7B1e01); + + // https://mantlescan.xyz/address/0x5e06b10B3b9c3E1c0996D2544A35B9839Be02922 + address internal constant PC_DATA_HELPER = 0x5e06b10B3b9c3E1c0996D2544A35B9839Be02922; + + // https://mantlescan.xyz/address/0xb26670d2800DBB9cfCe2f2660FfDcA48C799c86d + address internal constant GRANULAR_GUARDIAN = 0xb26670d2800DBB9cfCe2f2660FfDcA48C799c86d; + + // https://mantlescan.xyz/address/0x14816fC7f443A9C834d30eeA64daD20C4f56fBCD + address internal constant GOVERNANCE_GUARDIAN = 0x14816fC7f443A9C834d30eeA64daD20C4f56fBCD; + + // https://mantlescan.xyz/address/0x70884634D0098782592111A2A6B8d223be31CB7b + address internal constant EXECUTOR_LVL_1 = 0x70884634D0098782592111A2A6B8d223be31CB7b; +} diff --git a/src/MiscMantle.sol b/src/MiscMantle.sol index 47843d69..842667c4 100644 --- a/src/MiscMantle.sol +++ b/src/MiscMantle.sol @@ -5,4 +5,7 @@ pragma solidity >=0.6.0; library MiscMantle { // https://mantlescan.xyz/address/0xEB0682d148e874553008730f0686ea89db7DA412 address internal constant TRANSPARENT_PROXY_FACTORY = 0xEB0682d148e874553008730f0686ea89db7DA412; + + // https://mantlescan.xyz/address/0x172867391d690Eb53896623DaD22208624230686 + address internal constant PROTOCOL_GUARDIAN = 0x172867391d690Eb53896623DaD22208624230686; } diff --git a/src/ts/AaveAddressBook.ts b/src/ts/AaveAddressBook.ts index 4ede94ae..88faed23 100644 --- a/src/ts/AaveAddressBook.ts +++ b/src/ts/AaveAddressBook.ts @@ -13,6 +13,7 @@ export * as GovernanceV3Scroll from './GovernanceV3Scroll'; export * as GovernanceV3PolygonZkEvm from './GovernanceV3PolygonZkEvm'; export * as GovernanceV3ZkSync from './GovernanceV3ZkSync'; export * as GovernanceV3Linea from './GovernanceV3Linea'; +export * as GovernanceV3Mantle from './GovernanceV3Mantle'; export * as GovernanceV3Sonic from './GovernanceV3Sonic'; export * as AaveV1 from './AaveV1'; export * as AaveV2EthereumAMM from './AaveV2EthereumAMM'; @@ -45,6 +46,7 @@ export * as AaveV3Harmony from './AaveV3Harmony'; export * as AaveV3EthereumLido from './AaveV3EthereumLido'; export * as AaveV3EthereumEtherFi from './AaveV3EthereumEtherFi'; export * as AaveV3Linea from './AaveV3Linea'; +export * as AaveV3Mantle from './AaveV3Mantle'; export * as AaveV3Sonic from './AaveV3Sonic'; export * as MiscArbitrum from './MiscArbitrum'; export * as MiscArbitrumSepolia from './MiscArbitrumSepolia'; diff --git a/src/ts/AaveV3Mantle.ts b/src/ts/AaveV3Mantle.ts new file mode 100644 index 00000000..45de887e --- /dev/null +++ b/src/ts/AaveV3Mantle.ts @@ -0,0 +1,71 @@ +// AUTOGENERATED - MANUALLY CHANGES WILL BE REVERTED BY THE GENERATOR +// IPoolAddressesProvider https://mantlescan.xyz/address/0x2aB3580a805fB10CbAd567212C70e26C1B6769eC +export const POOL_ADDRESSES_PROVIDER = '0x2aB3580a805fB10CbAd567212C70e26C1B6769eC'; + +// IPool https://mantlescan.xyz/address/0x2e770EF8AbdEcA83D9310E2d3B3c2FdfFF5fd85A +export const POOL = '0x2e770EF8AbdEcA83D9310E2d3B3c2FdfFF5fd85A'; + +// IPoolConfigurator https://mantlescan.xyz/address/0x4fDE7000ac23033B0FD420098B8a83A9Ff52c33C +export const POOL_CONFIGURATOR = '0x4fDE7000ac23033B0FD420098B8a83A9Ff52c33C'; + +// IAaveOracle https://mantlescan.xyz/address/0x6c23bAF050ec192afc0B967a93b83e6c5405df43 +export const ORACLE = '0x6c23bAF050ec192afc0B967a93b83e6c5405df43'; + +// https://mantlescan.xyz/address/0x70884634D0098782592111A2A6B8d223be31CB7b +export const ACL_ADMIN = '0x70884634D0098782592111A2A6B8d223be31CB7b'; + +// IACLManager https://mantlescan.xyz/address/0x3e652E97ff339B73421f824F5b03d75b62F1Fb51 +export const ACL_MANAGER = '0x3e652E97ff339B73421f824F5b03d75b62F1Fb51'; + +// IPoolDataProvider https://mantlescan.xyz/address/0x9138E2cAdFEB23AFFdc0419F2912CaB8F135dba9 +export const AAVE_PROTOCOL_DATA_PROVIDER = '0x9138E2cAdFEB23AFFdc0419F2912CaB8F135dba9'; + +// https://mantlescan.xyz/address/0x589750BA8aF186cE5B55391B0b7148cAD43a1619 +export const POOL_IMPL = '0x589750BA8aF186cE5B55391B0b7148cAD43a1619'; + +// https://mantlescan.xyz/address/0xBeC519531F0E78BcDdB295242fA4EC5251B38574 +export const POOL_CONFIGURATOR_IMPL = '0xBeC519531F0E78BcDdB295242fA4EC5251B38574'; + +// https://mantlescan.xyz/address/0xe875feF12DF97D763038F0Eac53962Ca36249eA6 +export const DEFAULT_INCENTIVES_CONTROLLER = '0xe875feF12DF97D763038F0Eac53962Ca36249eA6'; + +// https://mantlescan.xyz/address/0x9D6aB154437A28CF202954e1176449c75e6D6c4B +export const EMISSION_MANAGER = '0x9D6aB154437A28CF202954e1176449c75e6D6c4B'; + +// ICollector https://mantlescan.xyz/address/0x29B8Edc8a5158e8eBD7Dea3473517AB079260a0b +export const COLLECTOR = '0x29B8Edc8a5158e8eBD7Dea3473517AB079260a0b'; + +// https://mantlescan.xyz/address/0xd8247C7926841337E8adf9fD9E87026992C45062 +export const DEFAULT_A_TOKEN_IMPL_REV_1 = '0xd8247C7926841337E8adf9fD9E87026992C45062'; + +// https://mantlescan.xyz/address/0x294daB91f3539f5a74Ed995a59235eE62A14A345 +export const DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = '0x294daB91f3539f5a74Ed995a59235eE62A14A345'; + +// https://mantlescan.xyz/address/0xea9989569Cf2D860597b4d649c9A963c15ab84fa +export const CONFIG_ENGINE = '0xea9989569Cf2D860597b4d649c9A963c15ab84fa'; + +// https://mantlescan.xyz/address/0xe892E40C92c2E4D281Be59b2E6300F271d824E75 +export const POOL_ADDRESSES_PROVIDER_REGISTRY = '0xe892E40C92c2E4D281Be59b2E6300F271d824E75'; + +// https://mantlescan.xyz/address/0x01d678F1bbE148C96e7501F1Ac41661904F84F61 +export const UI_INCENTIVE_DATA_PROVIDER = '0x01d678F1bbE148C96e7501F1Ac41661904F84F61'; + +// https://mantlescan.xyz/address/0x4F6f44325828D2A40724A0a966F33d75cD1DF7c1 +export const UI_POOL_DATA_PROVIDER = '0x4F6f44325828D2A40724A0a966F33d75cD1DF7c1'; + +// https://mantlescan.xyz/address/0x4758213271BFdC72224A7a8742dC865fC97756e1 +export const WALLET_BALANCE_PROVIDER = '0x4758213271BFdC72224A7a8742dC865fC97756e1'; + +// https://mantlescan.xyz/address/0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520 +export const WETH_GATEWAY = '0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520'; + +// https://mantlescan.xyz/address/0x4A49351ED179b23af08523Af98a8ca95C712b9d9 +export const L2_ENCODER = '0x4A49351ED179b23af08523Af98a8ca95C712b9d9'; + +// https://mantlescan.xyz/address/0x7cCC8a3DF66a2cDEa6c0629412378752Db5014EA +export const STATA_FACTORY = '0x7cCC8a3DF66a2cDEa6c0629412378752Db5014EA'; + +export const CHAIN_ID = 5000; +export const ASSETS = {} as const; +export const E_MODES = {} as const; +export const EXTERNAL_LIBRARIES = {} as const; diff --git a/src/ts/GovernanceV3Mantle.ts b/src/ts/GovernanceV3Mantle.ts new file mode 100644 index 00000000..5c38789b --- /dev/null +++ b/src/ts/GovernanceV3Mantle.ts @@ -0,0 +1,19 @@ +// https://mantlescan.xyz/address/0x1283C5015B1Fb5616FA3aCb0C18e6879a02869cB +export const CROSS_CHAIN_CONTROLLER = '0x1283C5015B1Fb5616FA3aCb0C18e6879a02869cB'; + +// IPayloadsControllerCore https://mantlescan.xyz/address/0xF089f77173A3009A98c45f49D547BF714A7B1e01 +export const PAYLOADS_CONTROLLER = '0xF089f77173A3009A98c45f49D547BF714A7B1e01'; + +// https://mantlescan.xyz/address/0x5e06b10B3b9c3E1c0996D2544A35B9839Be02922 +export const PC_DATA_HELPER = '0x5e06b10B3b9c3E1c0996D2544A35B9839Be02922'; + +// https://mantlescan.xyz/address/0xb26670d2800DBB9cfCe2f2660FfDcA48C799c86d +export const GRANULAR_GUARDIAN = '0xb26670d2800DBB9cfCe2f2660FfDcA48C799c86d'; + +// https://mantlescan.xyz/address/0x14816fC7f443A9C834d30eeA64daD20C4f56fBCD +export const GOVERNANCE_GUARDIAN = '0x14816fC7f443A9C834d30eeA64daD20C4f56fBCD'; + +// https://mantlescan.xyz/address/0x70884634D0098782592111A2A6B8d223be31CB7b +export const EXECUTOR_LVL_1 = '0x70884634D0098782592111A2A6B8d223be31CB7b'; + +export const CHAIN_ID = 5000; diff --git a/src/ts/MiscMantle.ts b/src/ts/MiscMantle.ts index d866f357..90e123c7 100644 --- a/src/ts/MiscMantle.ts +++ b/src/ts/MiscMantle.ts @@ -2,4 +2,7 @@ // https://mantlescan.xyz/address/0xEB0682d148e874553008730f0686ea89db7DA412 export const TRANSPARENT_PROXY_FACTORY = '0xEB0682d148e874553008730f0686ea89db7DA412'; +// https://mantlescan.xyz/address/0x172867391d690Eb53896623DaD22208624230686 +export const PROTOCOL_GUARDIAN = '0x172867391d690Eb53896623DaD22208624230686'; + export const CHAIN_ID = 5000; diff --git a/tests/__snapshots__/verification.spec.ts.snap b/tests/__snapshots__/verification.spec.ts.snap index b7ec94a5..d20d3aa7 100644 --- a/tests/__snapshots__/verification.spec.ts.snap +++ b/tests/__snapshots__/verification.spec.ts.snap @@ -266,6 +266,16 @@ exports[`verification > should have all contracts verified except for the known "value": "0x4ff50C17df0D1b788d021ACd85039810a1aA68A1", }, }, + { + "item": { + "chainId": 5000, + "path": [ + "AaveV3Mantle", + "STATA_FACTORY", + ], + "value": "0x7cCC8a3DF66a2cDEa6c0629412378752Db5014EA", + }, + }, { "item": { "chainId": 146, @@ -276,5 +286,15 @@ exports[`verification > should have all contracts verified except for the known "value": "0xFeeb6FE430B7523fEF2a38327241eE7153779535", }, }, + { + "item": { + "chainId": 5000, + "path": [ + "MiscMantle", + "PROTOCOL_GUARDIAN", + ], + "value": "0x172867391d690Eb53896623DaD22208624230686", + }, + }, ] `; diff --git a/tests/cache/verified.json b/tests/cache/verified.json index 6862fd28..bdd1ce74 100644 --- a/tests/cache/verified.json +++ b/tests/cache/verified.json @@ -5048,6 +5048,90 @@ "5000": { "0xEB0682d148e874553008730f0686ea89db7DA412": { "name": "TransparentProxyFactory" + }, + "0x7Fcb83a4a2577e30aaD0218B5A3C015b40b1209A": { + "name": "TransparentUpgradeableProxy" + }, + "0xB7691d5b74bF50Cc2CF55B29f9ba6f80FC3954a4": { + "name": "TransparentUpgradeableProxy" + }, + "0x74c3a74362dF4Dd1b9924a97C357B8772dC45000": { + "name": "PayloadsControllerDataHelper" + }, + "0xDA575812755ED6C5Ad33a859798d472C0495529A": { + "name": "GranularGuardianAccessControl" + }, + "0x9390B1735def18560c509E2d0bc090E9d6BA257a": { + "name": "Executor" + }, + "0x5e06b10B3b9c3E1c0996D2544A35B9839Be02922": { + "name": "PayloadsControllerDataHelper" + }, + "0xb26670d2800DBB9cfCe2f2660FfDcA48C799c86d": { + "name": "GranularGuardianAccessControl" + }, + "0x70884634D0098782592111A2A6B8d223be31CB7b": { + "name": "Executor" + }, + "0x2aB3580a805fB10CbAd567212C70e26C1B6769eC": { + "name": "PoolAddressesProvider" + }, + "0x2e770EF8AbdEcA83D9310E2d3B3c2FdfFF5fd85A": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x4fDE7000ac23033B0FD420098B8a83A9Ff52c33C": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x6c23bAF050ec192afc0B967a93b83e6c5405df43": { + "name": "AaveOracle" + }, + "0x3e652E97ff339B73421f824F5b03d75b62F1Fb51": { + "name": "ACLManager" + }, + "0x9138E2cAdFEB23AFFdc0419F2912CaB8F135dba9": { + "name": "AaveProtocolDataProvider" + }, + "0x589750BA8aF186cE5B55391B0b7148cAD43a1619": { + "name": "L2PoolInstance" + }, + "0xBeC519531F0E78BcDdB295242fA4EC5251B38574": { + "name": "PoolConfiguratorInstance" + }, + "0xe875feF12DF97D763038F0Eac53962Ca36249eA6": { + "name": "InitializableImmutableAdminUpgradeabilityProxy" + }, + "0x9D6aB154437A28CF202954e1176449c75e6D6c4B": { + "name": "EmissionManager" + }, + "0x29B8Edc8a5158e8eBD7Dea3473517AB079260a0b": { + "name": "TransparentUpgradeableProxy" + }, + "0xd8247C7926841337E8adf9fD9E87026992C45062": { + "name": "ATokenInstance" + }, + "0x294daB91f3539f5a74Ed995a59235eE62A14A345": { + "name": "VariableDebtTokenInstance" + }, + "0xea9989569Cf2D860597b4d649c9A963c15ab84fa": { + "name": "AaveV3ConfigEngine" + }, + "0xe892E40C92c2E4D281Be59b2E6300F271d824E75": { + "name": "PoolAddressesProviderRegistry" + }, + "0x01d678F1bbE148C96e7501F1Ac41661904F84F61": { + "name": "UiIncentiveDataProviderV3" + }, + "0x4F6f44325828D2A40724A0a966F33d75cD1DF7c1": { + "name": "UiPoolDataProviderV3" + }, + "0x4758213271BFdC72224A7a8742dC865fC97756e1": { + "name": "WalletBalanceProvider" + }, + "0xde35f7711295Dfd0CD8bd94d46f65b8Acb182520": { + "name": "WrappedTokenGatewayV3" + }, + "0x4A49351ED179b23af08523Af98a8ca95C712b9d9": { + "name": "L2Encoder" } }, "8453": { diff --git a/tests/verification.spec.ts b/tests/verification.spec.ts index a5184958..db4d1fa7 100644 --- a/tests/verification.spec.ts +++ b/tests/verification.spec.ts @@ -107,6 +107,11 @@ const knownErrors = { 43114: { '0x11979886A6dBAE27D7a72c49fCF3F23240D647bF': true, // very old contracts we know will never be verified }, + 5000: { + '0x14816fC7f443A9C834d30eeA64daD20C4f56fBCD': true, // gnosis safe, not sure why its not verified on etherscan (it is on routescan) + '0x1283C5015B1Fb5616FA3aCb0C18e6879a02869cB': true, // etherscan issue - not detecting that it's verified + '0xF089f77173A3009A98c45f49D547BF714A7B1e01': true, // etherscan issue - not detecting that it's verified + }, 146: { '0x0846C28Dd54DEA4Fd7Fb31bcc5EB81673D68c695': true, // etherscan issue - not detecting that it's verified },