// 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 AaveV3Polygon {
  // https://polygonscan.com/address/0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb
  IPoolAddressesProvider internal constant POOL_ADDRESSES_PROVIDER =
    IPoolAddressesProvider(0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb);

  // https://polygonscan.com/address/0x794a61358D6845594F94dc1DB02A252b5b4814aD
  IPool internal constant POOL = IPool(0x794a61358D6845594F94dc1DB02A252b5b4814aD);

  // https://polygonscan.com/address/0x8145eddDf43f50276641b55bd3AD95944510021E
  IPoolConfigurator internal constant POOL_CONFIGURATOR =
    IPoolConfigurator(0x8145eddDf43f50276641b55bd3AD95944510021E);

  // https://polygonscan.com/address/0xb023e699F5a33916Ea823A16485e259257cA8Bd1
  IAaveOracle internal constant ORACLE = IAaveOracle(0xb023e699F5a33916Ea823A16485e259257cA8Bd1);

  // https://polygonscan.com/address/0xDf7d0e6454DB638881302729F5ba99936EaAB233
  address internal constant ACL_ADMIN = 0xDf7d0e6454DB638881302729F5ba99936EaAB233;

  // https://polygonscan.com/address/0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B
  IACLManager internal constant ACL_MANAGER =
    IACLManager(0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B);

  // https://polygonscan.com/address/0x7F23D86Ee20D869112572136221e173428DD740B
  IPoolDataProvider internal constant AAVE_PROTOCOL_DATA_PROVIDER =
    IPoolDataProvider(0x7F23D86Ee20D869112572136221e173428DD740B);

  // https://polygonscan.com/address/0x5DFb8c777C19d3cEdcDc7398d2EeF1FB0b9b05c9
  address internal constant POOL_IMPL = 0x5DFb8c777C19d3cEdcDc7398d2EeF1FB0b9b05c9;

  // https://polygonscan.com/address/0x4816b2C2895f97fB918f1aE7Da403750a0eE372e
  address internal constant POOL_CONFIGURATOR_IMPL = 0x4816b2C2895f97fB918f1aE7Da403750a0eE372e;

  // https://polygonscan.com/address/0x929EC64c34a17401F460460D4B9390518E5B473e
  address internal constant DEFAULT_INCENTIVES_CONTROLLER =
    0x929EC64c34a17401F460460D4B9390518E5B473e;

  // https://polygonscan.com/address/0x048f2228D7Bf6776f99aB50cB1b1eaB4D1d4cA73
  address internal constant EMISSION_MANAGER = 0x048f2228D7Bf6776f99aB50cB1b1eaB4D1d4cA73;

  // https://polygonscan.com/address/0xe8599F3cc5D38a9aD6F3684cd5CEa72f10Dbc383
  ICollector internal constant COLLECTOR = ICollector(0xe8599F3cc5D38a9aD6F3684cd5CEa72f10Dbc383);

  // https://polygonscan.com/address/0xCf85FF1c37c594a10195F7A9Ab85CBb0a03f69dE
  address internal constant DEFAULT_A_TOKEN_IMPL_REV_2 = 0xCf85FF1c37c594a10195F7A9Ab85CBb0a03f69dE;

  // https://polygonscan.com/address/0x79b5e91037AE441dE0d9e6fd3Fd85b96B83d4E93
  address internal constant DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_2 =
    0x79b5e91037AE441dE0d9e6fd3Fd85b96B83d4E93;

  // https://polygonscan.com/address/0xc5de989E0D1BF605d19478Fdd32Aa827a10b464f
  address internal constant CAPS_PLUS_RISK_STEWARD = 0xc5de989E0D1BF605d19478Fdd32Aa827a10b464f;

  // https://polygonscan.com/address/0x88dECc4bf07f5219ea7D1E32fe3762DA28ff7609
  address internal constant RISK_STEWARD = 0x88dECc4bf07f5219ea7D1E32fe3762DA28ff7609;

  // https://polygonscan.com/address/0xa7b40ed4dfAC9255EA9Dd218A3874f380D9FbBEB
  address internal constant FREEZING_STEWARD = 0xa7b40ed4dfAC9255EA9Dd218A3874f380D9FbBEB;

  // https://polygonscan.com/address/0xE28E2c8d240dd5eBd0adcab86fbD79df7a052034
  address internal constant DEBT_SWAP_ADAPTER = 0xE28E2c8d240dd5eBd0adcab86fbD79df7a052034;

  // https://polygonscan.com/address/0x43632469e02CDAaEB4dE3DcBfCAaBEf310975729
  address internal constant CONFIG_ENGINE = 0x43632469e02CDAaEB4dE3DcBfCAaBEf310975729;

  // https://polygonscan.com/address/0x770ef9f4fe897e59daCc474EF11238303F9552b6
  address internal constant POOL_ADDRESSES_PROVIDER_REGISTRY =
    0x770ef9f4fe897e59daCc474EF11238303F9552b6;

  // https://polygonscan.com/address/0x5d4D4007A4c6336550DdAa2a7c0d5e7972eebd16
  address internal constant REPAY_WITH_COLLATERAL_ADAPTER =
    0x5d4D4007A4c6336550DdAa2a7c0d5e7972eebd16;

  // https://polygonscan.com/address/0x397202AB0b4E7C954ac0c493c00749C517210953
  address internal constant STATIC_A_TOKEN_FACTORY = 0x397202AB0b4E7C954ac0c493c00749C517210953;

  // https://polygonscan.com/address/0xC4aff49fCeD8ac1D818a6DCAB063f9f97E66ec5E
  address internal constant SWAP_COLLATERAL_ADAPTER = 0xC4aff49fCeD8ac1D818a6DCAB063f9f97E66ec5E;

  // https://polygonscan.com/address/0x91E04cf78e53aEBe609e8a7f2003e7EECD743F2B
  address internal constant UI_INCENTIVE_DATA_PROVIDER = 0x91E04cf78e53aEBe609e8a7f2003e7EECD743F2B;

  // https://polygonscan.com/address/0x68100bD5345eA474D93577127C11F39FF8463e93
  address internal constant UI_POOL_DATA_PROVIDER = 0x68100bD5345eA474D93577127C11F39FF8463e93;

  // https://polygonscan.com/address/0xBc790382B3686abffE4be14A030A96aC6154023a
  address internal constant WALLET_BALANCE_PROVIDER = 0xBc790382B3686abffE4be14A030A96aC6154023a;

  // https://polygonscan.com/address/0xF5f61a1ab3488fCB6d86451846bcFa9cdc108eB0
  address internal constant WETH_GATEWAY = 0xF5f61a1ab3488fCB6d86451846bcFa9cdc108eB0;

  // https://polygonscan.com/address/0x78F8Bd884C3D738B74B420540659c82f392820e0
  address internal constant WITHDRAW_SWAP_ADAPTER = 0x78F8Bd884C3D738B74B420540659c82f392820e0;
}
library AaveV3PolygonAssets {
  // https://polygonscan.com/address/0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063
  address internal constant DAI_UNDERLYING = 0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063;

  uint8 internal constant DAI_DECIMALS = 18;

  // https://polygonscan.com/address/0x82E64f49Ed5EC1bC6e43DAD4FC8Af9bb3A2312EE
  address internal constant DAI_A_TOKEN = 0x82E64f49Ed5EC1bC6e43DAD4FC8Af9bb3A2312EE;

  // https://polygonscan.com/address/0x8619d80FB0141ba7F184CbF22fd724116D9f7ffC
  address internal constant DAI_V_TOKEN = 0x8619d80FB0141ba7F184CbF22fd724116D9f7ffC;

  // https://polygonscan.com/address/0xF86577E7d27Ed35b85A7645c58bAaA64453fe32B
  address internal constant DAI_ORACLE = 0xF86577E7d27Ed35b85A7645c58bAaA64453fe32B;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant DAI_INTEREST_RATE_STRATEGY = 0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x83c59636e602787A6EEbBdA2915217B416193FcB
  address internal constant DAI_STATIC_A_TOKEN = 0x83c59636e602787A6EEbBdA2915217B416193FcB;

  // https://polygonscan.com/address/0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39
  address internal constant LINK_UNDERLYING = 0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39;

  uint8 internal constant LINK_DECIMALS = 18;

  // https://polygonscan.com/address/0x191c10Aa4AF7C30e871E70C95dB0E4eb77237530
  address internal constant LINK_A_TOKEN = 0x191c10Aa4AF7C30e871E70C95dB0E4eb77237530;

  // https://polygonscan.com/address/0x953A573793604aF8d41F306FEb8274190dB4aE0e
  address internal constant LINK_V_TOKEN = 0x953A573793604aF8d41F306FEb8274190dB4aE0e;

  // https://polygonscan.com/address/0xd9FFdb71EbE7496cC440152d43986Aae0AB76665
  address internal constant LINK_ORACLE = 0xd9FFdb71EbE7496cC440152d43986Aae0AB76665;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant LINK_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x37868a45c6741616F9E5a189dC0481AD70056B6a
  address internal constant LINK_STATIC_A_TOKEN = 0x37868a45c6741616F9E5a189dC0481AD70056B6a;

  // https://polygonscan.com/address/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
  address internal constant USDC_UNDERLYING = 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174;

  uint8 internal constant USDC_DECIMALS = 6;

  // https://polygonscan.com/address/0x625E7708f30cA75bfd92586e17077590C60eb4cD
  address internal constant USDC_A_TOKEN = 0x625E7708f30cA75bfd92586e17077590C60eb4cD;

  // https://polygonscan.com/address/0xFCCf3cAbbe80101232d343252614b6A3eE81C989
  address internal constant USDC_V_TOKEN = 0xFCCf3cAbbe80101232d343252614b6A3eE81C989;

  // https://polygonscan.com/address/0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb
  address internal constant USDC_ORACLE = 0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant USDC_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x1017F4a86Fc3A3c824346d0b8C5e96A5029bDAf9
  address internal constant USDC_STATIC_A_TOKEN = 0x1017F4a86Fc3A3c824346d0b8C5e96A5029bDAf9;

  // https://polygonscan.com/address/0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6
  address internal constant WBTC_UNDERLYING = 0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6;

  uint8 internal constant WBTC_DECIMALS = 8;

  // https://polygonscan.com/address/0x078f358208685046a11C85e8ad32895DED33A249
  address internal constant WBTC_A_TOKEN = 0x078f358208685046a11C85e8ad32895DED33A249;

  // https://polygonscan.com/address/0x92b42c66840C7AD907b4BF74879FF3eF7c529473
  address internal constant WBTC_V_TOKEN = 0x92b42c66840C7AD907b4BF74879FF3eF7c529473;

  // https://polygonscan.com/address/0xc907E116054Ad103354f2D350FD2514433D57F6f
  address internal constant WBTC_ORACLE = 0xc907E116054Ad103354f2D350FD2514433D57F6f;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant WBTC_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0xbC0f50CCB8514Aa7dFEB297521c4BdEBc9C7d22d
  address internal constant WBTC_STATIC_A_TOKEN = 0xbC0f50CCB8514Aa7dFEB297521c4BdEBc9C7d22d;

  // https://polygonscan.com/address/0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619
  address internal constant WETH_UNDERLYING = 0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619;

  uint8 internal constant WETH_DECIMALS = 18;

  // https://polygonscan.com/address/0xe50fA9b3c56FfB159cB0FCA61F5c9D750e8128c8
  address internal constant WETH_A_TOKEN = 0xe50fA9b3c56FfB159cB0FCA61F5c9D750e8128c8;

  // https://polygonscan.com/address/0x0c84331e39d6658Cd6e6b9ba04736cC4c4734351
  address internal constant WETH_V_TOKEN = 0x0c84331e39d6658Cd6e6b9ba04736cC4c4734351;

  // https://polygonscan.com/address/0xF9680D99D6C9589e2a93a78A04A279e509205945
  address internal constant WETH_ORACLE = 0xF9680D99D6C9589e2a93a78A04A279e509205945;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant WETH_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0xb3D5Af0A52a35692D3FcbE37669b3B8C31dddE7D
  address internal constant WETH_STATIC_A_TOKEN = 0xb3D5Af0A52a35692D3FcbE37669b3B8C31dddE7D;

  // https://polygonscan.com/address/0xc2132D05D31c914a87C6611C10748AEb04B58e8F
  address internal constant USDT_UNDERLYING = 0xc2132D05D31c914a87C6611C10748AEb04B58e8F;

  uint8 internal constant USDT_DECIMALS = 6;

  // https://polygonscan.com/address/0x6ab707Aca953eDAeFBc4fD23bA73294241490620
  address internal constant USDT_A_TOKEN = 0x6ab707Aca953eDAeFBc4fD23bA73294241490620;

  // https://polygonscan.com/address/0xfb00AC187a8Eb5AFAE4eACE434F493Eb62672df7
  address internal constant USDT_V_TOKEN = 0xfb00AC187a8Eb5AFAE4eACE434F493Eb62672df7;

  // https://polygonscan.com/address/0xaA574f4f6E124E77a7a1B5Ed91c8b407000A7730
  address internal constant USDT_ORACLE = 0xaA574f4f6E124E77a7a1B5Ed91c8b407000A7730;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant USDT_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x87A1fdc4C726c459f597282be639a045062c0E46
  address internal constant USDT_STATIC_A_TOKEN = 0x87A1fdc4C726c459f597282be639a045062c0E46;

  // https://polygonscan.com/address/0xD6DF932A45C0f255f85145f286eA0b292B21C90B
  address internal constant AAVE_UNDERLYING = 0xD6DF932A45C0f255f85145f286eA0b292B21C90B;

  uint8 internal constant AAVE_DECIMALS = 18;

  // https://polygonscan.com/address/0xf329e36C7bF6E5E86ce2150875a84Ce77f477375
  address internal constant AAVE_A_TOKEN = 0xf329e36C7bF6E5E86ce2150875a84Ce77f477375;

  // https://polygonscan.com/address/0xE80761Ea617F66F96274eA5e8c37f03960ecC679
  address internal constant AAVE_V_TOKEN = 0xE80761Ea617F66F96274eA5e8c37f03960ecC679;

  // https://polygonscan.com/address/0x72484B12719E23115761D5DA1646945632979bB6
  address internal constant AAVE_ORACLE = 0x72484B12719E23115761D5DA1646945632979bB6;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant AAVE_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0xCA2E1E33E5BCF4978E2d683656E1f5610f8C4A7E
  address internal constant AAVE_STATIC_A_TOKEN = 0xCA2E1E33E5BCF4978E2d683656E1f5610f8C4A7E;

  // https://polygonscan.com/address/0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270
  address internal constant WPOL_UNDERLYING = 0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270;

  uint8 internal constant WPOL_DECIMALS = 18;

  // https://polygonscan.com/address/0x6d80113e533a2C0fe82EaBD35f1875DcEA89Ea97
  address internal constant WPOL_A_TOKEN = 0x6d80113e533a2C0fe82EaBD35f1875DcEA89Ea97;

  // https://polygonscan.com/address/0x4a1c3aD6Ed28a636ee1751C69071f6be75DEb8B8
  address internal constant WPOL_V_TOKEN = 0x4a1c3aD6Ed28a636ee1751C69071f6be75DEb8B8;

  // https://polygonscan.com/address/0xAB594600376Ec9fD91F8e885dADF0CE036862dE0
  address internal constant WPOL_ORACLE = 0xAB594600376Ec9fD91F8e885dADF0CE036862dE0;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant WPOL_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x98254592408E389D1dd2dBa318656C2C5c305b4E
  address internal constant WPOL_STATIC_A_TOKEN = 0x98254592408E389D1dd2dBa318656C2C5c305b4E;

  // https://polygonscan.com/address/0x172370d5Cd63279eFa6d502DAB29171933a610AF
  address internal constant CRV_UNDERLYING = 0x172370d5Cd63279eFa6d502DAB29171933a610AF;

  uint8 internal constant CRV_DECIMALS = 18;

  // https://polygonscan.com/address/0x513c7E3a9c69cA3e22550eF58AC1C0088e918FFf
  address internal constant CRV_A_TOKEN = 0x513c7E3a9c69cA3e22550eF58AC1C0088e918FFf;

  // https://polygonscan.com/address/0x77CA01483f379E58174739308945f044e1a764dc
  address internal constant CRV_V_TOKEN = 0x77CA01483f379E58174739308945f044e1a764dc;

  // https://polygonscan.com/address/0x336584C8E6Dc19637A5b36206B1c79923111b405
  address internal constant CRV_ORACLE = 0x336584C8E6Dc19637A5b36206B1c79923111b405;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant CRV_INTEREST_RATE_STRATEGY = 0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x4356941463eD4d75381AC23C9EF799B5d7C52AD8
  address internal constant CRV_STATIC_A_TOKEN = 0x4356941463eD4d75381AC23C9EF799B5d7C52AD8;

  // https://polygonscan.com/address/0x0b3F868E0BE5597D5DB7fEB59E1CADBb0fdDa50a
  address internal constant SUSHI_UNDERLYING = 0x0b3F868E0BE5597D5DB7fEB59E1CADBb0fdDa50a;

  uint8 internal constant SUSHI_DECIMALS = 18;

  // https://polygonscan.com/address/0xc45A479877e1e9Dfe9FcD4056c699575a1045dAA
  address internal constant SUSHI_A_TOKEN = 0xc45A479877e1e9Dfe9FcD4056c699575a1045dAA;

  // https://polygonscan.com/address/0x34e2eD44EF7466D5f9E0b782B5c08b57475e7907
  address internal constant SUSHI_V_TOKEN = 0x34e2eD44EF7466D5f9E0b782B5c08b57475e7907;

  // https://polygonscan.com/address/0x49B0c695039243BBfEb8EcD054EB70061fd54aa0
  address internal constant SUSHI_ORACLE = 0x49B0c695039243BBfEb8EcD054EB70061fd54aa0;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant SUSHI_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0xe3eDe71d32240b7EC355F0e5DD1131BBe029F934
  address internal constant SUSHI_STATIC_A_TOKEN = 0xe3eDe71d32240b7EC355F0e5DD1131BBe029F934;

  // https://polygonscan.com/address/0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7
  address internal constant GHST_UNDERLYING = 0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7;

  uint8 internal constant GHST_DECIMALS = 18;

  // https://polygonscan.com/address/0x8Eb270e296023E9D92081fdF967dDd7878724424
  address internal constant GHST_A_TOKEN = 0x8Eb270e296023E9D92081fdF967dDd7878724424;

  // https://polygonscan.com/address/0xCE186F6Cccb0c955445bb9d10C59caE488Fea559
  address internal constant GHST_V_TOKEN = 0xCE186F6Cccb0c955445bb9d10C59caE488Fea559;

  // https://polygonscan.com/address/0xDD229Ce42f11D8Ee7fFf29bDB71C7b81352e11be
  address internal constant GHST_ORACLE = 0xDD229Ce42f11D8Ee7fFf29bDB71C7b81352e11be;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant GHST_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x123319636A6a9c85D9959399304F4cB23F64327e
  address internal constant GHST_STATIC_A_TOKEN = 0x123319636A6a9c85D9959399304F4cB23F64327e;

  // https://polygonscan.com/address/0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3
  address internal constant BAL_UNDERLYING = 0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3;

  uint8 internal constant BAL_DECIMALS = 18;

  // https://polygonscan.com/address/0x8ffDf2DE812095b1D19CB146E4c004587C0A0692
  address internal constant BAL_A_TOKEN = 0x8ffDf2DE812095b1D19CB146E4c004587C0A0692;

  // https://polygonscan.com/address/0xA8669021776Bc142DfcA87c21b4A52595bCbB40a
  address internal constant BAL_V_TOKEN = 0xA8669021776Bc142DfcA87c21b4A52595bCbB40a;

  // https://polygonscan.com/address/0xD106B538F2A868c28Ca1Ec7E298C3325E0251d66
  address internal constant BAL_ORACLE = 0xD106B538F2A868c28Ca1Ec7E298C3325E0251d66;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant BAL_INTEREST_RATE_STRATEGY = 0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x1a8969FD39AbaF228e690B172C4C3Eb7c67F95E1
  address internal constant BAL_STATIC_A_TOKEN = 0x1a8969FD39AbaF228e690B172C4C3Eb7c67F95E1;

  // https://polygonscan.com/address/0x85955046DF4668e1DD369D2DE9f3AEB98DD2A369
  address internal constant DPI_UNDERLYING = 0x85955046DF4668e1DD369D2DE9f3AEB98DD2A369;

  uint8 internal constant DPI_DECIMALS = 18;

  // https://polygonscan.com/address/0x724dc807b04555b71ed48a6896b6F41593b8C637
  address internal constant DPI_A_TOKEN = 0x724dc807b04555b71ed48a6896b6F41593b8C637;

  // https://polygonscan.com/address/0xf611aEb5013fD2c0511c9CD55c7dc5C1140741A6
  address internal constant DPI_V_TOKEN = 0xf611aEb5013fD2c0511c9CD55c7dc5C1140741A6;

  // https://polygonscan.com/address/0x2e48b7924FBe04d575BA229A59b64547d9da16e9
  address internal constant DPI_ORACLE = 0x2e48b7924FBe04d575BA229A59b64547d9da16e9;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant DPI_INTEREST_RATE_STRATEGY = 0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x73B788ACA5f4F0EeB3c6Da453cDf31041a77b36D
  address internal constant DPI_STATIC_A_TOKEN = 0x73B788ACA5f4F0EeB3c6Da453cDf31041a77b36D;

  // https://polygonscan.com/address/0xE111178A87A3BFf0c8d18DECBa5798827539Ae99
  address internal constant EURS_UNDERLYING = 0xE111178A87A3BFf0c8d18DECBa5798827539Ae99;

  uint8 internal constant EURS_DECIMALS = 2;

  // https://polygonscan.com/address/0x38d693cE1dF5AaDF7bC62595A37D667aD57922e5
  address internal constant EURS_A_TOKEN = 0x38d693cE1dF5AaDF7bC62595A37D667aD57922e5;

  // https://polygonscan.com/address/0x5D557B07776D12967914379C71a1310e917C7555
  address internal constant EURS_V_TOKEN = 0x5D557B07776D12967914379C71a1310e917C7555;

  // https://polygonscan.com/address/0x73366Fe0AA0Ded304479862808e02506FE556a98
  address internal constant EURS_ORACLE = 0x73366Fe0AA0Ded304479862808e02506FE556a98;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant EURS_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x02E26888Ed3240BB38f26A2adF96Af9B52b167ea
  address internal constant EURS_STATIC_A_TOKEN = 0x02E26888Ed3240BB38f26A2adF96Af9B52b167ea;

  // https://polygonscan.com/address/0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c
  address internal constant jEUR_UNDERLYING = 0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c;

  uint8 internal constant jEUR_DECIMALS = 18;

  // https://polygonscan.com/address/0x6533afac2E7BCCB20dca161449A13A32D391fb00
  address internal constant jEUR_A_TOKEN = 0x6533afac2E7BCCB20dca161449A13A32D391fb00;

  // https://polygonscan.com/address/0x44705f578135cC5d703b4c9c122528C73Eb87145
  address internal constant jEUR_V_TOKEN = 0x44705f578135cC5d703b4c9c122528C73Eb87145;

  // https://polygonscan.com/address/0x73366Fe0AA0Ded304479862808e02506FE556a98
  address internal constant jEUR_ORACLE = 0x73366Fe0AA0Ded304479862808e02506FE556a98;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant jEUR_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0xD992DaC78Ef3F34614E6a7d325b7b6A320FC0AB5
  address internal constant jEUR_STATIC_A_TOKEN = 0xD992DaC78Ef3F34614E6a7d325b7b6A320FC0AB5;

  // https://polygonscan.com/address/0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4
  address internal constant EURA_UNDERLYING = 0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4;

  uint8 internal constant EURA_DECIMALS = 18;

  // https://polygonscan.com/address/0x8437d7C167dFB82ED4Cb79CD44B7a32A1dd95c77
  address internal constant EURA_A_TOKEN = 0x8437d7C167dFB82ED4Cb79CD44B7a32A1dd95c77;

  // https://polygonscan.com/address/0x3ca5FA07689F266e907439aFd1fBB59c44fe12f6
  address internal constant EURA_V_TOKEN = 0x3ca5FA07689F266e907439aFd1fBB59c44fe12f6;

  // https://polygonscan.com/address/0x73366Fe0AA0Ded304479862808e02506FE556a98
  address internal constant EURA_ORACLE = 0x73366Fe0AA0Ded304479862808e02506FE556a98;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant EURA_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0xd3eb8796Ed36f58E03B7b4b5AD417FA74931d2c4
  address internal constant EURA_STATIC_A_TOKEN = 0xd3eb8796Ed36f58E03B7b4b5AD417FA74931d2c4;

  // https://polygonscan.com/address/0xa3Fa99A148fA48D14Ed51d610c367C61876997F1
  address internal constant miMATIC_UNDERLYING = 0xa3Fa99A148fA48D14Ed51d610c367C61876997F1;

  uint8 internal constant miMATIC_DECIMALS = 18;

  // https://polygonscan.com/address/0xeBe517846d0F36eCEd99C735cbF6131e1fEB775D
  address internal constant miMATIC_A_TOKEN = 0xeBe517846d0F36eCEd99C735cbF6131e1fEB775D;

  // https://polygonscan.com/address/0x18248226C16BF76c032817854E7C83a2113B4f06
  address internal constant miMATIC_V_TOKEN = 0x18248226C16BF76c032817854E7C83a2113B4f06;

  // https://polygonscan.com/address/0x4ae2Ab1af7e3b0092dbF3A4B20ec3de8fC834873
  address internal constant miMATIC_ORACLE = 0x4ae2Ab1af7e3b0092dbF3A4B20ec3de8fC834873;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant miMATIC_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x8486B49433cCed038b51d18Ae3772CDB7E31CA5e
  address internal constant miMATIC_STATIC_A_TOKEN = 0x8486B49433cCed038b51d18Ae3772CDB7E31CA5e;

  // https://polygonscan.com/address/0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4
  address internal constant stMATIC_UNDERLYING = 0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4;

  uint8 internal constant stMATIC_DECIMALS = 18;

  // https://polygonscan.com/address/0xEA1132120ddcDDA2F119e99Fa7A27a0d036F7Ac9
  address internal constant stMATIC_A_TOKEN = 0xEA1132120ddcDDA2F119e99Fa7A27a0d036F7Ac9;

  // https://polygonscan.com/address/0x6b030Ff3FB9956B1B69f475B77aE0d3Cf2CC5aFa
  address internal constant stMATIC_V_TOKEN = 0x6b030Ff3FB9956B1B69f475B77aE0d3Cf2CC5aFa;

  // https://polygonscan.com/address/0x6D02E35031C4D99ee3A6A2BA47FaD0cFE355cA8f
  address internal constant stMATIC_ORACLE = 0x6D02E35031C4D99ee3A6A2BA47FaD0cFE355cA8f;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant stMATIC_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x867A180B7060fDC27610dC9096E93534F638A315
  address internal constant stMATIC_STATIC_A_TOKEN = 0x867A180B7060fDC27610dC9096E93534F638A315;

  // https://polygonscan.com/address/0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6
  address internal constant MaticX_UNDERLYING = 0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6;

  uint8 internal constant MaticX_DECIMALS = 18;

  // https://polygonscan.com/address/0x80cA0d8C38d2e2BcbaB66aA1648Bd1C7160500FE
  address internal constant MaticX_A_TOKEN = 0x80cA0d8C38d2e2BcbaB66aA1648Bd1C7160500FE;

  // https://polygonscan.com/address/0xB5b46F918C2923fC7f26DB76e8a6A6e9C4347Cf9
  address internal constant MaticX_V_TOKEN = 0xB5b46F918C2923fC7f26DB76e8a6A6e9C4347Cf9;

  // https://polygonscan.com/address/0xB0A72A5e454890e9715e059e8df8582a6B383DE3
  address internal constant MaticX_ORACLE = 0xB0A72A5e454890e9715e059e8df8582a6B383DE3;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant MaticX_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0xbcDd5709641Af4BE99b1470A2B3A5203539132Ec
  address internal constant MaticX_STATIC_A_TOKEN = 0xbcDd5709641Af4BE99b1470A2B3A5203539132Ec;

  // https://polygonscan.com/address/0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD
  address internal constant wstETH_UNDERLYING = 0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD;

  uint8 internal constant wstETH_DECIMALS = 18;

  // https://polygonscan.com/address/0xf59036CAEBeA7dC4b86638DFA2E3C97dA9FcCd40
  address internal constant wstETH_A_TOKEN = 0xf59036CAEBeA7dC4b86638DFA2E3C97dA9FcCd40;

  // https://polygonscan.com/address/0x77fA66882a8854d883101Fb8501BD3CaD347Fc32
  address internal constant wstETH_V_TOKEN = 0x77fA66882a8854d883101Fb8501BD3CaD347Fc32;

  // https://polygonscan.com/address/0xBD96b5ABBC6048c28184b462167E487533F2e35E
  address internal constant wstETH_ORACLE = 0xBD96b5ABBC6048c28184b462167E487533F2e35E;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant wstETH_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x5274453F4CD5dD7280011a1Cca3B9e1b78EC59A6
  address internal constant wstETH_STATIC_A_TOKEN = 0x5274453F4CD5dD7280011a1Cca3B9e1b78EC59A6;

  // https://polygonscan.com/address/0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
  address internal constant USDCn_UNDERLYING = 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359;

  uint8 internal constant USDCn_DECIMALS = 6;

  // https://polygonscan.com/address/0xA4D94019934D8333Ef880ABFFbF2FDd611C762BD
  address internal constant USDCn_A_TOKEN = 0xA4D94019934D8333Ef880ABFFbF2FDd611C762BD;

  // https://polygonscan.com/address/0xE701126012EC0290822eEA17B794454d1AF8b030
  address internal constant USDCn_V_TOKEN = 0xE701126012EC0290822eEA17B794454d1AF8b030;

  // https://polygonscan.com/address/0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb
  address internal constant USDCn_ORACLE = 0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb;

  // https://polygonscan.com/address/0x56076f960980d453b5B749CB6A1c4D2E4e138B1A
  address internal constant USDCn_INTEREST_RATE_STRATEGY =
    0x56076f960980d453b5B749CB6A1c4D2E4e138B1A;

  // https://polygonscan.com/address/0x2dCa80061632f3F87c9cA28364d1d0c30cD79a19
  address internal constant USDCn_STATIC_A_TOKEN = 0x2dCa80061632f3F87c9cA28364d1d0c30cD79a19;
}
library AaveV3PolygonEModes {
  uint8 internal constant NONE = 0;

  uint8 internal constant STABLECOINS = 1;

  uint8 internal constant MATIC_CORRELATED = 2;

  uint8 internal constant ETH_CORRELATED = 3;
}
library AaveV3PolygonExternalLibraries {
  // https://polygonscan.com/address/0xb32381feFFF45eE9F47fD2f2cF83C832637d6EF0
  address internal constant FLASHLOAN_LOGIC = 0xb32381feFFF45eE9F47fD2f2cF83C832637d6EF0;

  // https://polygonscan.com/address/0x4c52FE2162200bf26c314d7bbd8611699139d553
  address internal constant BORROW_LOGIC = 0x4c52FE2162200bf26c314d7bbd8611699139d553;

  // https://polygonscan.com/address/0x97dCbFaE5372A63128F141E8C0BC2c871Ca5F604
  address internal constant BRIDGE_LOGIC = 0x97dCbFaE5372A63128F141E8C0BC2c871Ca5F604;

  // https://polygonscan.com/address/0x88F864670De467aA73CD45325F9652C578C8AB85
  address internal constant E_MODE_LOGIC = 0x88F864670De467aA73CD45325F9652C578C8AB85;

  // https://polygonscan.com/address/0x80d16970B31243Fe67DaB028115f3E4c3E3510Ad
  address internal constant LIQUIDATION_LOGIC = 0x80d16970B31243Fe67DaB028115f3E4c3E3510Ad;

  // https://polygonscan.com/address/0xA58FB47bE9074828215A173564C0CD10f6F249bf
  address internal constant POOL_LOGIC = 0xA58FB47bE9074828215A173564C0CD10f6F249bf;

  // https://polygonscan.com/address/0x2b22E425C1322fbA0DbF17bb1dA25d71811EE7ba
  address internal constant SUPPLY_LOGIC = 0x2b22E425C1322fbA0DbF17bb1dA25d71811EE7ba;
}
