// AUTOGENERATED - MANUAL CHANGES WILL BE REVERTED BY THE GENERATOR // SPDX-License-Identifier: MIT pragma solidity >=0.6.0; import {IHub, IHubConfigurator, ISpoke, ISpokeConfigurator, ITokenizationSpoke, ITreasurySpoke, IAaveOracle, IConfigPositionManager, IGiverPositionManager, ITakerPositionManager, INativeTokenGateway, ISignatureGateway, IAaveV4ConfigEngine, IAccessManagerEnumerable, IBasicInterestRateStrategy, PositionManagers} from './AaveV4.sol'; library AaveV4Arc { // https://explorer.arc.io/address/0x24761DB265998ba1D38E8a29031cF72C2CeF3A7D IAccessManagerEnumerable internal constant ACCESS_MANAGER = IAccessManagerEnumerable(0x24761DB265998ba1D38E8a29031cF72C2CeF3A7D); // https://explorer.arc.io/address/0x419cF771E08d927b23F2F1691968C5135Ad8B659 IHubConfigurator internal constant HUB_CONFIGURATOR = IHubConfigurator(0x419cF771E08d927b23F2F1691968C5135Ad8B659); // https://explorer.arc.io/address/0x102610d2A7Fd87A85ad8fdCfC78879be8Fd40576 ISpokeConfigurator internal constant SPOKE_CONFIGURATOR = ISpokeConfigurator(0x102610d2A7Fd87A85ad8fdCfC78879be8Fd40576); // https://explorer.arc.io/address/0xcbd466CB8709D9f6dd8312668B4dbef394cE0e15 ITreasurySpoke internal constant TREASURY_SPOKE = ITreasurySpoke(0xcbd466CB8709D9f6dd8312668B4dbef394cE0e15); // https://explorer.arc.io/address/0x0A3af96f72b1B52c9BB9778FcD839154c2599371 IAaveV4ConfigEngine internal constant CONFIG_ENGINE = IAaveV4ConfigEngine(0x0A3af96f72b1B52c9BB9778FcD839154c2599371); // https://explorer.arc.io/address/0x73adb67D5De247D40152Cf06aC16174b3d87D2c8 address internal constant RISK_STEWARD = 0x73adb67D5De247D40152Cf06aC16174b3d87D2c8; // https://explorer.arc.io/address/0xa3b6DA2C0853357dfd5bd0ae1A4f07dDB52682d1 address internal constant RISK_COUNCIL = 0xa3b6DA2C0853357dfd5bd0ae1A4f07dDB52682d1; } library AaveV4ArcHubs { // https://explorer.arc.io/address/0x17288dfc86205301064577b98B02b81017e6F79C IHub internal constant CORE_HUB = IHub(0x17288dfc86205301064577b98B02b81017e6F79C); } library AaveV4ArcSpokes { // https://explorer.arc.io/address/0xcbd466CB8709D9f6dd8312668B4dbef394cE0e15 ITreasurySpoke internal constant TREASURY_SPOKE = ITreasurySpoke(0xcbd466CB8709D9f6dd8312668B4dbef394cE0e15); // https://explorer.arc.io/address/0xB843bdC3a87A05E77E07Df9FE48928b3A34b134d ISpoke internal constant MAIN_SPOKE = ISpoke(0xB843bdC3a87A05E77E07Df9FE48928b3A34b134d); // https://explorer.arc.io/address/0x6ffE98F3422041236c19923EDB949F18A69e8A09 IAaveOracle internal constant MAIN_SPOKE_ORACLE = IAaveOracle(0x6ffE98F3422041236c19923EDB949F18A69e8A09); // https://explorer.arc.io/address/0x4164EBCAF74670aa74C8D4F59de6157c0780F1bB ISpoke internal constant FOREX_SPOKE = ISpoke(0x4164EBCAF74670aa74C8D4F59de6157c0780F1bB); // https://explorer.arc.io/address/0x2abd2B5C30D649273B3b762b0E1758BaC8F87cFE IAaveOracle internal constant FOREX_SPOKE_ORACLE = IAaveOracle(0x2abd2B5C30D649273B3b762b0E1758BaC8F87cFE); // https://explorer.arc.io/address/0x18Dde098d25722C14e09842a6Fa7db6aAFC395a2 ISpoke internal constant USDC_MAPLE_ESPOKE = ISpoke(0x18Dde098d25722C14e09842a6Fa7db6aAFC395a2); // https://explorer.arc.io/address/0x1Dd77518EC8A68E91C0656660d7972e301Fc00A4 IAaveOracle internal constant USDC_MAPLE_ESPOKE_ORACLE = IAaveOracle(0x1Dd77518EC8A68E91C0656660d7972e301Fc00A4); } library AaveV4ArcSpokePriceFeeds { // https://explorer.arc.io/address/0x729cFd10FC10A908aE9F9b35245cB6Ee14D44D6B address internal constant MAIN_SPOKE_USDC_PRICE_FEED = 0x729cFd10FC10A908aE9F9b35245cB6Ee14D44D6B; // https://explorer.arc.io/address/0x3b381530cF032F1B2dc1974D228c8BD70bF41914 address internal constant MAIN_SPOKE_EURC_PRICE_FEED = 0x3b381530cF032F1B2dc1974D228c8BD70bF41914; // https://explorer.arc.io/address/0x7777547914e03BCbB04Ae034942765a0dbb26aE3 address internal constant MAIN_SPOKE_cirBTC_PRICE_FEED = 0x7777547914e03BCbB04Ae034942765a0dbb26aE3; // https://explorer.arc.io/address/0x2c7Dc3567b3490f53A8d32625d766834dd023F60 address internal constant MAIN_SPOKE_WETH_PRICE_FEED = 0x2c7Dc3567b3490f53A8d32625d766834dd023F60; // https://explorer.arc.io/address/0x729cFd10FC10A908aE9F9b35245cB6Ee14D44D6B address internal constant FOREX_SPOKE_USDC_PRICE_FEED = 0x729cFd10FC10A908aE9F9b35245cB6Ee14D44D6B; // https://explorer.arc.io/address/0x3b381530cF032F1B2dc1974D228c8BD70bF41914 address internal constant FOREX_SPOKE_EURC_PRICE_FEED = 0x3b381530cF032F1B2dc1974D228c8BD70bF41914; // https://explorer.arc.io/address/0xAFcab475C68D931C3DC1035eFb50df2d29e003C3 address internal constant USDC_MAPLE_ESPOKE_syrupUSDC_PRICE_FEED = 0xAFcab475C68D931C3DC1035eFb50df2d29e003C3; // https://explorer.arc.io/address/0x729cFd10FC10A908aE9F9b35245cB6Ee14D44D6B address internal constant USDC_MAPLE_ESPOKE_USDC_PRICE_FEED = 0x729cFd10FC10A908aE9F9b35245cB6Ee14D44D6B; } library AaveV4ArcTokenizationSpokes { // https://explorer.arc.io/address/0x42EAB64310E1D1c66b4d8aF7C9C4ce253885eB83 ITokenizationSpoke internal constant CORE_USDC_TOKENIZATION_SPOKE = ITokenizationSpoke(0x42EAB64310E1D1c66b4d8aF7C9C4ce253885eB83); // https://explorer.arc.io/address/0x5A10b1533C0f1f181DC8a428BF5Eb58B08fc8d2c ITokenizationSpoke internal constant CORE_EURC_TOKENIZATION_SPOKE = ITokenizationSpoke(0x5A10b1533C0f1f181DC8a428BF5Eb58B08fc8d2c); // https://explorer.arc.io/address/0x83D364DbAf4e7018E0b87dB3FaB3d1d8535a6F13 ITokenizationSpoke internal constant CORE_cirBTC_TOKENIZATION_SPOKE = ITokenizationSpoke(0x83D364DbAf4e7018E0b87dB3FaB3d1d8535a6F13); // https://explorer.arc.io/address/0xe8B890fea6e1E3915A337eD3136487F2f4f7e59D ITokenizationSpoke internal constant CORE_WETH_TOKENIZATION_SPOKE = ITokenizationSpoke(0xe8B890fea6e1E3915A337eD3136487F2f4f7e59D); } library AaveV4ArcIRStrategies { // https://explorer.arc.io/address/0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D IBasicInterestRateStrategy internal constant CORE_USDC_IR_STRATEGY = IBasicInterestRateStrategy(0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D); // https://explorer.arc.io/address/0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D IBasicInterestRateStrategy internal constant CORE_EURC_IR_STRATEGY = IBasicInterestRateStrategy(0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D); // https://explorer.arc.io/address/0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D IBasicInterestRateStrategy internal constant CORE_cirBTC_IR_STRATEGY = IBasicInterestRateStrategy(0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D); // https://explorer.arc.io/address/0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D IBasicInterestRateStrategy internal constant CORE_WETH_IR_STRATEGY = IBasicInterestRateStrategy(0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D); // https://explorer.arc.io/address/0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D IBasicInterestRateStrategy internal constant CORE_syrupUSDC_IR_STRATEGY = IBasicInterestRateStrategy(0xaa5b3bF9f16b634Eb1e0C1210bF8bB92b526e76D); } library AaveV4ArcPositionManagers { // https://explorer.arc.io/address/0x01Da80Eef3004ebbF90b7637B1De7fF30fBc7cf1 IGiverPositionManager internal constant GIVER_POSITION_MANAGER = IGiverPositionManager(0x01Da80Eef3004ebbF90b7637B1De7fF30fBc7cf1); // https://explorer.arc.io/address/0xe9fae1C386c6f45B1fb3C3Ef01aDE424DAd4bCcF ITakerPositionManager internal constant TAKER_POSITION_MANAGER = ITakerPositionManager(0xe9fae1C386c6f45B1fb3C3Ef01aDE424DAd4bCcF); // https://explorer.arc.io/address/0xa5Aa65Ae1c830d2ae10853CeEa42AE653adB3312 IConfigPositionManager internal constant CONFIG_POSITION_MANAGER = IConfigPositionManager(0xa5Aa65Ae1c830d2ae10853CeEa42AE653adB3312); // https://explorer.arc.io/address/0x0d36A4a21119BBBDe559d59002254171D976289f ISignatureGateway internal constant SIGNATURE_GATEWAY = ISignatureGateway(0x0d36A4a21119BBBDe559d59002254171D976289f); } library AaveV4ArcExternalLibraries { // https://explorer.arc.io/address/0x818E84198224535FAeaEc1b583d3Ff6b812A5AF3 address internal constant LIQUIDATION_LOGIC = 0x818E84198224535FAeaEc1b583d3Ff6b812A5AF3; } library AaveV4ArcAssets { // https://explorer.arc.io/address/0x3600000000000000000000000000000000000000 address internal constant USDC_UNDERLYING = 0x3600000000000000000000000000000000000000; uint8 internal constant USDC_DECIMALS = 6; // https://explorer.arc.io/address/0xbEf5f6d51CB62b58e6A8f77868681825C6fe21c1 address internal constant EURC_UNDERLYING = 0xbEf5f6d51CB62b58e6A8f77868681825C6fe21c1; uint8 internal constant EURC_DECIMALS = 6; // https://explorer.arc.io/address/0x171A4217b86A807A64eB94757Db6849fb4bDbAA0 address internal constant cirBTC_UNDERLYING = 0x171A4217b86A807A64eB94757Db6849fb4bDbAA0; uint8 internal constant cirBTC_DECIMALS = 8; // https://explorer.arc.io/address/0x128cC466B61f542da60c70e3aA11c10e19B84EDB address internal constant WETH_UNDERLYING = 0x128cC466B61f542da60c70e3aA11c10e19B84EDB; uint8 internal constant WETH_DECIMALS = 18; // https://explorer.arc.io/address/0x0dC6b79F3c3854E4d74514fD4d29BE6c96Beee39 address internal constant syrupUSDC_UNDERLYING = 0x0dC6b79F3c3854E4d74514fD4d29BE6c96Beee39; uint8 internal constant syrupUSDC_DECIMALS = 6; } library AaveV4ArcGetters { function getAllHubs() internal pure returns (IHub[] memory) { IHub[] memory hubs = new IHub[](1); hubs[0] = AaveV4ArcHubs.CORE_HUB; return hubs; } function getAllSpokes() internal pure returns (ISpoke[] memory) { ISpoke[] memory spokes = new ISpoke[](3); spokes[0] = AaveV4ArcSpokes.MAIN_SPOKE; spokes[1] = AaveV4ArcSpokes.FOREX_SPOKE; spokes[2] = AaveV4ArcSpokes.USDC_MAPLE_ESPOKE; return spokes; } function getAllTokenizationSpokes() internal pure returns (ITokenizationSpoke[] memory) { ITokenizationSpoke[] memory tokenizedSpokes = new ITokenizationSpoke[](4); tokenizedSpokes[0] = AaveV4ArcTokenizationSpokes.CORE_USDC_TOKENIZATION_SPOKE; tokenizedSpokes[1] = AaveV4ArcTokenizationSpokes.CORE_EURC_TOKENIZATION_SPOKE; tokenizedSpokes[2] = AaveV4ArcTokenizationSpokes.CORE_cirBTC_TOKENIZATION_SPOKE; tokenizedSpokes[3] = AaveV4ArcTokenizationSpokes.CORE_WETH_TOKENIZATION_SPOKE; return tokenizedSpokes; } function getAllSpokesRaw() internal pure returns (address[] memory) { address[] memory spokes = new address[](8); spokes[0] = address(AaveV4ArcSpokes.TREASURY_SPOKE); spokes[1] = address(AaveV4ArcSpokes.MAIN_SPOKE); spokes[2] = address(AaveV4ArcSpokes.FOREX_SPOKE); spokes[3] = address(AaveV4ArcSpokes.USDC_MAPLE_ESPOKE); spokes[4] = address(AaveV4ArcTokenizationSpokes.CORE_USDC_TOKENIZATION_SPOKE); spokes[5] = address(AaveV4ArcTokenizationSpokes.CORE_EURC_TOKENIZATION_SPOKE); spokes[6] = address(AaveV4ArcTokenizationSpokes.CORE_cirBTC_TOKENIZATION_SPOKE); spokes[7] = address(AaveV4ArcTokenizationSpokes.CORE_WETH_TOKENIZATION_SPOKE); return spokes; } function getPositionManagers() internal pure returns (PositionManagers memory) { return PositionManagers({ giver: AaveV4ArcPositionManagers.GIVER_POSITION_MANAGER, taker: AaveV4ArcPositionManagers.TAKER_POSITION_MANAGER, config: AaveV4ArcPositionManagers.CONFIG_POSITION_MANAGER, nativeGateway: INativeTokenGateway(address(0)), signatureGateway: AaveV4ArcPositionManagers.SIGNATURE_GATEWAY }); } }