From 4801c5587d1cebb191bf0a105b5b320375e25ea3 Mon Sep 17 00:00:00 2001 From: sakulstra Date: Wed, 14 Aug 2024 15:51:12 +0200 Subject: [PATCH 1/4] fix: patch ir diff --- ...62f0b0c1bf55e0693fd4e1b0116731fd62a430.svg | 1 + ...265298aa7a998c6931ace04e7860b8b360a5ba.svg | 1 + ...1c424012f6b8f7d49339c1ad1f6d8be7814e8f.svg | 1 + ...93d3ef35333192ec820f1bc848b5189674555c.svg | 1 + ...f0ae5f67532a528e6b3d83623f49f7646148c3.svg | 1 + ...6b85c50b6d8a3cac78bba7acc69af991e8b359.svg | 1 + ...6681206ba1647c8da5212801c687932059c1c3.svg | 1 + ...ce7a55ac04d754c31aada64a733b5a0ecd6dd5.svg | 1 + ...54df8148ba17f5ffc961aea7512567c91e2a3d.svg | 1 + ...89ad3b3ce52cc75ae008e02f0902e656628a29.svg | 1 + ...4db5711739fa231386033bdb64a3cceb8462a8.svg | 1 + ...4e0d79fec49d4d84b9250e643f1773f16214a5.svg | 1 + ...d6d26d5c1caf9a8735a932555ad64bcb400031.svg | 1 + ...48d80179d57144859fe9a7186b742ec3e9387c.svg | 1 + ...a7ab1f1b9fcdf6ffa41ac7a8b4daf2daf98328.svg | 1 + ...fcef60b1dfb35de994f96040b1b43df9719d28.svg | 1 + ...690b11066430bfb069e06227cc53f8654a7b5a.svg | 1 + ...3975867d1c729d1a52bbec364211baff2dab5a.svg | 1 + ...31a10768e2145bf6969b6e65d7c875df780821.svg | 1 + ...cd41bda67a1fc3ece7a4100d0a7455722f244a.svg | 1 + src/reports/__snapshots__/report.spec.ts.snap | 23 +- src/reports/mocks/postgho.json | 1708 +++++++++++++++++ src/reports/mocks/pregho.json | 1708 +++++++++++++++++ src/reports/report.spec.ts | 13 +- 24 files changed, 3470 insertions(+), 2 deletions(-) create mode 100644 .assets/0d62f0b0c1bf55e0693fd4e1b0116731fd62a430.svg create mode 100644 .assets/15265298aa7a998c6931ace04e7860b8b360a5ba.svg create mode 100644 .assets/221c424012f6b8f7d49339c1ad1f6d8be7814e8f.svg create mode 100644 .assets/2493d3ef35333192ec820f1bc848b5189674555c.svg create mode 100644 .assets/32f0ae5f67532a528e6b3d83623f49f7646148c3.svg create mode 100644 .assets/3a6b85c50b6d8a3cac78bba7acc69af991e8b359.svg create mode 100644 .assets/5d6681206ba1647c8da5212801c687932059c1c3.svg create mode 100644 .assets/63ce7a55ac04d754c31aada64a733b5a0ecd6dd5.svg create mode 100644 .assets/6554df8148ba17f5ffc961aea7512567c91e2a3d.svg create mode 100644 .assets/6c89ad3b3ce52cc75ae008e02f0902e656628a29.svg create mode 100644 .assets/6e4db5711739fa231386033bdb64a3cceb8462a8.svg create mode 100644 .assets/794e0d79fec49d4d84b9250e643f1773f16214a5.svg create mode 100644 .assets/7fd6d26d5c1caf9a8735a932555ad64bcb400031.svg create mode 100644 .assets/8748d80179d57144859fe9a7186b742ec3e9387c.svg create mode 100644 .assets/a1a7ab1f1b9fcdf6ffa41ac7a8b4daf2daf98328.svg create mode 100644 .assets/a8fcef60b1dfb35de994f96040b1b43df9719d28.svg create mode 100644 .assets/c1690b11066430bfb069e06227cc53f8654a7b5a.svg create mode 100644 .assets/e03975867d1c729d1a52bbec364211baff2dab5a.svg create mode 100644 .assets/e231a10768e2145bf6969b6e65d7c875df780821.svg create mode 100644 .assets/e3cd41bda67a1fc3ece7a4100d0a7455722f244a.svg create mode 100644 src/reports/mocks/postgho.json create mode 100644 src/reports/mocks/pregho.json diff --git a/.assets/0d62f0b0c1bf55e0693fd4e1b0116731fd62a430.svg b/.assets/0d62f0b0c1bf55e0693fd4e1b0116731fd62a430.svg new file mode 100644 index 0000000..403a5e0 --- /dev/null +++ b/.assets/0d62f0b0c1bf55e0693fd4e1b0116731fd62a430.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/15265298aa7a998c6931ace04e7860b8b360a5ba.svg b/.assets/15265298aa7a998c6931ace04e7860b8b360a5ba.svg new file mode 100644 index 0000000..3c15ce1 --- /dev/null +++ b/.assets/15265298aa7a998c6931ace04e7860b8b360a5ba.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%Optimal utilization 45%Optimal utilization 45% \ No newline at end of file diff --git a/.assets/221c424012f6b8f7d49339c1ad1f6d8be7814e8f.svg b/.assets/221c424012f6b8f7d49339c1ad1f6d8be7814e8f.svg new file mode 100644 index 0000000..6af590b --- /dev/null +++ b/.assets/221c424012f6b8f7d49339c1ad1f6d8be7814e8f.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 90%Optimal utilization 90% \ No newline at end of file diff --git a/.assets/2493d3ef35333192ec820f1bc848b5189674555c.svg b/.assets/2493d3ef35333192ec820f1bc848b5189674555c.svg new file mode 100644 index 0000000..5212f2d --- /dev/null +++ b/.assets/2493d3ef35333192ec820f1bc848b5189674555c.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 45%Optimal utilization 45% \ No newline at end of file diff --git a/.assets/32f0ae5f67532a528e6b3d83623f49f7646148c3.svg b/.assets/32f0ae5f67532a528e6b3d83623f49f7646148c3.svg new file mode 100644 index 0000000..d348fb2 --- /dev/null +++ b/.assets/32f0ae5f67532a528e6b3d83623f49f7646148c3.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/3a6b85c50b6d8a3cac78bba7acc69af991e8b359.svg b/.assets/3a6b85c50b6d8a3cac78bba7acc69af991e8b359.svg new file mode 100644 index 0000000..93fde99 --- /dev/null +++ b/.assets/3a6b85c50b6d8a3cac78bba7acc69af991e8b359.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%150%200%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/5d6681206ba1647c8da5212801c687932059c1c3.svg b/.assets/5d6681206ba1647c8da5212801c687932059c1c3.svg new file mode 100644 index 0000000..d003381 --- /dev/null +++ b/.assets/5d6681206ba1647c8da5212801c687932059c1c3.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%Optimal utilization 90%Optimal utilization 90% \ No newline at end of file diff --git a/.assets/63ce7a55ac04d754c31aada64a733b5a0ecd6dd5.svg b/.assets/63ce7a55ac04d754c31aada64a733b5a0ecd6dd5.svg new file mode 100644 index 0000000..4a059d9 --- /dev/null +++ b/.assets/63ce7a55ac04d754c31aada64a733b5a0ecd6dd5.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%Optimal utilization 90%Optimal utilization 90% \ No newline at end of file diff --git a/.assets/6554df8148ba17f5ffc961aea7512567c91e2a3d.svg b/.assets/6554df8148ba17f5ffc961aea7512567c91e2a3d.svg new file mode 100644 index 0000000..df22600 --- /dev/null +++ b/.assets/6554df8148ba17f5ffc961aea7512567c91e2a3d.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%Optimal utilization 45%Optimal utilization 45% \ No newline at end of file diff --git a/.assets/6c89ad3b3ce52cc75ae008e02f0902e656628a29.svg b/.assets/6c89ad3b3ce52cc75ae008e02f0902e656628a29.svg new file mode 100644 index 0000000..f9bccbd --- /dev/null +++ b/.assets/6c89ad3b3ce52cc75ae008e02f0902e656628a29.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%Optimal utilization 70%Optimal utilization 70% \ No newline at end of file diff --git a/.assets/6e4db5711739fa231386033bdb64a3cceb8462a8.svg b/.assets/6e4db5711739fa231386033bdb64a3cceb8462a8.svg new file mode 100644 index 0000000..ad84fcb --- /dev/null +++ b/.assets/6e4db5711739fa231386033bdb64a3cceb8462a8.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/794e0d79fec49d4d84b9250e643f1773f16214a5.svg b/.assets/794e0d79fec49d4d84b9250e643f1773f16214a5.svg new file mode 100644 index 0000000..48159d2 --- /dev/null +++ b/.assets/794e0d79fec49d4d84b9250e643f1773f16214a5.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/7fd6d26d5c1caf9a8735a932555ad64bcb400031.svg b/.assets/7fd6d26d5c1caf9a8735a932555ad64bcb400031.svg new file mode 100644 index 0000000..a7eaa7d --- /dev/null +++ b/.assets/7fd6d26d5c1caf9a8735a932555ad64bcb400031.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/8748d80179d57144859fe9a7186b742ec3e9387c.svg b/.assets/8748d80179d57144859fe9a7186b742ec3e9387c.svg new file mode 100644 index 0000000..5dff155 --- /dev/null +++ b/.assets/8748d80179d57144859fe9a7186b742ec3e9387c.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%Optimal utilization 45%Optimal utilization 45% \ No newline at end of file diff --git a/.assets/a1a7ab1f1b9fcdf6ffa41ac7a8b4daf2daf98328.svg b/.assets/a1a7ab1f1b9fcdf6ffa41ac7a8b4daf2daf98328.svg new file mode 100644 index 0000000..7a92d3f --- /dev/null +++ b/.assets/a1a7ab1f1b9fcdf6ffa41ac7a8b4daf2daf98328.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%2%4%6%Optimal utilization 99%Optimal utilization 99% \ No newline at end of file diff --git a/.assets/a8fcef60b1dfb35de994f96040b1b43df9719d28.svg b/.assets/a8fcef60b1dfb35de994f96040b1b43df9719d28.svg new file mode 100644 index 0000000..81a6b4f --- /dev/null +++ b/.assets/a8fcef60b1dfb35de994f96040b1b43df9719d28.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%Optimal utilization 92%Optimal utilization 92% \ No newline at end of file diff --git a/.assets/c1690b11066430bfb069e06227cc53f8654a7b5a.svg b/.assets/c1690b11066430bfb069e06227cc53f8654a7b5a.svg new file mode 100644 index 0000000..d009aef --- /dev/null +++ b/.assets/c1690b11066430bfb069e06227cc53f8654a7b5a.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%Optimal utilization 35%Optimal utilization 35% \ No newline at end of file diff --git a/.assets/e03975867d1c729d1a52bbec364211baff2dab5a.svg b/.assets/e03975867d1c729d1a52bbec364211baff2dab5a.svg new file mode 100644 index 0000000..8a87496 --- /dev/null +++ b/.assets/e03975867d1c729d1a52bbec364211baff2dab5a.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%2%4%6%8%Optimal utilization 99%Optimal utilization 99% \ No newline at end of file diff --git a/.assets/e231a10768e2145bf6969b6e65d7c875df780821.svg b/.assets/e231a10768e2145bf6969b6e65d7c875df780821.svg new file mode 100644 index 0000000..85a5bf3 --- /dev/null +++ b/.assets/e231a10768e2145bf6969b6e65d7c875df780821.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%Optimal utilization 90%Optimal utilization 90% \ No newline at end of file diff --git a/.assets/e3cd41bda67a1fc3ece7a4100d0a7455722f244a.svg b/.assets/e3cd41bda67a1fc3ece7a4100d0a7455722f244a.svg new file mode 100644 index 0000000..e82eb34 --- /dev/null +++ b/.assets/e3cd41bda67a1fc3ece7a4100d0a7455722f244a.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%Optimal utilization 92%Optimal utilization 92% \ No newline at end of file diff --git a/src/reports/__snapshots__/report.spec.ts.snap b/src/reports/__snapshots__/report.spec.ts.snap index f5e1811..6581184 100644 --- a/src/reports/__snapshots__/report.spec.ts.snap +++ b/src/reports/__snapshots__/report.spec.ts.snap @@ -296,7 +296,7 @@ exports[`report > should generate a well formatted report 1`] = ` \`\`\`" `; -exports[`report > should generate a well formatted report for 3.1 1`] = ` +exports[`report > should generate a well formatted report for 3.0 to 3.1 1`] = ` "## Reserve changes ### Reserve altered @@ -439,3 +439,24 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` } \`\`\`" `; + +exports[`report > should generate a well formatted report for 3.1 1`] = ` +"## Raw diff + +\`\`\`json +{ + "strategies": { + "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": { + "baseVariableBorrowRate": { + "from": "70000000000000000000000000", + "to": "60000000000000000000000000" + }, + "maxVariableBorrowRate": { + "from": "70000000000000000000000000", + "to": "60000000000000000000000000" + } + } + } +} +\`\`\`" +`; diff --git a/src/reports/mocks/postgho.json b/src/reports/mocks/postgho.json new file mode 100644 index 0000000..a461207 --- /dev/null +++ b/src/reports/mocks/postgho.json @@ -0,0 +1,1708 @@ +{ + "chainId": 1, + "eModes": { + "1": { + "eModeCategory": 1, + "label": "ETH correlated", + "liquidationBonus": 10100, + "liquidationThreshold": 9500, + "ltv": 9300, + "priceSource": "0x0000000000000000000000000000000000000000" + } + }, + "poolConfig": { + "oracle": "0x54586bE62E3c3580375aE3723C145253060Ca0C2", + "pool": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2", + "poolAddressesProvider": "0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e", + "poolConfigurator": "0x64b761D848206f447Fe2dd461b0c635Ec39EbB27", + "poolConfiguratorImpl": "0x419226e0Ad27f3B2019123f7246a364622b018e5", + "poolImpl": "0x34339f94350EC5274ea44d0C37DAe9e968c44081", + "priceOracleSentinel": "0x0000000000000000000000000000000000000000", + "protocolDataProvider": "0x20e074F62EcBD8BC5E38211adCb6103006113A22" + }, + "reserves": { + "0x111111111117dC0aa78b770fA6A738034120C302": { + "aToken": "0x71Aef7b30728b9BB371578f36c5A1f1502a5723e", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum 1INCH", + "aTokenSymbol": "aEth1INCH", + "aTokenUnderlyingBalance": 2478959193337123480592396, + "borrowCap": 475200, + "borrowingEnabled": true, + "debtCeiling": 450000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 6700, + "ltv": 5700, + "oracle": "0xc929ad75B72593967DE83E7F7Cda0493458261D9", + "oracleDecimals": 8, + "oracleDescription": "1INCH / USD", + "oracleLatestAnswer": 27109589, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x4b62bFAff61AB3985798e5202D2d167F567D0BCD", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt 1INCH", + "stableDebtTokenSymbol": "stableDebtEth1INCH", + "supplyCap": 30000000, + "symbol": "1INCH", + "underlying": "0x111111111117dC0aa78b770fA6A738034120C302", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xA38fCa8c6Bf9BdA52E76EB78f08CaA3BE7c5A970", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt 1INCH", + "variableDebtTokenSymbol": "variableDebtEth1INCH", + "virtualAccountingActive": true, + "virtualBalance": 2478958768415843957793267 + }, + "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984": { + "aToken": "0xF6D2224916DDFbbab6e6bd0D1B7034f4Ae0CaB18", + "aTokenImpl": "0x21714092D90c7265F52fdfDae068EC11a23C6248", + "aTokenName": "Aave Ethereum UNI", + "aTokenSymbol": "aEthUNI", + "aTokenUnderlyingBalance": 3348926647069390172311802, + "borrowCap": 330000, + "borrowingEnabled": true, + "debtCeiling": 1700000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 11000, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7400, + "ltv": 6500, + "oracle": "0x553303d460EE0afB37EdFf9bE42922D8FF63220e", + "oracleDecimals": 8, + "oracleDescription": "UNI / USD", + "oracleLatestAnswer": 641754330, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x2FEc76324A0463c46f32e74A86D1cf94C02158DC", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt UNI", + "stableDebtTokenSymbol": "stableDebtEthUNI", + "supplyCap": 4000000, + "symbol": "UNI", + "underlying": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xF64178Ebd2E2719F2B1233bCb5Ef6DB4bCc4d09a", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt UNI", + "variableDebtTokenSymbol": "variableDebtEthUNI", + "virtualAccountingActive": true, + "virtualBalance": 3348926632846433787350440 + }, + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "aToken": "0x5Ee5bf7ae06D1Be5997A1A72006FE6C607eC6DE8", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum WBTC", + "aTokenSymbol": "aEthWBTC", + "aTokenUnderlyingBalance": 3140693088489, + "borrowCap": 28000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 8, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10500, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7800, + "ltv": 7300, + "oracle": "0x230E0321Cf38F09e247e50Afc7801EA2351fe56F", + "oracleDecimals": 8, + "oracleLatestAnswer": 6121554931460, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xA1773F1ccF6DB192Ad8FE826D15fe1d328B03284", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt WBTC", + "stableDebtTokenSymbol": "stableDebtEthWBTC", + "supplyCap": 43000, + "symbol": "WBTC", + "underlying": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x40aAbEf1aa8f0eEc637E0E7d92fbfFB2F26A8b7B", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt WBTC", + "variableDebtTokenSymbol": "variableDebtEthWBTC", + "virtualAccountingActive": true, + "virtualBalance": 3140693086455 + }, + "0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0": { + "aToken": "0x82F9c5ad306BBa1AD0De49bB5FA6F01bf61085ef", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum FXS", + "aTokenSymbol": "aEthFXS", + "aTokenUnderlyingBalance": 679219640699595011327213, + "borrowCap": 330000, + "borrowingEnabled": true, + "debtCeiling": 400000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": true, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 11000, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 4200, + "ltv": 0, + "oracle": "0x6Ebc52C8C1089be9eB3945C4350B68B8E4C2233f", + "oracleDecimals": 8, + "oracleDescription": "FXS / USD", + "oracleLatestAnswer": 185279708, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x61dFd349140C239d3B61fEe203Efc811b518a317", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt FXS", + "stableDebtTokenSymbol": "stableDebtEthFXS", + "supplyCap": 1200000, + "symbol": "FXS", + "underlying": "0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x68e9f0aD4e6f8F5DB70F6923d4d6d5b225B83b16", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt FXS", + "variableDebtTokenSymbol": "variableDebtEthFXS", + "virtualAccountingActive": true, + "virtualBalance": 679219640429642865541514 + }, + "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": { + "aToken": "0x00907f9921424583e7ffBfEdf84F92B7B2Be4977", + "aTokenImpl": "0x2f32A274e02FA356423CE5e97a8e3155c1Ac396b", + "aTokenName": "Aave Ethereum GHO", + "aTokenSymbol": "aEthGHO", + "aTokenUnderlyingBalance": 13397769156900514357248, + "borrowCap": 105000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": false, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 0, + "liquidationProtocolFee": 0, + "liquidationThreshold": 0, + "ltv": 0, + "oracle": "0xD110cac5d8682A3b045D5524a9903E031d70FCCd", + "oracleDecimals": 8, + "oracleLatestAnswer": 100000000, + "reserveFactor": 0, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x3f3DF7266dA30102344A813F1a3D07f5F041B5AC", + "stableDebtTokenImpl": "0x05b435C741F5ab03C2E6735e23f1b7Fe01Cc6b22", + "stableDebtTokenName": "Aave Ethereum Stable Debt GHO", + "stableDebtTokenSymbol": "stableDebtEthGHO", + "supplyCap": 0, + "symbol": "GHO", + "underlying": "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f", + "usageAsCollateralEnabled": false, + "variableDebtToken": "0x786dBff3f1292ae8F92ea68Cf93c30b34B1ed04B", + "variableDebtTokenImpl": "0x20Cb2f303EDe313e2Cc44549Ad8653a5E8c0050e", + "variableDebtTokenName": "Aave Ethereum Variable Debt GHO", + "variableDebtTokenSymbol": "variableDebtEthGHO", + "virtualAccountingActive": false, + "virtualBalance": 0 + }, + "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3": { + "aToken": "0x4F5923Fc5FD4a93352581b38B7cD26943012DECF", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum USDe", + "aTokenSymbol": "aEthUSDe", + "aTokenUnderlyingBalance": 9981259705086368142756646, + "borrowCap": 110000000, + "borrowingEnabled": true, + "debtCeiling": 5000000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10850, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7500, + "ltv": 7200, + "oracle": "0x55B6C4D3E8A27b8A1F5a263321b602e0fdEEcC17", + "oracleDecimals": 8, + "oracleDescription": "Capped USDe / USD", + "oracleLatestAnswer": 99909236, + "reserveFactor": 2500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x43Cc8AD0c223b38D9c04802bB184A2D97e497D38", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt USDe", + "stableDebtTokenSymbol": "stableDebtEthUSDe", + "supplyCap": 120000000, + "symbol": "USDe", + "underlying": "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x015396E1F286289aE23a762088E863b3ec465145", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt USDe", + "variableDebtTokenSymbol": "variableDebtEthUSDe", + "virtualAccountingActive": true, + "virtualBalance": 9981253231541980645947613 + }, + "0x514910771AF9Ca656af840dff83E8264EcF986CA": { + "aToken": "0x5E8C8A7243651DB1384C0dDfDbE39761E8e7E51a", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum LINK", + "aTokenSymbol": "aEthLINK", + "aTokenUnderlyingBalance": 10779306770886569723896329, + "borrowCap": 13000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10700, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 6800, + "ltv": 5300, + "oracle": "0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c", + "oracleDecimals": 8, + "oracleDescription": "LINK / USD", + "oracleLatestAnswer": 1068549525, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x63B1129ca97D2b9F97f45670787Ac12a9dF1110a", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt LINK", + "stableDebtTokenSymbol": "stableDebtEthLINK", + "supplyCap": 15000000, + "symbol": "LINK", + "underlying": "0x514910771AF9Ca656af840dff83E8264EcF986CA", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x4228F8895C7dDA20227F6a5c6751b8Ebf19a6ba8", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt LINK", + "variableDebtTokenSymbol": "variableDebtEthLINK", + "virtualAccountingActive": true, + "virtualBalance": 10779306769704158190933341 + }, + "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32": { + "aToken": "0x9A44fd41566876A39655f74971a3A6eA0a17a454", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum LDO", + "aTokenSymbol": "aEthLDO", + "aTokenUnderlyingBalance": 5719519054923414824595925, + "borrowCap": 1500000, + "borrowingEnabled": true, + "debtCeiling": 750000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10900, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 5000, + "ltv": 4000, + "oracle": "0xb01e6C9af83879B8e06a092f0DD94309c0D497E4", + "oracleDecimals": 8, + "oracleLatestAnswer": 108142310, + "oracleName": "LDO/ETH/USD", + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xa0a5bF5781Aeb548db9d4226363B9e89287C5FD2", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt LDO", + "stableDebtTokenSymbol": "stableDebtEthLDO", + "supplyCap": 8000000, + "symbol": "LDO", + "underlying": "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xc30808705C01289A3D306ca9CAB081Ba9114eC82", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt LDO", + "variableDebtTokenSymbol": "variableDebtEthLDO", + "virtualAccountingActive": true, + "virtualBalance": 5719518843204751782983003 + }, + "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { + "aToken": "0x3Fe6a295459FAe07DF8A0ceCC36F37160FE86AA9", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum LUSD", + "aTokenSymbol": "aEthLUSD", + "aTokenUnderlyingBalance": 1786402375613953596642248, + "borrowCap": 8000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10450, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7700, + "ltv": 0, + "oracle": "0x9eCdfaCca946614cc32aF63F3DBe50959244F3af", + "oracleDecimals": 8, + "oracleDescription": "Capped LUSD/USD", + "oracleLatestAnswer": 99941318, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x37A6B708FDB1483C231961b9a7F145261E815fc3", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt LUSD", + "stableDebtTokenSymbol": "stableDebtEthLUSD", + "supplyCap": 18000000, + "symbol": "LUSD", + "underlying": "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x33652e48e4B74D18520f11BfE58Edd2ED2cEc5A2", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt LUSD", + "variableDebtTokenSymbol": "variableDebtEthLUSD", + "virtualAccountingActive": true, + "virtualBalance": 1786402375613953596642248 + }, + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "aToken": "0x018008bfb33d285247A21d44E50697654f754e63", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum DAI", + "aTokenSymbol": "aEthDAI", + "aTokenUnderlyingBalance": 17331357478362920570885102, + "borrowCap": 271000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10500, + "liquidationProtocolFee": 2000, + "liquidationThreshold": 7700, + "ltv": 6300, + "oracle": "0xaEb897E1Dc6BbdceD3B9D551C71a8cf172F27AC4", + "oracleDecimals": 8, + "oracleDescription": "Capped DAI/USD", + "oracleLatestAnswer": 99981000, + "reserveFactor": 2500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x413AdaC9E2Ef8683ADf5DDAEce8f19613d60D1bb", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt DAI", + "stableDebtTokenSymbol": "stableDebtEthDAI", + "supplyCap": 338000000, + "symbol": "DAI", + "underlying": "0x6B175474E89094C44Da98b954EedeAC495271d0F", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xcF8d0c70c850859266f5C338b38F9D663181C314", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt DAI", + "variableDebtTokenSymbol": "variableDebtEthDAI", + "virtualAccountingActive": true, + "virtualBalance": 17331316260083583107428548 + }, + "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": { + "aToken": "0x0C0d01AbF3e6aDfcA0989eBbA9d6e85dD58EaB1E", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum PYUSD", + "aTokenSymbol": "aEthPYUSD", + "aTokenUnderlyingBalance": 4032753933237, + "borrowCap": 48000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 6, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 0, + "liquidationProtocolFee": 0, + "liquidationThreshold": 0, + "ltv": 0, + "oracle": "0x150bAe7Ce224555D39AfdBc6Cb4B8204E594E022", + "oracleDecimals": 8, + "oracleDescription": "Capped pyUSD/USD", + "oracleLatestAnswer": 99954657, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x5B393DB4c72B1Bd82CE2834F6485d61b137Bc7aC", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt PYUSD", + "stableDebtTokenSymbol": "stableDebtEthPYUSD", + "supplyCap": 60000000, + "symbol": "PYUSD", + "underlying": "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8", + "usageAsCollateralEnabled": false, + "variableDebtToken": "0x57B67e4DE077085Fd0AF2174e9c14871BE664546", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt PYUSD", + "variableDebtTokenSymbol": "variableDebtEthPYUSD", + "virtualAccountingActive": true, + "virtualBalance": 4032731865307 + }, + "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9": { + "aToken": "0xA700b4eB416Be35b2911fd5Dee80678ff64fF6C9", + "aTokenImpl": "0x366AE337897223AEa70e3EBe1862219386f20593", + "aTokenName": "Aave Ethereum AAVE", + "aTokenSymbol": "aEthAAVE", + "aTokenUnderlyingBalance": 1151057745379757585429419, + "borrowCap": 0, + "borrowingEnabled": false, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": false, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7300, + "ltv": 6600, + "oracle": "0x547a514d5e3769680Ce22B2361c10Ea13619e8a9", + "oracleDecimals": 8, + "oracleDescription": "AAVE / USD", + "oracleLatestAnswer": 10426279136, + "reserveFactor": 0, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x268497bF083388B1504270d0E717222d3A87D6F2", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt AAVE", + "stableDebtTokenSymbol": "stableDebtEthAAVE", + "supplyCap": 1850000, + "symbol": "AAVE", + "underlying": "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xBae535520Abd9f8C85E58929e0006A2c8B372F74", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt AAVE", + "variableDebtTokenSymbol": "variableDebtEthAAVE", + "virtualAccountingActive": true, + "virtualBalance": 1151057745379757585429419 + }, + "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": { + "aToken": "0x0B925eD163218f6662a35e0f0371Ac234f9E9371", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum wstETH", + "aTokenSymbol": "aEthwstETH", + "aTokenUnderlyingBalance": 1043181200788407375678006, + "borrowCap": 48000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10600, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 8100, + "ltv": 7850, + "oracle": "0xB4aB0c94159bc2d8C133946E7241368fc2F2a010", + "oracleDecimals": 8, + "oracleDescription": "Capped wstETH / stETH(ETH) / USD", + "oracleLatestAnswer": 322744108845, + "reserveFactor": 500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x39739943199c0fBFe9E5f1B5B160cd73a64CB85D", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt wstETH", + "stableDebtTokenSymbol": "stableDebtEthwstETH", + "supplyCap": 1250000, + "symbol": "wstETH", + "underlying": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xC96113eED8cAB59cD8A66813bCB0cEb29F06D2e4", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt wstETH", + "variableDebtTokenSymbol": "variableDebtEthwstETH", + "virtualAccountingActive": true, + "virtualBalance": 1043181200775717977546644 + }, + "0x83F20F44975D03b1b09e64809B757c47f942BEeA": { + "aToken": "0x4C612E3B15b96Ff9A6faED838F8d07d479a8dD4c", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum sDAI", + "aTokenSymbol": "aEthsDAI", + "aTokenUnderlyingBalance": 40791389848568588414911204, + "borrowCap": 0, + "borrowingEnabled": false, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10450, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7800, + "ltv": 7500, + "oracle": "0x29081f7aB5a644716EfcDC10D5c926c5fEe9F72B", + "oracleDecimals": 8, + "oracleDescription": "sDAI/DAI/USD", + "oracleLatestAnswer": 110232954, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x48Bc45f084988bC01933EA93EeFfEBC0416534f6", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt sDAI", + "stableDebtTokenSymbol": "stableDebtEthsDAI", + "supplyCap": 340000000, + "symbol": "sDAI", + "underlying": "0x83F20F44975D03b1b09e64809B757c47f942BEeA", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x8Db9D35e117d8b93C6Ca9b644b25BaD5d9908141", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt sDAI", + "variableDebtTokenSymbol": "variableDebtEthsDAI", + "virtualAccountingActive": true, + "virtualBalance": 40791389848568588414911198 + }, + "0x853d955aCEf822Db058eb8505911ED77F175b99e": { + "aToken": "0xd4e245848d6E1220DBE62e155d89fa327E43CB06", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum FRAX", + "aTokenSymbol": "aEthFRAX", + "aTokenUnderlyingBalance": 340629166494285040246571, + "borrowCap": 12000000, + "borrowingEnabled": true, + "debtCeiling": 1000000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10600, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7200, + "ltv": 0, + "oracle": "0x45D270263BBee500CF8adcf2AbC0aC227097b036", + "oracleDecimals": 8, + "oracleDescription": "Capped FRAX/USD", + "oracleLatestAnswer": 99691630, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x219640546c0DFDDCb9ab3bcdA89B324e0a376367", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt FRAX", + "stableDebtTokenSymbol": "stableDebtEthFRAX", + "supplyCap": 15000000, + "symbol": "FRAX", + "underlying": "0x853d955aCEf822Db058eb8505911ED77F175b99e", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x88B8358F5BC87c2D7E116cCA5b65A9eEb2c5EA3F", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt FRAX", + "variableDebtTokenSymbol": "variableDebtEthFRAX", + "virtualAccountingActive": true, + "virtualBalance": 340622711870364868171838 + }, + "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497": { + "aToken": "0x4579a27aF00A62C0EB156349f31B345c08386419", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum sUSDe", + "aTokenSymbol": "aEthsUSDe", + "aTokenUnderlyingBalance": 971292161800301570672773, + "borrowCap": 0, + "borrowingEnabled": false, + "debtCeiling": 4000000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10850, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7500, + "ltv": 7200, + "oracle": "0xb37aE8aBa6C0C1Bf2c509fc06E11aa4AF29B665A", + "oracleDecimals": 8, + "oracleDescription": "Capped sUSDe / USDe / USD", + "oracleLatestAnswer": 109574713, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xc9335dE638f4C96a8330b2FFc44353Bab58774e3", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt sUSDe", + "stableDebtTokenSymbol": "stableDebtEthsUSDe", + "supplyCap": 85000000, + "symbol": "sUSDe", + "underlying": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xeFFDE9BFA8EC77c14C364055a200746d6e12BeD6", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt sUSDe", + "variableDebtTokenSymbol": "variableDebtEthsUSDe", + "virtualAccountingActive": true, + "virtualBalance": 971292161800301570672773 + }, + "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2": { + "aToken": "0x8A458A9dc9048e005d22849F470891b840296619", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum MKR", + "aTokenSymbol": "aEthMKR", + "aTokenUnderlyingBalance": 21889314993637497790878, + "borrowCap": 1980, + "borrowingEnabled": true, + "debtCeiling": 1200000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10850, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7000, + "ltv": 6500, + "oracle": "0xec1D1B3b0443256cc3860e24a46F108e699484Aa", + "oracleDecimals": 8, + "oracleDescription": "MKR / USD", + "oracleLatestAnswer": 210786497462, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x0496372BE7e426D28E89DEBF01f19F014d5938bE", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt MKR", + "stableDebtTokenSymbol": "stableDebtEthMKR", + "supplyCap": 22500, + "symbol": "MKR", + "underlying": "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x6Efc73E54E41b27d2134fF9f98F15550f30DF9B1", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt MKR", + "variableDebtTokenSymbol": "variableDebtEthMKR", + "virtualAccountingActive": true, + "virtualBalance": 21889314703898259213546 + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "aToken": "0x98C23E9d8f34FEFb1B7BD6a91B7FF122F4e16F5c", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum USDC", + "aTokenSymbol": "aEthUSDC", + "aTokenUnderlyingBalance": 356248845894553, + "borrowCap": 2100000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 6, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10450, + "liquidationProtocolFee": 2000, + "liquidationThreshold": 7800, + "ltv": 7500, + "oracle": "0x736bF902680e68989886e9807CD7Db4B3E015d3C", + "oracleDecimals": 8, + "oracleDescription": "Capped USDC/USD", + "oracleLatestAnswer": 99997000, + "reserveFactor": 1000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xB0fe3D292f4bd50De902Ba5bDF120Ad66E9d7a39", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt USDC", + "stableDebtTokenSymbol": "stableDebtEthUSDC", + "supplyCap": 2250000000, + "symbol": "USDC", + "underlying": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x72E95b8931767C79bA4EeE721354d6E99a61D004", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt USDC", + "variableDebtTokenSymbol": "variableDebtEthUSDC", + "virtualAccountingActive": true, + "virtualBalance": 356242507969279 + }, + "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b": { + "aToken": "0x1c0E06a0b1A4c160c17545FF2A951bfcA57C0002", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum ETHx", + "aTokenSymbol": "aEthETHx", + "aTokenUnderlyingBalance": 3624679020920191499199, + "borrowCap": 320, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7700, + "ltv": 7450, + "oracle": "0xD6270dAabFe4862306190298C2B48fed9e15C847", + "oracleDecimals": 8, + "oracleDescription": "Capped ethX / ETH / USD", + "oracleLatestAnswer": 284788624237, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xBDfa7DE5CF7a7DdE4F023Cac842BF520fcF5395C", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt ETHx", + "stableDebtTokenSymbol": "stableDebtEthETHx", + "supplyCap": 5000, + "symbol": "ETHx", + "underlying": "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x08a8Dc81AeA67F84745623aC6c72CDA3967aab8b", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt ETHx", + "variableDebtTokenSymbol": "variableDebtEthETHx", + "virtualAccountingActive": true, + "virtualBalance": 3624679019720578764889 + }, + "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6": { + "aToken": "0x1bA9843bD4327c6c77011406dE5fA8749F7E3479", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum STG", + "aTokenSymbol": "aEthSTG", + "aTokenUnderlyingBalance": 39154011080607732861576, + "borrowCap": 3200000, + "borrowingEnabled": true, + "debtCeiling": 300000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": true, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 11000, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 3700, + "ltv": 0, + "oracle": "0x7A9f34a0Aa917D438e9b6E630067062B7F8f6f3d", + "oracleDecimals": 8, + "oracleDescription": "STG / USD", + "oracleLatestAnswer": 33562895, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xc3115D0660b93AeF10F298886ae22E3Dd477E482", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt STG", + "stableDebtTokenSymbol": "stableDebtEthSTG", + "supplyCap": 10000000, + "symbol": "STG", + "underlying": "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x655568bDd6168325EC7e58Bf39b21A856F906Dc2", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt STG", + "variableDebtTokenSymbol": "variableDebtEthSTG", + "virtualAccountingActive": true, + "virtualBalance": 39154007796040797948199 + }, + "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704": { + "aToken": "0x977b6fc5dE62598B08C85AC8Cf2b745874E8b78c", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum cbETH", + "aTokenSymbol": "aEthcbETH", + "aTokenUnderlyingBalance": 6975250578763067333421, + "borrowCap": 2400, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7700, + "ltv": 7450, + "oracle": "0x6243d2F41b4ec944F731f647589E28d9745a2674", + "oracleDecimals": 8, + "oracleDescription": "Capped cbETH / ETH / USD", + "oracleLatestAnswer": 296116764778, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x82bE6012cea6D147B968eBAea5ceEcF6A5b4F493", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt cbETH", + "stableDebtTokenSymbol": "stableDebtEthcbETH", + "supplyCap": 60000, + "symbol": "cbETH", + "underlying": "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x0c91bcA95b5FE69164cE583A2ec9429A569798Ed", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt cbETH", + "variableDebtTokenSymbol": "variableDebtEthcbETH", + "virtualAccountingActive": true, + "virtualBalance": 6975250364543390750109 + }, + "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F": { + "aToken": "0xC7B4c17861357B8ABB91F25581E7263E08DCB59c", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum SNX", + "aTokenSymbol": "aEthSNX", + "aTokenUnderlyingBalance": 781035084382720674536087, + "borrowCap": 150000, + "borrowingEnabled": true, + "debtCeiling": 400000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10850, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 6500, + "ltv": 4900, + "oracle": "0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699", + "oracleDecimals": 8, + "oracleDescription": "SNX / USD", + "oracleLatestAnswer": 135461605, + "reserveFactor": 3500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x478E1ec1A2BeEd94c1407c951E4B9e22d53b2501", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt SNX", + "stableDebtTokenSymbol": "stableDebtEthSNX", + "supplyCap": 4500000, + "symbol": "SNX", + "underlying": "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x8d0de040e8aAd872eC3c33A3776dE9152D3c34ca", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt SNX", + "variableDebtTokenSymbol": "variableDebtEthSNX", + "virtualAccountingActive": true, + "virtualBalance": 781033971494955135944727 + }, + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "aToken": "0x4d5F47FA6A74757f35C14fD3a6Ef8E3C9BC514E8", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum WETH", + "aTokenSymbol": "aEthWETH", + "aTokenUnderlyingBalance": 146372786674796319033616, + "borrowCap": 1400000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10500, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 8300, + "ltv": 8050, + "oracle": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "oracleDecimals": 8, + "oracleDescription": "ETH / USD", + "oracleLatestAnswer": 274460330000, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x102633152313C81cD80419b6EcF66d14Ad68949A", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt WETH", + "stableDebtTokenSymbol": "stableDebtEthWETH", + "supplyCap": 1800000, + "symbol": "WETH", + "underlying": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xeA51d7853EEFb32b6ee06b1C12E6dcCA88Be0fFE", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt WETH", + "variableDebtTokenSymbol": "variableDebtEthWETH", + "virtualAccountingActive": true, + "virtualBalance": 146372780221250031504025 + }, + "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72": { + "aToken": "0x545bD6c032eFdde65A377A6719DEF2796C8E0f2e", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum ENS", + "aTokenSymbol": "aEthENS", + "aTokenUnderlyingBalance": 234352093861134532906296, + "borrowCap": 40000, + "borrowingEnabled": true, + "debtCeiling": 390000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10800, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 4900, + "ltv": 3900, + "oracle": "0x5C00128d4d1c2F4f652C267d7bcdD7aC99C16E16", + "oracleDecimals": 8, + "oracleDescription": "ENS / USD", + "oracleLatestAnswer": 2015335479, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x7617d02E311CdE347A0cb45BB7DF2926BBaf5347", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt ENS", + "stableDebtTokenSymbol": "stableDebtEthENS", + "supplyCap": 1500000, + "symbol": "ENS", + "underlying": "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xd180D7fdD4092f07428eFE801E17BC03576b3192", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt ENS", + "variableDebtTokenSymbol": "variableDebtEthENS", + "virtualAccountingActive": true, + "virtualBalance": 234352093063484635298700 + }, + "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee": { + "aToken": "0xBdfa7b7893081B35Fb54027489e2Bc7A38275129", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum weETH", + "aTokenSymbol": "aEthweETH", + "aTokenUnderlyingBalance": 665988949249210053647546, + "borrowCap": 200000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7500, + "ltv": 7250, + "oracle": "0xf112aF6F0A332B815fbEf3Ff932c057E570b62d3", + "oracleDecimals": 8, + "oracleDescription": "Capped weETH / eETH(ETH) / USD", + "oracleLatestAnswer": 286969695770, + "reserveFactor": 4500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xBad6eF8e76E26F39e985474aD0974FDcabF85d37", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt weETH", + "stableDebtTokenSymbol": "stableDebtEthweETH", + "supplyCap": 720000, + "symbol": "weETH", + "underlying": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x77ad9BF13a52517AD698D65913e8D381300c8Bf3", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt weETH", + "variableDebtTokenSymbol": "variableDebtEthweETH", + "virtualAccountingActive": true, + "virtualBalance": 665988949249210053647546 + }, + "0xD33526068D116cE69F19A9ee46F0bd304F21A51f": { + "aToken": "0xB76CF92076adBF1D9C39294FA8e7A67579FDe357", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum RPL", + "aTokenSymbol": "aEthRPL", + "aTokenUnderlyingBalance": 137134829527879593455816, + "borrowCap": 500000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 0, + "liquidationProtocolFee": 0, + "liquidationThreshold": 0, + "ltv": 0, + "oracle": "0x4E155eD98aFE9034b7A5962f6C84c86d869daA9d", + "oracleDecimals": 8, + "oracleDescription": "RPL / USD", + "oracleLatestAnswer": 1221740000, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x41e330fd8F7eA31E2e8F02cC0C9392D1403597B4", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt RPL", + "stableDebtTokenSymbol": "stableDebtEthRPL", + "supplyCap": 840000, + "symbol": "RPL", + "underlying": "0xD33526068D116cE69F19A9ee46F0bd304F21A51f", + "usageAsCollateralEnabled": false, + "variableDebtToken": "0x8988ECA19D502fd8b9CCd03fA3bD20a6f599bc2A", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt RPL", + "variableDebtTokenSymbol": "variableDebtEthRPL", + "virtualAccountingActive": true, + "virtualBalance": 137134433089409746589195 + }, + "0xD533a949740bb3306d119CC777fa900bA034cd52": { + "aToken": "0x7B95Ec873268a6BFC6427e7a28e396Db9D0ebc65", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum CRV", + "aTokenSymbol": "aEthCRV", + "aTokenUnderlyingBalance": 2943901067081954293282267, + "borrowCap": 2750000, + "borrowingEnabled": true, + "debtCeiling": 100000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10830, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 4100, + "ltv": 3500, + "oracle": "0xCd627aA160A6fA45Eb793D19Ef54f5062F20f33f", + "oracleDecimals": 8, + "oracleDescription": "CRV / USD", + "oracleLatestAnswer": 30263273, + "reserveFactor": 3500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x90D9CD005E553111EB8C9c31Abe9706a186b6048", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt CRV", + "stableDebtTokenSymbol": "stableDebtEthCRV", + "supplyCap": 10000000, + "symbol": "CRV", + "underlying": "0xD533a949740bb3306d119CC777fa900bA034cd52", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x1b7D3F4b3c032a5AE656e30eeA4e8E1Ba376068F", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt CRV", + "variableDebtTokenSymbol": "variableDebtEthCRV", + "virtualAccountingActive": true, + "virtualBalance": 2943901067081954293282267 + }, + "0xae78736Cd615f374D3085123A210448E74Fc6393": { + "aToken": "0xCc9EE9483f662091a1de4795249E24aC0aC2630f", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum rETH", + "aTokenSymbol": "aEthrETH", + "aTokenUnderlyingBalance": 44234449115297682041249, + "borrowCap": 19200, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7700, + "ltv": 7450, + "oracle": "0x5AE8365D0a30D67145f0c55A08760C250559dB64", + "oracleDecimals": 8, + "oracleDescription": "Capped rETH / ETH / USD", + "oracleLatestAnswer": 305677186273, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x1d1906f909CAe494c7441604DAfDDDbD0485A925", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt rETH", + "stableDebtTokenSymbol": "stableDebtEthrETH", + "supplyCap": 90000, + "symbol": "rETH", + "underlying": "0xae78736Cd615f374D3085123A210448E74Fc6393", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xae8593DD575FE29A9745056aA91C4b746eee62C8", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt rETH", + "variableDebtTokenSymbol": "variableDebtEthrETH", + "virtualAccountingActive": true, + "virtualBalance": 44234448913616752159631 + }, + "0xba100000625a3754423978a60c9317c58a424e3D": { + "aToken": "0x2516E7B3F76294e03C42AA4c5b5b4DCE9C436fB8", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum BAL", + "aTokenSymbol": "aEthBAL", + "aTokenUnderlyingBalance": 5309239427795167357455318, + "borrowCap": 500000, + "borrowingEnabled": true, + "debtCeiling": 290000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10830, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 5900, + "ltv": 5700, + "oracle": "0xdF2917806E30300537aEB49A7663062F4d1F2b5F", + "oracleDecimals": 8, + "oracleDescription": "BAL / USD", + "oracleLatestAnswer": 196650000, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xB368d45aaAa07ee2c6275Cb320D140b22dE43CDD", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt BAL", + "stableDebtTokenSymbol": "stableDebtEthBAL", + "supplyCap": 5700000, + "symbol": "BAL", + "underlying": "0xba100000625a3754423978a60c9317c58a424e3D", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x3D3efceb4Ff0966D34d9545D3A2fa2dcdBf451f2", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt BAL", + "variableDebtTokenSymbol": "variableDebtEthBAL", + "virtualAccountingActive": true, + "virtualBalance": 5309233618152073594482407 + }, + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "aToken": "0x23878914EFE38d27C4D67Ab83ed1b93A74D4086a", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum USDT", + "aTokenSymbol": "aEthUSDT", + "aTokenUnderlyingBalance": 285980068347602, + "borrowCap": 2250000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 6, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10450, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7800, + "ltv": 7500, + "oracle": "0xC26D4a1c46d884cfF6dE9800B6aE7A8Cf48B4Ff8", + "oracleDecimals": 8, + "oracleDescription": "Capped USDT/USD", + "oracleLatestAnswer": 100031407, + "reserveFactor": 1000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x822Fa72Df1F229C3900f5AD6C3Fa2C424D691622", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt USDT", + "stableDebtTokenSymbol": "stableDebtEthUSDT", + "supplyCap": 2500000000, + "symbol": "USDT", + "underlying": "0xdAC17F958D2ee523a2206206994597C13D831ec7", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x6df1C1E379bC5a00a7b4C6e67A203333772f45A8", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt USDT", + "variableDebtTokenSymbol": "variableDebtEthUSDT", + "virtualAccountingActive": true, + "virtualBalance": 285978914133390 + }, + "0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202": { + "aToken": "0x5b502e3796385E1e9755d7043B9C945C3aCCeC9C", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum KNC", + "aTokenSymbol": "aEthKNC", + "aTokenUnderlyingBalance": 51952343860150470181768, + "borrowCap": 350000, + "borrowingEnabled": true, + "debtCeiling": 100000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": true, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 11000, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 3700, + "ltv": 0, + "oracle": "0xf8fF43E991A81e6eC886a3D281A2C6cC19aE70Fc", + "oracleDecimals": 8, + "oracleDescription": "KNC / USD", + "oracleLatestAnswer": 43658763, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xdfEE0C9eA1309cB9611F33972E72a72166fcF548", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt KNC", + "stableDebtTokenSymbol": "stableDebtEthKNC", + "supplyCap": 1200000, + "symbol": "KNC", + "underlying": "0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x253127Ffc04981cEA8932F406710661c2f2c3fD2", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt KNC", + "variableDebtTokenSymbol": "variableDebtEthKNC", + "virtualAccountingActive": true, + "virtualBalance": 51945613145003933963981 + }, + "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38": { + "aToken": "0x927709711794F3De5DdBF1D176bEE2D55Ba13c21", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum osETH", + "aTokenSymbol": "aEthosETH", + "aTokenUnderlyingBalance": 1717949884875011057102, + "borrowCap": 1000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7500, + "ltv": 7250, + "oracle": "0x0A2AF898cEc35197e6944D9E0F525C2626393442", + "oracleDecimals": 8, + "oracleDescription": "Capped osETH / ETH / USD", + "oracleLatestAnswer": 281040892991, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x48Fa27f511F40d16f9E7C913e9388d52d95bC6d2", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt osETH", + "stableDebtTokenSymbol": "stableDebtEthosETH", + "supplyCap": 10000, + "symbol": "osETH", + "underlying": "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x8838eefF2af391863E1Bb8b1dF563F86743a8470", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt osETH", + "variableDebtTokenSymbol": "variableDebtEthosETH", + "virtualAccountingActive": true, + "virtualBalance": 1717949879319042132766 + }, + "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E": { + "aToken": "0xb82fa9f31612989525992FCfBB09AB22Eff5c85A", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum crvUSD", + "aTokenSymbol": "aEthcrvUSD", + "aTokenUnderlyingBalance": 79170366477226651673391, + "borrowCap": 50000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 0, + "liquidationProtocolFee": 0, + "liquidationThreshold": 0, + "ltv": 0, + "oracle": "0x02AeE5b225366302339748951E1a924617b8814F", + "oracleDecimals": 8, + "oracleDescription": "Capped crvUSD/USD", + "oracleLatestAnswer": 99910528, + "reserveFactor": 1000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xb55C604075D79486b8A329c396Fc711Be54B5330", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt crvUSD", + "stableDebtTokenSymbol": "stableDebtEthcrvUSD", + "supplyCap": 60000000, + "symbol": "crvUSD", + "underlying": "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E", + "usageAsCollateralEnabled": false, + "variableDebtToken": "0x028f7886F3e937f8479efaD64f31B3fE1119857a", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt crvUSD", + "variableDebtTokenSymbol": "variableDebtEthcrvUSD", + "virtualAccountingActive": true, + "virtualBalance": 79164166344431843561621 + } + }, + "strategies": { + "0x111111111117dC0aa78b770fA6A738034120C302": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3090000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3040000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "40000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3090000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "60000000000000000000000000", + "maxVariableBorrowRate": "60000000000000000000000000", + "optimalUsageRatio": "990000000000000000000000000", + "variableRateSlope1": "0", + "variableRateSlope2": "0" + }, + "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "840000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0x514910771AF9Ca656af840dff83E8264EcF986CA": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "935000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "870000000000000000000000000" + }, + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "815000000000000000000000000", + "optimalUsageRatio": "920000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "865000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "800000000000000000000000000" + }, + "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "2500000000000000000000000", + "maxVariableBorrowRate": "847500000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "45000000000000000000000000", + "variableRateSlope2": "800000000000000000000000000" + }, + "0x83F20F44975D03b1b09e64809B757c47f942BEeA": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "800000000000000000000000000", + "optimalUsageRatio": "900000000000000000000000000", + "variableRateSlope1": "50000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0x853d955aCEf822Db058eb8505911ED77F175b99e": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "815000000000000000000000000", + "optimalUsageRatio": "900000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "0", + "optimalUsageRatio": "900000000000000000000000000", + "variableRateSlope1": "0", + "variableRateSlope2": "0" + }, + "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "665000000000000000000000000", + "optimalUsageRatio": "920000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "600000000000000000000000000" + }, + "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "30000000000000000000000000", + "maxVariableBorrowRate": "1180000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "150000000000000000000000000", + "variableRateSlope2": "1000000000000000000000000000" + }, + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "827000000000000000000000000", + "optimalUsageRatio": "900000000000000000000000000", + "variableRateSlope1": "27000000000000000000000000", + "variableRateSlope2": "800000000000000000000000000" + }, + "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3090000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "350000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xD33526068D116cE69F19A9ee46F0bd304F21A51f": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "955000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "85000000000000000000000000", + "variableRateSlope2": "870000000000000000000000000" + }, + "0xD533a949740bb3306d119CC777fa900bA034cd52": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "30000000000000000000000000", + "maxVariableBorrowRate": "3170000000000000000000000000", + "optimalUsageRatio": "700000000000000000000000000", + "variableRateSlope1": "140000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xae78736Cd615f374D3085123A210448E74Fc6393": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xba100000625a3754423978a60c9317c58a424e3D": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "50000000000000000000000000", + "maxVariableBorrowRate": "1770000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "220000000000000000000000000", + "variableRateSlope2": "1500000000000000000000000000" + }, + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "815000000000000000000000000", + "optimalUsageRatio": "920000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3090000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "865000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "800000000000000000000000000" + } + } +} diff --git a/src/reports/mocks/pregho.json b/src/reports/mocks/pregho.json new file mode 100644 index 0000000..2d34e75 --- /dev/null +++ b/src/reports/mocks/pregho.json @@ -0,0 +1,1708 @@ +{ + "chainId": 1, + "eModes": { + "1": { + "eModeCategory": 1, + "label": "ETH correlated", + "liquidationBonus": 10100, + "liquidationThreshold": 9500, + "ltv": 9300, + "priceSource": "0x0000000000000000000000000000000000000000" + } + }, + "poolConfig": { + "oracle": "0x54586bE62E3c3580375aE3723C145253060Ca0C2", + "pool": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2", + "poolAddressesProvider": "0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e", + "poolConfigurator": "0x64b761D848206f447Fe2dd461b0c635Ec39EbB27", + "poolConfiguratorImpl": "0x419226e0Ad27f3B2019123f7246a364622b018e5", + "poolImpl": "0x34339f94350EC5274ea44d0C37DAe9e968c44081", + "priceOracleSentinel": "0x0000000000000000000000000000000000000000", + "protocolDataProvider": "0x20e074F62EcBD8BC5E38211adCb6103006113A22" + }, + "reserves": { + "0x111111111117dC0aa78b770fA6A738034120C302": { + "aToken": "0x71Aef7b30728b9BB371578f36c5A1f1502a5723e", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum 1INCH", + "aTokenSymbol": "aEth1INCH", + "aTokenUnderlyingBalance": 2478959193337123480592396, + "borrowCap": 475200, + "borrowingEnabled": true, + "debtCeiling": 450000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 6700, + "ltv": 5700, + "oracle": "0xc929ad75B72593967DE83E7F7Cda0493458261D9", + "oracleDecimals": 8, + "oracleDescription": "1INCH / USD", + "oracleLatestAnswer": 27109589, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x4b62bFAff61AB3985798e5202D2d167F567D0BCD", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt 1INCH", + "stableDebtTokenSymbol": "stableDebtEth1INCH", + "supplyCap": 30000000, + "symbol": "1INCH", + "underlying": "0x111111111117dC0aa78b770fA6A738034120C302", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xA38fCa8c6Bf9BdA52E76EB78f08CaA3BE7c5A970", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt 1INCH", + "variableDebtTokenSymbol": "variableDebtEth1INCH", + "virtualAccountingActive": true, + "virtualBalance": 2478958768415843957793267 + }, + "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984": { + "aToken": "0xF6D2224916DDFbbab6e6bd0D1B7034f4Ae0CaB18", + "aTokenImpl": "0x21714092D90c7265F52fdfDae068EC11a23C6248", + "aTokenName": "Aave Ethereum UNI", + "aTokenSymbol": "aEthUNI", + "aTokenUnderlyingBalance": 3348926647069390172311802, + "borrowCap": 330000, + "borrowingEnabled": true, + "debtCeiling": 1700000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 11000, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7400, + "ltv": 6500, + "oracle": "0x553303d460EE0afB37EdFf9bE42922D8FF63220e", + "oracleDecimals": 8, + "oracleDescription": "UNI / USD", + "oracleLatestAnswer": 641754330, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x2FEc76324A0463c46f32e74A86D1cf94C02158DC", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt UNI", + "stableDebtTokenSymbol": "stableDebtEthUNI", + "supplyCap": 4000000, + "symbol": "UNI", + "underlying": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xF64178Ebd2E2719F2B1233bCb5Ef6DB4bCc4d09a", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt UNI", + "variableDebtTokenSymbol": "variableDebtEthUNI", + "virtualAccountingActive": true, + "virtualBalance": 3348926632846433787350440 + }, + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "aToken": "0x5Ee5bf7ae06D1Be5997A1A72006FE6C607eC6DE8", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum WBTC", + "aTokenSymbol": "aEthWBTC", + "aTokenUnderlyingBalance": 3140693088489, + "borrowCap": 28000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 8, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10500, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7800, + "ltv": 7300, + "oracle": "0x230E0321Cf38F09e247e50Afc7801EA2351fe56F", + "oracleDecimals": 8, + "oracleLatestAnswer": 6121554931460, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xA1773F1ccF6DB192Ad8FE826D15fe1d328B03284", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt WBTC", + "stableDebtTokenSymbol": "stableDebtEthWBTC", + "supplyCap": 43000, + "symbol": "WBTC", + "underlying": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x40aAbEf1aa8f0eEc637E0E7d92fbfFB2F26A8b7B", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt WBTC", + "variableDebtTokenSymbol": "variableDebtEthWBTC", + "virtualAccountingActive": true, + "virtualBalance": 3140693086455 + }, + "0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0": { + "aToken": "0x82F9c5ad306BBa1AD0De49bB5FA6F01bf61085ef", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum FXS", + "aTokenSymbol": "aEthFXS", + "aTokenUnderlyingBalance": 679219640699595011327213, + "borrowCap": 330000, + "borrowingEnabled": true, + "debtCeiling": 400000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": true, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 11000, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 4200, + "ltv": 0, + "oracle": "0x6Ebc52C8C1089be9eB3945C4350B68B8E4C2233f", + "oracleDecimals": 8, + "oracleDescription": "FXS / USD", + "oracleLatestAnswer": 185279708, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x61dFd349140C239d3B61fEe203Efc811b518a317", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt FXS", + "stableDebtTokenSymbol": "stableDebtEthFXS", + "supplyCap": 1200000, + "symbol": "FXS", + "underlying": "0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x68e9f0aD4e6f8F5DB70F6923d4d6d5b225B83b16", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt FXS", + "variableDebtTokenSymbol": "variableDebtEthFXS", + "virtualAccountingActive": true, + "virtualBalance": 679219640429642865541514 + }, + "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": { + "aToken": "0x00907f9921424583e7ffBfEdf84F92B7B2Be4977", + "aTokenImpl": "0x2f32A274e02FA356423CE5e97a8e3155c1Ac396b", + "aTokenName": "Aave Ethereum GHO", + "aTokenSymbol": "aEthGHO", + "aTokenUnderlyingBalance": 13397769156900514357248, + "borrowCap": 105000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": false, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 0, + "liquidationProtocolFee": 0, + "liquidationThreshold": 0, + "ltv": 0, + "oracle": "0xD110cac5d8682A3b045D5524a9903E031d70FCCd", + "oracleDecimals": 8, + "oracleLatestAnswer": 100000000, + "reserveFactor": 0, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x3f3DF7266dA30102344A813F1a3D07f5F041B5AC", + "stableDebtTokenImpl": "0x05b435C741F5ab03C2E6735e23f1b7Fe01Cc6b22", + "stableDebtTokenName": "Aave Ethereum Stable Debt GHO", + "stableDebtTokenSymbol": "stableDebtEthGHO", + "supplyCap": 0, + "symbol": "GHO", + "underlying": "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f", + "usageAsCollateralEnabled": false, + "variableDebtToken": "0x786dBff3f1292ae8F92ea68Cf93c30b34B1ed04B", + "variableDebtTokenImpl": "0x20Cb2f303EDe313e2Cc44549Ad8653a5E8c0050e", + "variableDebtTokenName": "Aave Ethereum Variable Debt GHO", + "variableDebtTokenSymbol": "variableDebtEthGHO", + "virtualAccountingActive": false, + "virtualBalance": 0 + }, + "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3": { + "aToken": "0x4F5923Fc5FD4a93352581b38B7cD26943012DECF", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum USDe", + "aTokenSymbol": "aEthUSDe", + "aTokenUnderlyingBalance": 9981259705086368142756646, + "borrowCap": 110000000, + "borrowingEnabled": true, + "debtCeiling": 5000000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10850, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7500, + "ltv": 7200, + "oracle": "0x55B6C4D3E8A27b8A1F5a263321b602e0fdEEcC17", + "oracleDecimals": 8, + "oracleDescription": "Capped USDe / USD", + "oracleLatestAnswer": 99909236, + "reserveFactor": 2500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x43Cc8AD0c223b38D9c04802bB184A2D97e497D38", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt USDe", + "stableDebtTokenSymbol": "stableDebtEthUSDe", + "supplyCap": 120000000, + "symbol": "USDe", + "underlying": "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x015396E1F286289aE23a762088E863b3ec465145", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt USDe", + "variableDebtTokenSymbol": "variableDebtEthUSDe", + "virtualAccountingActive": true, + "virtualBalance": 9981253231541980645947613 + }, + "0x514910771AF9Ca656af840dff83E8264EcF986CA": { + "aToken": "0x5E8C8A7243651DB1384C0dDfDbE39761E8e7E51a", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum LINK", + "aTokenSymbol": "aEthLINK", + "aTokenUnderlyingBalance": 10779306770886569723896329, + "borrowCap": 13000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10700, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 6800, + "ltv": 5300, + "oracle": "0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c", + "oracleDecimals": 8, + "oracleDescription": "LINK / USD", + "oracleLatestAnswer": 1068549525, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x63B1129ca97D2b9F97f45670787Ac12a9dF1110a", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt LINK", + "stableDebtTokenSymbol": "stableDebtEthLINK", + "supplyCap": 15000000, + "symbol": "LINK", + "underlying": "0x514910771AF9Ca656af840dff83E8264EcF986CA", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x4228F8895C7dDA20227F6a5c6751b8Ebf19a6ba8", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt LINK", + "variableDebtTokenSymbol": "variableDebtEthLINK", + "virtualAccountingActive": true, + "virtualBalance": 10779306769704158190933341 + }, + "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32": { + "aToken": "0x9A44fd41566876A39655f74971a3A6eA0a17a454", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum LDO", + "aTokenSymbol": "aEthLDO", + "aTokenUnderlyingBalance": 5719519054923414824595925, + "borrowCap": 1500000, + "borrowingEnabled": true, + "debtCeiling": 750000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10900, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 5000, + "ltv": 4000, + "oracle": "0xb01e6C9af83879B8e06a092f0DD94309c0D497E4", + "oracleDecimals": 8, + "oracleLatestAnswer": 108142310, + "oracleName": "LDO/ETH/USD", + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xa0a5bF5781Aeb548db9d4226363B9e89287C5FD2", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt LDO", + "stableDebtTokenSymbol": "stableDebtEthLDO", + "supplyCap": 8000000, + "symbol": "LDO", + "underlying": "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xc30808705C01289A3D306ca9CAB081Ba9114eC82", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt LDO", + "variableDebtTokenSymbol": "variableDebtEthLDO", + "virtualAccountingActive": true, + "virtualBalance": 5719518843204751782983003 + }, + "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { + "aToken": "0x3Fe6a295459FAe07DF8A0ceCC36F37160FE86AA9", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum LUSD", + "aTokenSymbol": "aEthLUSD", + "aTokenUnderlyingBalance": 1786402375613953596642248, + "borrowCap": 8000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10450, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7700, + "ltv": 0, + "oracle": "0x9eCdfaCca946614cc32aF63F3DBe50959244F3af", + "oracleDecimals": 8, + "oracleDescription": "Capped LUSD/USD", + "oracleLatestAnswer": 99941318, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x37A6B708FDB1483C231961b9a7F145261E815fc3", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt LUSD", + "stableDebtTokenSymbol": "stableDebtEthLUSD", + "supplyCap": 18000000, + "symbol": "LUSD", + "underlying": "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x33652e48e4B74D18520f11BfE58Edd2ED2cEc5A2", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt LUSD", + "variableDebtTokenSymbol": "variableDebtEthLUSD", + "virtualAccountingActive": true, + "virtualBalance": 1786402375613953596642248 + }, + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "aToken": "0x018008bfb33d285247A21d44E50697654f754e63", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum DAI", + "aTokenSymbol": "aEthDAI", + "aTokenUnderlyingBalance": 17331357478362920570885102, + "borrowCap": 271000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10500, + "liquidationProtocolFee": 2000, + "liquidationThreshold": 7700, + "ltv": 6300, + "oracle": "0xaEb897E1Dc6BbdceD3B9D551C71a8cf172F27AC4", + "oracleDecimals": 8, + "oracleDescription": "Capped DAI/USD", + "oracleLatestAnswer": 99981000, + "reserveFactor": 2500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x413AdaC9E2Ef8683ADf5DDAEce8f19613d60D1bb", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt DAI", + "stableDebtTokenSymbol": "stableDebtEthDAI", + "supplyCap": 338000000, + "symbol": "DAI", + "underlying": "0x6B175474E89094C44Da98b954EedeAC495271d0F", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xcF8d0c70c850859266f5C338b38F9D663181C314", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt DAI", + "variableDebtTokenSymbol": "variableDebtEthDAI", + "virtualAccountingActive": true, + "virtualBalance": 17331316260083583107428548 + }, + "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": { + "aToken": "0x0C0d01AbF3e6aDfcA0989eBbA9d6e85dD58EaB1E", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum PYUSD", + "aTokenSymbol": "aEthPYUSD", + "aTokenUnderlyingBalance": 4032753933237, + "borrowCap": 48000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 6, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 0, + "liquidationProtocolFee": 0, + "liquidationThreshold": 0, + "ltv": 0, + "oracle": "0x150bAe7Ce224555D39AfdBc6Cb4B8204E594E022", + "oracleDecimals": 8, + "oracleDescription": "Capped pyUSD/USD", + "oracleLatestAnswer": 99954657, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x5B393DB4c72B1Bd82CE2834F6485d61b137Bc7aC", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt PYUSD", + "stableDebtTokenSymbol": "stableDebtEthPYUSD", + "supplyCap": 60000000, + "symbol": "PYUSD", + "underlying": "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8", + "usageAsCollateralEnabled": false, + "variableDebtToken": "0x57B67e4DE077085Fd0AF2174e9c14871BE664546", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt PYUSD", + "variableDebtTokenSymbol": "variableDebtEthPYUSD", + "virtualAccountingActive": true, + "virtualBalance": 4032731865307 + }, + "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9": { + "aToken": "0xA700b4eB416Be35b2911fd5Dee80678ff64fF6C9", + "aTokenImpl": "0x366AE337897223AEa70e3EBe1862219386f20593", + "aTokenName": "Aave Ethereum AAVE", + "aTokenSymbol": "aEthAAVE", + "aTokenUnderlyingBalance": 1151057745379757585429419, + "borrowCap": 0, + "borrowingEnabled": false, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": false, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7300, + "ltv": 6600, + "oracle": "0x547a514d5e3769680Ce22B2361c10Ea13619e8a9", + "oracleDecimals": 8, + "oracleDescription": "AAVE / USD", + "oracleLatestAnswer": 10426279136, + "reserveFactor": 0, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x268497bF083388B1504270d0E717222d3A87D6F2", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt AAVE", + "stableDebtTokenSymbol": "stableDebtEthAAVE", + "supplyCap": 1850000, + "symbol": "AAVE", + "underlying": "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xBae535520Abd9f8C85E58929e0006A2c8B372F74", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt AAVE", + "variableDebtTokenSymbol": "variableDebtEthAAVE", + "virtualAccountingActive": true, + "virtualBalance": 1151057745379757585429419 + }, + "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": { + "aToken": "0x0B925eD163218f6662a35e0f0371Ac234f9E9371", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum wstETH", + "aTokenSymbol": "aEthwstETH", + "aTokenUnderlyingBalance": 1043181200788407375678006, + "borrowCap": 48000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10600, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 8100, + "ltv": 7850, + "oracle": "0xB4aB0c94159bc2d8C133946E7241368fc2F2a010", + "oracleDecimals": 8, + "oracleDescription": "Capped wstETH / stETH(ETH) / USD", + "oracleLatestAnswer": 322744108845, + "reserveFactor": 500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x39739943199c0fBFe9E5f1B5B160cd73a64CB85D", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt wstETH", + "stableDebtTokenSymbol": "stableDebtEthwstETH", + "supplyCap": 1250000, + "symbol": "wstETH", + "underlying": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xC96113eED8cAB59cD8A66813bCB0cEb29F06D2e4", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt wstETH", + "variableDebtTokenSymbol": "variableDebtEthwstETH", + "virtualAccountingActive": true, + "virtualBalance": 1043181200775717977546644 + }, + "0x83F20F44975D03b1b09e64809B757c47f942BEeA": { + "aToken": "0x4C612E3B15b96Ff9A6faED838F8d07d479a8dD4c", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum sDAI", + "aTokenSymbol": "aEthsDAI", + "aTokenUnderlyingBalance": 40791389848568588414911204, + "borrowCap": 0, + "borrowingEnabled": false, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10450, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7800, + "ltv": 7500, + "oracle": "0x29081f7aB5a644716EfcDC10D5c926c5fEe9F72B", + "oracleDecimals": 8, + "oracleDescription": "sDAI/DAI/USD", + "oracleLatestAnswer": 110232954, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x48Bc45f084988bC01933EA93EeFfEBC0416534f6", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt sDAI", + "stableDebtTokenSymbol": "stableDebtEthsDAI", + "supplyCap": 340000000, + "symbol": "sDAI", + "underlying": "0x83F20F44975D03b1b09e64809B757c47f942BEeA", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x8Db9D35e117d8b93C6Ca9b644b25BaD5d9908141", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt sDAI", + "variableDebtTokenSymbol": "variableDebtEthsDAI", + "virtualAccountingActive": true, + "virtualBalance": 40791389848568588414911198 + }, + "0x853d955aCEf822Db058eb8505911ED77F175b99e": { + "aToken": "0xd4e245848d6E1220DBE62e155d89fa327E43CB06", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum FRAX", + "aTokenSymbol": "aEthFRAX", + "aTokenUnderlyingBalance": 340629166494285040246571, + "borrowCap": 12000000, + "borrowingEnabled": true, + "debtCeiling": 1000000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10600, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7200, + "ltv": 0, + "oracle": "0x45D270263BBee500CF8adcf2AbC0aC227097b036", + "oracleDecimals": 8, + "oracleDescription": "Capped FRAX/USD", + "oracleLatestAnswer": 99691630, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x219640546c0DFDDCb9ab3bcdA89B324e0a376367", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt FRAX", + "stableDebtTokenSymbol": "stableDebtEthFRAX", + "supplyCap": 15000000, + "symbol": "FRAX", + "underlying": "0x853d955aCEf822Db058eb8505911ED77F175b99e", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x88B8358F5BC87c2D7E116cCA5b65A9eEb2c5EA3F", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt FRAX", + "variableDebtTokenSymbol": "variableDebtEthFRAX", + "virtualAccountingActive": true, + "virtualBalance": 340622711870364868171838 + }, + "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497": { + "aToken": "0x4579a27aF00A62C0EB156349f31B345c08386419", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum sUSDe", + "aTokenSymbol": "aEthsUSDe", + "aTokenUnderlyingBalance": 971292161800301570672773, + "borrowCap": 0, + "borrowingEnabled": false, + "debtCeiling": 4000000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10850, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7500, + "ltv": 7200, + "oracle": "0xb37aE8aBa6C0C1Bf2c509fc06E11aa4AF29B665A", + "oracleDecimals": 8, + "oracleDescription": "Capped sUSDe / USDe / USD", + "oracleLatestAnswer": 109574713, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xc9335dE638f4C96a8330b2FFc44353Bab58774e3", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt sUSDe", + "stableDebtTokenSymbol": "stableDebtEthsUSDe", + "supplyCap": 85000000, + "symbol": "sUSDe", + "underlying": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xeFFDE9BFA8EC77c14C364055a200746d6e12BeD6", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt sUSDe", + "variableDebtTokenSymbol": "variableDebtEthsUSDe", + "virtualAccountingActive": true, + "virtualBalance": 971292161800301570672773 + }, + "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2": { + "aToken": "0x8A458A9dc9048e005d22849F470891b840296619", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum MKR", + "aTokenSymbol": "aEthMKR", + "aTokenUnderlyingBalance": 21889314993637497790878, + "borrowCap": 1980, + "borrowingEnabled": true, + "debtCeiling": 1200000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10850, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7000, + "ltv": 6500, + "oracle": "0xec1D1B3b0443256cc3860e24a46F108e699484Aa", + "oracleDecimals": 8, + "oracleDescription": "MKR / USD", + "oracleLatestAnswer": 210786497462, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x0496372BE7e426D28E89DEBF01f19F014d5938bE", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt MKR", + "stableDebtTokenSymbol": "stableDebtEthMKR", + "supplyCap": 22500, + "symbol": "MKR", + "underlying": "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x6Efc73E54E41b27d2134fF9f98F15550f30DF9B1", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt MKR", + "variableDebtTokenSymbol": "variableDebtEthMKR", + "virtualAccountingActive": true, + "virtualBalance": 21889314703898259213546 + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "aToken": "0x98C23E9d8f34FEFb1B7BD6a91B7FF122F4e16F5c", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum USDC", + "aTokenSymbol": "aEthUSDC", + "aTokenUnderlyingBalance": 356248845894553, + "borrowCap": 2100000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 6, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10450, + "liquidationProtocolFee": 2000, + "liquidationThreshold": 7800, + "ltv": 7500, + "oracle": "0x736bF902680e68989886e9807CD7Db4B3E015d3C", + "oracleDecimals": 8, + "oracleDescription": "Capped USDC/USD", + "oracleLatestAnswer": 99997000, + "reserveFactor": 1000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xB0fe3D292f4bd50De902Ba5bDF120Ad66E9d7a39", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt USDC", + "stableDebtTokenSymbol": "stableDebtEthUSDC", + "supplyCap": 2250000000, + "symbol": "USDC", + "underlying": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x72E95b8931767C79bA4EeE721354d6E99a61D004", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt USDC", + "variableDebtTokenSymbol": "variableDebtEthUSDC", + "virtualAccountingActive": true, + "virtualBalance": 356242507969279 + }, + "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b": { + "aToken": "0x1c0E06a0b1A4c160c17545FF2A951bfcA57C0002", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum ETHx", + "aTokenSymbol": "aEthETHx", + "aTokenUnderlyingBalance": 3624679020920191499199, + "borrowCap": 320, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7700, + "ltv": 7450, + "oracle": "0xD6270dAabFe4862306190298C2B48fed9e15C847", + "oracleDecimals": 8, + "oracleDescription": "Capped ethX / ETH / USD", + "oracleLatestAnswer": 284788624237, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xBDfa7DE5CF7a7DdE4F023Cac842BF520fcF5395C", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt ETHx", + "stableDebtTokenSymbol": "stableDebtEthETHx", + "supplyCap": 5000, + "symbol": "ETHx", + "underlying": "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x08a8Dc81AeA67F84745623aC6c72CDA3967aab8b", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt ETHx", + "variableDebtTokenSymbol": "variableDebtEthETHx", + "virtualAccountingActive": true, + "virtualBalance": 3624679019720578764889 + }, + "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6": { + "aToken": "0x1bA9843bD4327c6c77011406dE5fA8749F7E3479", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum STG", + "aTokenSymbol": "aEthSTG", + "aTokenUnderlyingBalance": 39154011080607732861576, + "borrowCap": 3200000, + "borrowingEnabled": true, + "debtCeiling": 300000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": true, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 11000, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 3700, + "ltv": 0, + "oracle": "0x7A9f34a0Aa917D438e9b6E630067062B7F8f6f3d", + "oracleDecimals": 8, + "oracleDescription": "STG / USD", + "oracleLatestAnswer": 33562895, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xc3115D0660b93AeF10F298886ae22E3Dd477E482", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt STG", + "stableDebtTokenSymbol": "stableDebtEthSTG", + "supplyCap": 10000000, + "symbol": "STG", + "underlying": "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x655568bDd6168325EC7e58Bf39b21A856F906Dc2", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt STG", + "variableDebtTokenSymbol": "variableDebtEthSTG", + "virtualAccountingActive": true, + "virtualBalance": 39154007796040797948199 + }, + "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704": { + "aToken": "0x977b6fc5dE62598B08C85AC8Cf2b745874E8b78c", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum cbETH", + "aTokenSymbol": "aEthcbETH", + "aTokenUnderlyingBalance": 6975250578763067333421, + "borrowCap": 2400, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7700, + "ltv": 7450, + "oracle": "0x6243d2F41b4ec944F731f647589E28d9745a2674", + "oracleDecimals": 8, + "oracleDescription": "Capped cbETH / ETH / USD", + "oracleLatestAnswer": 296116764778, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x82bE6012cea6D147B968eBAea5ceEcF6A5b4F493", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt cbETH", + "stableDebtTokenSymbol": "stableDebtEthcbETH", + "supplyCap": 60000, + "symbol": "cbETH", + "underlying": "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x0c91bcA95b5FE69164cE583A2ec9429A569798Ed", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt cbETH", + "variableDebtTokenSymbol": "variableDebtEthcbETH", + "virtualAccountingActive": true, + "virtualBalance": 6975250364543390750109 + }, + "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F": { + "aToken": "0xC7B4c17861357B8ABB91F25581E7263E08DCB59c", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum SNX", + "aTokenSymbol": "aEthSNX", + "aTokenUnderlyingBalance": 781035084382720674536087, + "borrowCap": 150000, + "borrowingEnabled": true, + "debtCeiling": 400000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10850, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 6500, + "ltv": 4900, + "oracle": "0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699", + "oracleDecimals": 8, + "oracleDescription": "SNX / USD", + "oracleLatestAnswer": 135461605, + "reserveFactor": 3500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x478E1ec1A2BeEd94c1407c951E4B9e22d53b2501", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt SNX", + "stableDebtTokenSymbol": "stableDebtEthSNX", + "supplyCap": 4500000, + "symbol": "SNX", + "underlying": "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x8d0de040e8aAd872eC3c33A3776dE9152D3c34ca", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt SNX", + "variableDebtTokenSymbol": "variableDebtEthSNX", + "virtualAccountingActive": true, + "virtualBalance": 781033971494955135944727 + }, + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "aToken": "0x4d5F47FA6A74757f35C14fD3a6Ef8E3C9BC514E8", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum WETH", + "aTokenSymbol": "aEthWETH", + "aTokenUnderlyingBalance": 146372786674796319033616, + "borrowCap": 1400000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10500, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 8300, + "ltv": 8050, + "oracle": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "oracleDecimals": 8, + "oracleDescription": "ETH / USD", + "oracleLatestAnswer": 274460330000, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x102633152313C81cD80419b6EcF66d14Ad68949A", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt WETH", + "stableDebtTokenSymbol": "stableDebtEthWETH", + "supplyCap": 1800000, + "symbol": "WETH", + "underlying": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xeA51d7853EEFb32b6ee06b1C12E6dcCA88Be0fFE", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt WETH", + "variableDebtTokenSymbol": "variableDebtEthWETH", + "virtualAccountingActive": true, + "virtualBalance": 146372780221250031504025 + }, + "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72": { + "aToken": "0x545bD6c032eFdde65A377A6719DEF2796C8E0f2e", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum ENS", + "aTokenSymbol": "aEthENS", + "aTokenUnderlyingBalance": 234352093861134532906296, + "borrowCap": 40000, + "borrowingEnabled": true, + "debtCeiling": 390000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10800, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 4900, + "ltv": 3900, + "oracle": "0x5C00128d4d1c2F4f652C267d7bcdD7aC99C16E16", + "oracleDecimals": 8, + "oracleDescription": "ENS / USD", + "oracleLatestAnswer": 2015335479, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x7617d02E311CdE347A0cb45BB7DF2926BBaf5347", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt ENS", + "stableDebtTokenSymbol": "stableDebtEthENS", + "supplyCap": 1500000, + "symbol": "ENS", + "underlying": "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xd180D7fdD4092f07428eFE801E17BC03576b3192", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt ENS", + "variableDebtTokenSymbol": "variableDebtEthENS", + "virtualAccountingActive": true, + "virtualBalance": 234352093063484635298700 + }, + "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee": { + "aToken": "0xBdfa7b7893081B35Fb54027489e2Bc7A38275129", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum weETH", + "aTokenSymbol": "aEthweETH", + "aTokenUnderlyingBalance": 665988949249210053647546, + "borrowCap": 200000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7500, + "ltv": 7250, + "oracle": "0xf112aF6F0A332B815fbEf3Ff932c057E570b62d3", + "oracleDecimals": 8, + "oracleDescription": "Capped weETH / eETH(ETH) / USD", + "oracleLatestAnswer": 286969695770, + "reserveFactor": 4500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xBad6eF8e76E26F39e985474aD0974FDcabF85d37", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt weETH", + "stableDebtTokenSymbol": "stableDebtEthweETH", + "supplyCap": 720000, + "symbol": "weETH", + "underlying": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x77ad9BF13a52517AD698D65913e8D381300c8Bf3", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt weETH", + "variableDebtTokenSymbol": "variableDebtEthweETH", + "virtualAccountingActive": true, + "virtualBalance": 665988949249210053647546 + }, + "0xD33526068D116cE69F19A9ee46F0bd304F21A51f": { + "aToken": "0xB76CF92076adBF1D9C39294FA8e7A67579FDe357", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum RPL", + "aTokenSymbol": "aEthRPL", + "aTokenUnderlyingBalance": 137134829527879593455816, + "borrowCap": 500000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 0, + "liquidationProtocolFee": 0, + "liquidationThreshold": 0, + "ltv": 0, + "oracle": "0x4E155eD98aFE9034b7A5962f6C84c86d869daA9d", + "oracleDecimals": 8, + "oracleDescription": "RPL / USD", + "oracleLatestAnswer": 1221740000, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x41e330fd8F7eA31E2e8F02cC0C9392D1403597B4", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt RPL", + "stableDebtTokenSymbol": "stableDebtEthRPL", + "supplyCap": 840000, + "symbol": "RPL", + "underlying": "0xD33526068D116cE69F19A9ee46F0bd304F21A51f", + "usageAsCollateralEnabled": false, + "variableDebtToken": "0x8988ECA19D502fd8b9CCd03fA3bD20a6f599bc2A", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt RPL", + "variableDebtTokenSymbol": "variableDebtEthRPL", + "virtualAccountingActive": true, + "virtualBalance": 137134433089409746589195 + }, + "0xD533a949740bb3306d119CC777fa900bA034cd52": { + "aToken": "0x7B95Ec873268a6BFC6427e7a28e396Db9D0ebc65", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum CRV", + "aTokenSymbol": "aEthCRV", + "aTokenUnderlyingBalance": 2943901067081954293282267, + "borrowCap": 2750000, + "borrowingEnabled": true, + "debtCeiling": 100000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10830, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 4100, + "ltv": 3500, + "oracle": "0xCd627aA160A6fA45Eb793D19Ef54f5062F20f33f", + "oracleDecimals": 8, + "oracleDescription": "CRV / USD", + "oracleLatestAnswer": 30263273, + "reserveFactor": 3500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x90D9CD005E553111EB8C9c31Abe9706a186b6048", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt CRV", + "stableDebtTokenSymbol": "stableDebtEthCRV", + "supplyCap": 10000000, + "symbol": "CRV", + "underlying": "0xD533a949740bb3306d119CC777fa900bA034cd52", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x1b7D3F4b3c032a5AE656e30eeA4e8E1Ba376068F", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt CRV", + "variableDebtTokenSymbol": "variableDebtEthCRV", + "virtualAccountingActive": true, + "virtualBalance": 2943901067081954293282267 + }, + "0xae78736Cd615f374D3085123A210448E74Fc6393": { + "aToken": "0xCc9EE9483f662091a1de4795249E24aC0aC2630f", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum rETH", + "aTokenSymbol": "aEthrETH", + "aTokenUnderlyingBalance": 44234449115297682041249, + "borrowCap": 19200, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7700, + "ltv": 7450, + "oracle": "0x5AE8365D0a30D67145f0c55A08760C250559dB64", + "oracleDecimals": 8, + "oracleDescription": "Capped rETH / ETH / USD", + "oracleLatestAnswer": 305677186273, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x1d1906f909CAe494c7441604DAfDDDbD0485A925", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt rETH", + "stableDebtTokenSymbol": "stableDebtEthrETH", + "supplyCap": 90000, + "symbol": "rETH", + "underlying": "0xae78736Cd615f374D3085123A210448E74Fc6393", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0xae8593DD575FE29A9745056aA91C4b746eee62C8", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt rETH", + "variableDebtTokenSymbol": "variableDebtEthrETH", + "virtualAccountingActive": true, + "virtualBalance": 44234448913616752159631 + }, + "0xba100000625a3754423978a60c9317c58a424e3D": { + "aToken": "0x2516E7B3F76294e03C42AA4c5b5b4DCE9C436fB8", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum BAL", + "aTokenSymbol": "aEthBAL", + "aTokenUnderlyingBalance": 5309239427795167357455318, + "borrowCap": 500000, + "borrowingEnabled": true, + "debtCeiling": 290000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10830, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 5900, + "ltv": 5700, + "oracle": "0xdF2917806E30300537aEB49A7663062F4d1F2b5F", + "oracleDecimals": 8, + "oracleDescription": "BAL / USD", + "oracleLatestAnswer": 196650000, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xB368d45aaAa07ee2c6275Cb320D140b22dE43CDD", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt BAL", + "stableDebtTokenSymbol": "stableDebtEthBAL", + "supplyCap": 5700000, + "symbol": "BAL", + "underlying": "0xba100000625a3754423978a60c9317c58a424e3D", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x3D3efceb4Ff0966D34d9545D3A2fa2dcdBf451f2", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt BAL", + "variableDebtTokenSymbol": "variableDebtEthBAL", + "virtualAccountingActive": true, + "virtualBalance": 5309233618152073594482407 + }, + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "aToken": "0x23878914EFE38d27C4D67Ab83ed1b93A74D4086a", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum USDT", + "aTokenSymbol": "aEthUSDT", + "aTokenUnderlyingBalance": 285980068347602, + "borrowCap": 2250000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 6, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": true, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10450, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7800, + "ltv": 7500, + "oracle": "0xC26D4a1c46d884cfF6dE9800B6aE7A8Cf48B4Ff8", + "oracleDecimals": 8, + "oracleDescription": "Capped USDT/USD", + "oracleLatestAnswer": 100031407, + "reserveFactor": 1000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x822Fa72Df1F229C3900f5AD6C3Fa2C424D691622", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt USDT", + "stableDebtTokenSymbol": "stableDebtEthUSDT", + "supplyCap": 2500000000, + "symbol": "USDT", + "underlying": "0xdAC17F958D2ee523a2206206994597C13D831ec7", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x6df1C1E379bC5a00a7b4C6e67A203333772f45A8", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt USDT", + "variableDebtTokenSymbol": "variableDebtEthUSDT", + "virtualAccountingActive": true, + "virtualBalance": 285978914133390 + }, + "0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202": { + "aToken": "0x5b502e3796385E1e9755d7043B9C945C3aCCeC9C", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum KNC", + "aTokenSymbol": "aEthKNC", + "aTokenUnderlyingBalance": 51952343860150470181768, + "borrowCap": 350000, + "borrowingEnabled": true, + "debtCeiling": 100000000, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": true, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 11000, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 3700, + "ltv": 0, + "oracle": "0xf8fF43E991A81e6eC886a3D281A2C6cC19aE70Fc", + "oracleDecimals": 8, + "oracleDescription": "KNC / USD", + "oracleLatestAnswer": 43658763, + "reserveFactor": 2000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xdfEE0C9eA1309cB9611F33972E72a72166fcF548", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt KNC", + "stableDebtTokenSymbol": "stableDebtEthKNC", + "supplyCap": 1200000, + "symbol": "KNC", + "underlying": "0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x253127Ffc04981cEA8932F406710661c2f2c3fD2", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt KNC", + "variableDebtTokenSymbol": "variableDebtEthKNC", + "virtualAccountingActive": true, + "virtualBalance": 51945613145003933963981 + }, + "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38": { + "aToken": "0x927709711794F3De5DdBF1D176bEE2D55Ba13c21", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum osETH", + "aTokenSymbol": "aEthosETH", + "aTokenUnderlyingBalance": 1717949884875011057102, + "borrowCap": 1000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 1, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 10750, + "liquidationProtocolFee": 1000, + "liquidationThreshold": 7500, + "ltv": 7250, + "oracle": "0x0A2AF898cEc35197e6944D9E0F525C2626393442", + "oracleDecimals": 8, + "oracleDescription": "Capped osETH / ETH / USD", + "oracleLatestAnswer": 281040892991, + "reserveFactor": 1500, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0x48Fa27f511F40d16f9E7C913e9388d52d95bC6d2", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt osETH", + "stableDebtTokenSymbol": "stableDebtEthosETH", + "supplyCap": 10000, + "symbol": "osETH", + "underlying": "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38", + "usageAsCollateralEnabled": true, + "variableDebtToken": "0x8838eefF2af391863E1Bb8b1dF563F86743a8470", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt osETH", + "variableDebtTokenSymbol": "variableDebtEthosETH", + "virtualAccountingActive": true, + "virtualBalance": 1717949879319042132766 + }, + "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E": { + "aToken": "0xb82fa9f31612989525992FCfBB09AB22Eff5c85A", + "aTokenImpl": "0x7EfFD7b47Bfd17e52fB7559d3f924201b9DbfF3d", + "aTokenName": "Aave Ethereum crvUSD", + "aTokenSymbol": "aEthcrvUSD", + "aTokenUnderlyingBalance": 79170366477226651673391, + "borrowCap": 50000000, + "borrowingEnabled": true, + "debtCeiling": 0, + "decimals": 18, + "eModeCategory": 0, + "interestRateStrategy": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "isActive": true, + "isBorrowableInIsolation": false, + "isFlashloanable": true, + "isFrozen": false, + "isPaused": false, + "isSiloed": false, + "liquidationBonus": 0, + "liquidationProtocolFee": 0, + "liquidationThreshold": 0, + "ltv": 0, + "oracle": "0x02AeE5b225366302339748951E1a924617b8814F", + "oracleDecimals": 8, + "oracleDescription": "Capped crvUSD/USD", + "oracleLatestAnswer": 99910528, + "reserveFactor": 1000, + "stableBorrowRateEnabled": false, + "stableDebtToken": "0xb55C604075D79486b8A329c396Fc711Be54B5330", + "stableDebtTokenImpl": "0x15C5620dfFaC7c7366EED66C20Ad222DDbB1eD57", + "stableDebtTokenName": "Aave Ethereum Stable Debt crvUSD", + "stableDebtTokenSymbol": "stableDebtEthcrvUSD", + "supplyCap": 60000000, + "symbol": "crvUSD", + "underlying": "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E", + "usageAsCollateralEnabled": false, + "variableDebtToken": "0x028f7886F3e937f8479efaD64f31B3fE1119857a", + "variableDebtTokenImpl": "0xaC725CB59D16C81061BDeA61041a8A5e73DA9EC6", + "variableDebtTokenName": "Aave Ethereum Variable Debt crvUSD", + "variableDebtTokenSymbol": "variableDebtEthcrvUSD", + "virtualAccountingActive": true, + "virtualBalance": 79164166344431843561621 + } + }, + "strategies": { + "0x111111111117dC0aa78b770fA6A738034120C302": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3090000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3040000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "40000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3090000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "70000000000000000000000000", + "maxVariableBorrowRate": "70000000000000000000000000", + "optimalUsageRatio": "990000000000000000000000000", + "variableRateSlope1": "0", + "variableRateSlope2": "0" + }, + "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "840000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0x514910771AF9Ca656af840dff83E8264EcF986CA": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "935000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "870000000000000000000000000" + }, + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "815000000000000000000000000", + "optimalUsageRatio": "920000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "865000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "800000000000000000000000000" + }, + "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "2500000000000000000000000", + "maxVariableBorrowRate": "847500000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "45000000000000000000000000", + "variableRateSlope2": "800000000000000000000000000" + }, + "0x83F20F44975D03b1b09e64809B757c47f942BEeA": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "800000000000000000000000000", + "optimalUsageRatio": "900000000000000000000000000", + "variableRateSlope1": "50000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0x853d955aCEf822Db058eb8505911ED77F175b99e": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "815000000000000000000000000", + "optimalUsageRatio": "900000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "0", + "optimalUsageRatio": "900000000000000000000000000", + "variableRateSlope1": "0", + "variableRateSlope2": "0" + }, + "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "665000000000000000000000000", + "optimalUsageRatio": "920000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "600000000000000000000000000" + }, + "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "30000000000000000000000000", + "maxVariableBorrowRate": "1180000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "150000000000000000000000000", + "variableRateSlope2": "1000000000000000000000000000" + }, + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "827000000000000000000000000", + "optimalUsageRatio": "900000000000000000000000000", + "variableRateSlope1": "27000000000000000000000000", + "variableRateSlope2": "800000000000000000000000000" + }, + "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3090000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "350000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xD33526068D116cE69F19A9ee46F0bd304F21A51f": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "955000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "85000000000000000000000000", + "variableRateSlope2": "870000000000000000000000000" + }, + "0xD533a949740bb3306d119CC777fa900bA034cd52": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "30000000000000000000000000", + "maxVariableBorrowRate": "3170000000000000000000000000", + "optimalUsageRatio": "700000000000000000000000000", + "variableRateSlope1": "140000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xae78736Cd615f374D3085123A210448E74Fc6393": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xba100000625a3754423978a60c9317c58a424e3D": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "50000000000000000000000000", + "maxVariableBorrowRate": "1770000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "220000000000000000000000000", + "variableRateSlope2": "1500000000000000000000000000" + }, + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "815000000000000000000000000", + "optimalUsageRatio": "920000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "750000000000000000000000000" + }, + "0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3090000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "90000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "3070000000000000000000000000", + "optimalUsageRatio": "450000000000000000000000000", + "variableRateSlope1": "70000000000000000000000000", + "variableRateSlope2": "3000000000000000000000000000" + }, + "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E": { + "address": "0x847A3364Cc5fE389283bD821cfC8A477288D9e82", + "baseVariableBorrowRate": "0", + "maxVariableBorrowRate": "865000000000000000000000000", + "optimalUsageRatio": "800000000000000000000000000", + "variableRateSlope1": "65000000000000000000000000", + "variableRateSlope2": "800000000000000000000000000" + } + } +} diff --git a/src/reports/report.spec.ts b/src/reports/report.spec.ts index bec3ecf..f057350 100644 --- a/src/reports/report.spec.ts +++ b/src/reports/report.spec.ts @@ -15,7 +15,7 @@ describe('report', () => { {timeout: 30000}, ); it( - 'should generate a well formatted report for 3.1', + 'should generate a well formatted report for 3.0 to 3.1', async () => { const from = readJsonFile('/src/reports/mocks/pre3-1.json'); const to = readJsonFile('/src/reports/mocks/post3-1.json'); @@ -25,4 +25,15 @@ describe('report', () => { }, {timeout: 30000}, ); + it( + 'should generate a well formatted report for 3.1', + async () => { + const from = readJsonFile('/src/reports/mocks/pregho.json'); + const to = readJsonFile('/src/reports/mocks/postgho.json'); + const content = await diffReports(from, to); + console.log(content); + expect(content).toMatchSnapshot(); + }, + {timeout: 30000}, + ); }); From 97947bf72ec4775fc3c966afd20a60db1bab7b47 Mon Sep 17 00:00:00 2001 From: sakulstra Date: Wed, 14 Aug 2024 16:22:53 +0200 Subject: [PATCH 2/4] fix: always print ir changes --- src/reports/__snapshots__/report.spec.ts.snap | 107 +++++++++++++++++- src/reports/diff-reports.ts | 37 ++++-- src/reports/mocks/postgho.json | 2 +- 3 files changed, 135 insertions(+), 11 deletions(-) diff --git a/src/reports/__snapshots__/report.spec.ts.snap b/src/reports/__snapshots__/report.spec.ts.snap index 6581184..c061fdd 100644 --- a/src/reports/__snapshots__/report.spec.ts.snap +++ b/src/reports/__snapshots__/report.spec.ts.snap @@ -15,6 +15,18 @@ exports[`report > should generate a well formatted report 1`] = ` | currentVariableBorrowRate | 0.1615 % [1615092557328383571260600] | 0.1715 % [1715092557328383571260600] | +#### WMATIC ([0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270](https://polygonscan.com/address/0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270)) + +| description | value before | value after | +| --- | --- | --- | + + +#### USDC ([0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174](https://polygonscan.com/address/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174)) + +| description | value before | value after | +| --- | --- | --- | + + #### GHST ([0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7](https://polygonscan.com/address/0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7)) | description | value before | value after | @@ -22,6 +34,18 @@ exports[`report > should generate a well formatted report 1`] = ` | reserveFactor | 20 % [2000] | 35 % [3500] | +#### stMATIC ([0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4](https://polygonscan.com/address/0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4)) + +| description | value before | value after | +| --- | --- | --- | + + +#### jEUR ([0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c](https://polygonscan.com/address/0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c)) + +| description | value before | value after | +| --- | --- | --- | + + #### WETH ([0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619](https://polygonscan.com/address/0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619)) | description | value before | value after | @@ -45,6 +69,12 @@ exports[`report > should generate a well formatted report 1`] = ` | reserveFactor | 20 % [2000] | 35 % [3500] | +#### DAI ([0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063](https://polygonscan.com/address/0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063)) + +| description | value before | value after | +| --- | --- | --- | + + #### agEUR ([0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4](https://polygonscan.com/address/0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4)) | description | value before | value after | @@ -90,6 +120,12 @@ exports[`report > should generate a well formatted report 1`] = ` | maxExcessUsageRatio | 10 % | 20 % | | interestRate | ![before](/.assets/1baf85e415bd720bc42ec928d822cffbd4236d90.svg) | ![after](/.assets/8a10dd458958b063af4177af8f709f1971c58974.svg) | +#### MaticX ([0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6](https://polygonscan.com/address/0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6)) + +| description | value before | value after | +| --- | --- | --- | + + ## Raw diff \`\`\`json @@ -441,10 +477,79 @@ exports[`report > should generate a well formatted report for 3.0 to 3.1 1`] = ` `; exports[`report > should generate a well formatted report for 3.1 1`] = ` -"## Raw diff +"## Reserve changes + +### Reserve altered + +#### GHO ([0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f](https://etherscan.io/address/0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f)) + +| description | value before | value after | +| --- | --- | --- | +| maxVariableBorrowRate | 7 % | 6 % | +| baseVariableBorrowRate | 7 % | 6 % | +| interestRate | ![before](/.assets/e03975867d1c729d1a52bbec364211baff2dab5a.svg) | ![after](/.assets/a1a7ab1f1b9fcdf6ffa41ac7a8b4daf2daf98328.svg) | + +#### wstETH ([0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0](https://etherscan.io/address/0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0)) + +| description | value before | value after | +| --- | --- | --- | +| eMode.liquidationBonus | 1 % | 2 % | + + +#### ETHx ([0xA35b1B31Ce002FBF2058D22F30f95D405200A15b](https://etherscan.io/address/0xA35b1B31Ce002FBF2058D22F30f95D405200A15b)) + +| description | value before | value after | +| --- | --- | --- | +| eMode.liquidationBonus | 1 % | 2 % | + + +#### cbETH ([0xBe9895146f7AF43049ca1c1AE358B0541Ea49704](https://etherscan.io/address/0xBe9895146f7AF43049ca1c1AE358B0541Ea49704)) + +| description | value before | value after | +| --- | --- | --- | +| eMode.liquidationBonus | 1 % | 2 % | + + +#### WETH ([0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2](https://etherscan.io/address/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2)) + +| description | value before | value after | +| --- | --- | --- | +| eMode.liquidationBonus | 1 % | 2 % | + + +#### weETH ([0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee](https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee)) + +| description | value before | value after | +| --- | --- | --- | +| eMode.liquidationBonus | 1 % | 2 % | + + +#### rETH ([0xae78736Cd615f374D3085123A210448E74Fc6393](https://etherscan.io/address/0xae78736Cd615f374D3085123A210448E74Fc6393)) + +| description | value before | value after | +| --- | --- | --- | +| eMode.liquidationBonus | 1 % | 2 % | + + +#### osETH ([0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38](https://etherscan.io/address/0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38)) + +| description | value before | value after | +| --- | --- | --- | +| eMode.liquidationBonus | 1 % | 2 % | + + +## Raw diff \`\`\`json { + "eModes": { + "1": { + "liquidationBonus": { + "from": 10100, + "to": 10200 + } + } + }, "strategies": { "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": { "baseVariableBorrowRate": { diff --git a/src/reports/diff-reports.ts b/src/reports/diff-reports.ts index f95dae7..3a46f76 100644 --- a/src/reports/diff-reports.ts +++ b/src/reports/diff-reports.ts @@ -53,26 +53,36 @@ export async function diffReports i); const reservesAltered = Object.keys(diffResult.reserves) .map((reserveKey) => { - // from being present on key means reserve was removed - if ( - !(diffResult.reserves[reserveKey] as any).hasOwnProperty('from') && - Object.keys(diffResult.reserves[reserveKey]).find( + // "from" being present on reserses key means reserve was removed + if (!(diffResult.reserves[reserveKey] as any).hasOwnProperty('from')) { + const hasChangedReserveProperties = Object.keys(diffResult.reserves[reserveKey]).find( (fieldKey) => typeof (diffResult.reserves as any)[reserveKey][fieldKey] === 'object', + ); + const preIrHash = hash(pre.strategies[reserveKey]); + const postIrHash = hash(post.strategies[reserveKey]); + const hasChangedIr = preIrHash !== postIrHash; + const eModeCategoryChanged = + diffResult.reserves[reserveKey].eModeCategory?.hasOwnProperty('from'); + const eModeParamsChanged = + diffResult.eModes?.[diffResult.reserves[reserveKey].eModeCategory as any]; + if ( + !hasChangedReserveProperties && + !hasChangedIr && + !eModeCategoryChanged && + !eModeParamsChanged ) - ) { + return; // diff reserve let report = renderReserveDiff(diffResult.reserves[reserveKey] as any, chainId); // diff irs - const preIrHash = hash(pre.strategies[reserveKey]); - const postIrHash = hash(post.strategies[reserveKey]); - if (preIrHash !== postIrHash) { + if (hasChangedIr) { report += renderStrategyDiff( diff(pre.strategies[reserveKey], post.strategies[reserveKey]) as any, ); report += `| interestRate | ![before](/.assets/${preIrHash}.svg) | ![after](/.assets/${postIrHash}.svg) |`; } // diff eModes - if (diffResult.reserves[reserveKey].eModeCategory?.hasOwnProperty('from')) { + if (eModeCategoryChanged) { report += renderEmodeDiff( diff( pre.eModes[(diffResult.reserves[reserveKey].eModeCategory as any).from] || {}, @@ -81,6 +91,15 @@ export async function diffReports Date: Wed, 14 Aug 2024 16:30:48 +0200 Subject: [PATCH 3/4] fix: patch utils --- src/reports/__snapshots__/report.spec.ts.snap | 180 ++++++++++++++++++ src/reports/diff-reports.ts | 20 +- 2 files changed, 194 insertions(+), 6 deletions(-) diff --git a/src/reports/__snapshots__/report.spec.ts.snap b/src/reports/__snapshots__/report.spec.ts.snap index c061fdd..3e42cd5 100644 --- a/src/reports/__snapshots__/report.spec.ts.snap +++ b/src/reports/__snapshots__/report.spec.ts.snap @@ -21,6 +21,18 @@ exports[`report > should generate a well formatted report 1`] = ` | --- | --- | --- | +#### CRV ([0x172370d5Cd63279eFa6d502DAB29171933a610AF](https://polygonscan.com/address/0x172370d5Cd63279eFa6d502DAB29171933a610AF)) + +| description | value before | value after | +| --- | --- | --- | + + +#### WBTC ([0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6](https://polygonscan.com/address/0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6)) + +| description | value before | value after | +| --- | --- | --- | + + #### USDC ([0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174](https://polygonscan.com/address/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174)) | description | value before | value after | @@ -46,6 +58,12 @@ exports[`report > should generate a well formatted report 1`] = ` | --- | --- | --- | +#### LINK ([0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39](https://polygonscan.com/address/0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39)) + +| description | value before | value after | +| --- | --- | --- | + + #### WETH ([0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619](https://polygonscan.com/address/0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619)) | description | value before | value after | @@ -75,6 +93,18 @@ exports[`report > should generate a well formatted report 1`] = ` | --- | --- | --- | +#### BAL ([0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3](https://polygonscan.com/address/0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3)) + +| description | value before | value after | +| --- | --- | --- | + + +#### AAVE ([0xD6DF932A45C0f255f85145f286eA0b292B21C90B](https://polygonscan.com/address/0xD6DF932A45C0f255f85145f286eA0b292B21C90B)) + +| description | value before | value after | +| --- | --- | --- | + + #### agEUR ([0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4](https://polygonscan.com/address/0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4)) | description | value before | value after | @@ -481,6 +511,30 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` ### Reserve altered +#### 1INCH ([0x111111111117dC0aa78b770fA6A738034120C302](https://etherscan.io/address/0x111111111117dC0aa78b770fA6A738034120C302)) + +| description | value before | value after | +| --- | --- | --- | + + +#### UNI ([0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984](https://etherscan.io/address/0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984)) + +| description | value before | value after | +| --- | --- | --- | + + +#### WBTC ([0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599](https://etherscan.io/address/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599)) + +| description | value before | value after | +| --- | --- | --- | + + +#### FXS ([0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0](https://etherscan.io/address/0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0)) + +| description | value before | value after | +| --- | --- | --- | + + #### GHO ([0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f](https://etherscan.io/address/0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f)) | description | value before | value after | @@ -489,6 +543,48 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | baseVariableBorrowRate | 7 % | 6 % | | interestRate | ![before](/.assets/e03975867d1c729d1a52bbec364211baff2dab5a.svg) | ![after](/.assets/a1a7ab1f1b9fcdf6ffa41ac7a8b4daf2daf98328.svg) | +#### USDe ([0x4c9EDD5852cd905f086C759E8383e09bff1E68B3](https://etherscan.io/address/0x4c9EDD5852cd905f086C759E8383e09bff1E68B3)) + +| description | value before | value after | +| --- | --- | --- | + + +#### LINK ([0x514910771AF9Ca656af840dff83E8264EcF986CA](https://etherscan.io/address/0x514910771AF9Ca656af840dff83E8264EcF986CA)) + +| description | value before | value after | +| --- | --- | --- | + + +#### LDO ([0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32](https://etherscan.io/address/0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32)) + +| description | value before | value after | +| --- | --- | --- | + + +#### LUSD ([0x5f98805A4E8be255a32880FDeC7F6728C6568bA0](https://etherscan.io/address/0x5f98805A4E8be255a32880FDeC7F6728C6568bA0)) + +| description | value before | value after | +| --- | --- | --- | + + +#### DAI ([0x6B175474E89094C44Da98b954EedeAC495271d0F](https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F)) + +| description | value before | value after | +| --- | --- | --- | + + +#### PYUSD ([0x6c3ea9036406852006290770BEdFcAbA0e23A0e8](https://etherscan.io/address/0x6c3ea9036406852006290770BEdFcAbA0e23A0e8)) + +| description | value before | value after | +| --- | --- | --- | + + +#### AAVE ([0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9](https://etherscan.io/address/0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9)) + +| description | value before | value after | +| --- | --- | --- | + + #### wstETH ([0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0](https://etherscan.io/address/0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0)) | description | value before | value after | @@ -496,6 +592,36 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | +#### sDAI ([0x83F20F44975D03b1b09e64809B757c47f942BEeA](https://etherscan.io/address/0x83F20F44975D03b1b09e64809B757c47f942BEeA)) + +| description | value before | value after | +| --- | --- | --- | + + +#### FRAX ([0x853d955aCEf822Db058eb8505911ED77F175b99e](https://etherscan.io/address/0x853d955aCEf822Db058eb8505911ED77F175b99e)) + +| description | value before | value after | +| --- | --- | --- | + + +#### sUSDe ([0x9D39A5DE30e57443BfF2A8307A4256c8797A3497](https://etherscan.io/address/0x9D39A5DE30e57443BfF2A8307A4256c8797A3497)) + +| description | value before | value after | +| --- | --- | --- | + + +#### MKR ([0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2](https://etherscan.io/address/0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2)) + +| description | value before | value after | +| --- | --- | --- | + + +#### USDC ([0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48](https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48)) + +| description | value before | value after | +| --- | --- | --- | + + #### ETHx ([0xA35b1B31Ce002FBF2058D22F30f95D405200A15b](https://etherscan.io/address/0xA35b1B31Ce002FBF2058D22F30f95D405200A15b)) | description | value before | value after | @@ -503,6 +629,12 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | +#### STG ([0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6](https://etherscan.io/address/0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6)) + +| description | value before | value after | +| --- | --- | --- | + + #### cbETH ([0xBe9895146f7AF43049ca1c1AE358B0541Ea49704](https://etherscan.io/address/0xBe9895146f7AF43049ca1c1AE358B0541Ea49704)) | description | value before | value after | @@ -510,6 +642,12 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | +#### SNX ([0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F](https://etherscan.io/address/0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F)) + +| description | value before | value after | +| --- | --- | --- | + + #### WETH ([0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2](https://etherscan.io/address/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2)) | description | value before | value after | @@ -517,6 +655,12 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | +#### ENS ([0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72](https://etherscan.io/address/0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72)) + +| description | value before | value after | +| --- | --- | --- | + + #### weETH ([0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee](https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee)) | description | value before | value after | @@ -524,6 +668,18 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | +#### RPL ([0xD33526068D116cE69F19A9ee46F0bd304F21A51f](https://etherscan.io/address/0xD33526068D116cE69F19A9ee46F0bd304F21A51f)) + +| description | value before | value after | +| --- | --- | --- | + + +#### CRV ([0xD533a949740bb3306d119CC777fa900bA034cd52](https://etherscan.io/address/0xD533a949740bb3306d119CC777fa900bA034cd52)) + +| description | value before | value after | +| --- | --- | --- | + + #### rETH ([0xae78736Cd615f374D3085123A210448E74Fc6393](https://etherscan.io/address/0xae78736Cd615f374D3085123A210448E74Fc6393)) | description | value before | value after | @@ -531,6 +687,24 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | +#### BAL ([0xba100000625a3754423978a60c9317c58a424e3D](https://etherscan.io/address/0xba100000625a3754423978a60c9317c58a424e3D)) + +| description | value before | value after | +| --- | --- | --- | + + +#### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) + +| description | value before | value after | +| --- | --- | --- | + + +#### KNC ([0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202](https://etherscan.io/address/0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202)) + +| description | value before | value after | +| --- | --- | --- | + + #### osETH ([0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38](https://etherscan.io/address/0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38)) | description | value before | value after | @@ -538,6 +712,12 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | +#### crvUSD ([0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E](https://etherscan.io/address/0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E)) + +| description | value before | value after | +| --- | --- | --- | + + ## Raw diff \`\`\`json diff --git a/src/reports/diff-reports.ts b/src/reports/diff-reports.ts index 3a46f76..cd97eb4 100644 --- a/src/reports/diff-reports.ts +++ b/src/reports/diff-reports.ts @@ -6,6 +6,15 @@ import {renderReserve, renderReserveDiff} from './reserve'; import {AaveV3Reserve, type AaveV3Snapshot} from './snapshot-types'; import {renderStrategy, renderStrategyDiff} from './strategy'; +function hasDiff(input: Record): boolean { + return !!Object.keys(input).map( + (key) => + typeof input[key as keyof typeof input] === 'object' && + (input[key as keyof typeof input].hasOwnProperty('from') || + input[key as keyof typeof input].hasOwnProperty('to')), + ); +} + export async function diffReports( pre: A, post: B, @@ -55,16 +64,15 @@ export async function diffReports { // "from" being present on reserses key means reserve was removed if (!(diffResult.reserves[reserveKey] as any).hasOwnProperty('from')) { - const hasChangedReserveProperties = Object.keys(diffResult.reserves[reserveKey]).find( - (fieldKey) => typeof (diffResult.reserves as any)[reserveKey][fieldKey] === 'object', - ); + const hasChangedReserveProperties = hasDiff(diffResult.reserves[reserveKey]); const preIrHash = hash(pre.strategies[reserveKey]); const postIrHash = hash(post.strategies[reserveKey]); const hasChangedIr = preIrHash !== postIrHash; const eModeCategoryChanged = diffResult.reserves[reserveKey].eModeCategory?.hasOwnProperty('from'); - const eModeParamsChanged = - diffResult.eModes?.[diffResult.reserves[reserveKey].eModeCategory as any]; + const eModeParamsChanged = hasDiff( + diffResult.eModes?.[diffResult.reserves[reserveKey].eModeCategory as any] || {}, + ); if ( !hasChangedReserveProperties && !hasChangedIr && @@ -91,7 +99,7 @@ export async function diffReports Date: Wed, 14 Aug 2024 16:35:50 +0200 Subject: [PATCH 4/4] fix: cleanup --- src/reports/__snapshots__/report.spec.ts.snap | 216 ------------------ src/reports/diff-reports.ts | 9 +- 2 files changed, 5 insertions(+), 220 deletions(-) diff --git a/src/reports/__snapshots__/report.spec.ts.snap b/src/reports/__snapshots__/report.spec.ts.snap index 3e42cd5..20e0da2 100644 --- a/src/reports/__snapshots__/report.spec.ts.snap +++ b/src/reports/__snapshots__/report.spec.ts.snap @@ -15,30 +15,6 @@ exports[`report > should generate a well formatted report 1`] = ` | currentVariableBorrowRate | 0.1615 % [1615092557328383571260600] | 0.1715 % [1715092557328383571260600] | -#### WMATIC ([0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270](https://polygonscan.com/address/0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270)) - -| description | value before | value after | -| --- | --- | --- | - - -#### CRV ([0x172370d5Cd63279eFa6d502DAB29171933a610AF](https://polygonscan.com/address/0x172370d5Cd63279eFa6d502DAB29171933a610AF)) - -| description | value before | value after | -| --- | --- | --- | - - -#### WBTC ([0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6](https://polygonscan.com/address/0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6)) - -| description | value before | value after | -| --- | --- | --- | - - -#### USDC ([0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174](https://polygonscan.com/address/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174)) - -| description | value before | value after | -| --- | --- | --- | - - #### GHST ([0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7](https://polygonscan.com/address/0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7)) | description | value before | value after | @@ -46,24 +22,6 @@ exports[`report > should generate a well formatted report 1`] = ` | reserveFactor | 20 % [2000] | 35 % [3500] | -#### stMATIC ([0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4](https://polygonscan.com/address/0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4)) - -| description | value before | value after | -| --- | --- | --- | - - -#### jEUR ([0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c](https://polygonscan.com/address/0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c)) - -| description | value before | value after | -| --- | --- | --- | - - -#### LINK ([0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39](https://polygonscan.com/address/0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39)) - -| description | value before | value after | -| --- | --- | --- | - - #### WETH ([0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619](https://polygonscan.com/address/0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619)) | description | value before | value after | @@ -87,24 +45,6 @@ exports[`report > should generate a well formatted report 1`] = ` | reserveFactor | 20 % [2000] | 35 % [3500] | -#### DAI ([0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063](https://polygonscan.com/address/0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063)) - -| description | value before | value after | -| --- | --- | --- | - - -#### BAL ([0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3](https://polygonscan.com/address/0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3)) - -| description | value before | value after | -| --- | --- | --- | - - -#### AAVE ([0xD6DF932A45C0f255f85145f286eA0b292B21C90B](https://polygonscan.com/address/0xD6DF932A45C0f255f85145f286eA0b292B21C90B)) - -| description | value before | value after | -| --- | --- | --- | - - #### agEUR ([0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4](https://polygonscan.com/address/0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4)) | description | value before | value after | @@ -150,12 +90,6 @@ exports[`report > should generate a well formatted report 1`] = ` | maxExcessUsageRatio | 10 % | 20 % | | interestRate | ![before](/.assets/1baf85e415bd720bc42ec928d822cffbd4236d90.svg) | ![after](/.assets/8a10dd458958b063af4177af8f709f1971c58974.svg) | -#### MaticX ([0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6](https://polygonscan.com/address/0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6)) - -| description | value before | value after | -| --- | --- | --- | - - ## Raw diff \`\`\`json @@ -511,30 +445,6 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` ### Reserve altered -#### 1INCH ([0x111111111117dC0aa78b770fA6A738034120C302](https://etherscan.io/address/0x111111111117dC0aa78b770fA6A738034120C302)) - -| description | value before | value after | -| --- | --- | --- | - - -#### UNI ([0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984](https://etherscan.io/address/0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984)) - -| description | value before | value after | -| --- | --- | --- | - - -#### WBTC ([0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599](https://etherscan.io/address/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599)) - -| description | value before | value after | -| --- | --- | --- | - - -#### FXS ([0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0](https://etherscan.io/address/0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0)) - -| description | value before | value after | -| --- | --- | --- | - - #### GHO ([0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f](https://etherscan.io/address/0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f)) | description | value before | value after | @@ -543,48 +453,6 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | baseVariableBorrowRate | 7 % | 6 % | | interestRate | ![before](/.assets/e03975867d1c729d1a52bbec364211baff2dab5a.svg) | ![after](/.assets/a1a7ab1f1b9fcdf6ffa41ac7a8b4daf2daf98328.svg) | -#### USDe ([0x4c9EDD5852cd905f086C759E8383e09bff1E68B3](https://etherscan.io/address/0x4c9EDD5852cd905f086C759E8383e09bff1E68B3)) - -| description | value before | value after | -| --- | --- | --- | - - -#### LINK ([0x514910771AF9Ca656af840dff83E8264EcF986CA](https://etherscan.io/address/0x514910771AF9Ca656af840dff83E8264EcF986CA)) - -| description | value before | value after | -| --- | --- | --- | - - -#### LDO ([0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32](https://etherscan.io/address/0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32)) - -| description | value before | value after | -| --- | --- | --- | - - -#### LUSD ([0x5f98805A4E8be255a32880FDeC7F6728C6568bA0](https://etherscan.io/address/0x5f98805A4E8be255a32880FDeC7F6728C6568bA0)) - -| description | value before | value after | -| --- | --- | --- | - - -#### DAI ([0x6B175474E89094C44Da98b954EedeAC495271d0F](https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F)) - -| description | value before | value after | -| --- | --- | --- | - - -#### PYUSD ([0x6c3ea9036406852006290770BEdFcAbA0e23A0e8](https://etherscan.io/address/0x6c3ea9036406852006290770BEdFcAbA0e23A0e8)) - -| description | value before | value after | -| --- | --- | --- | - - -#### AAVE ([0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9](https://etherscan.io/address/0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9)) - -| description | value before | value after | -| --- | --- | --- | - - #### wstETH ([0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0](https://etherscan.io/address/0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0)) | description | value before | value after | @@ -592,36 +460,6 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | -#### sDAI ([0x83F20F44975D03b1b09e64809B757c47f942BEeA](https://etherscan.io/address/0x83F20F44975D03b1b09e64809B757c47f942BEeA)) - -| description | value before | value after | -| --- | --- | --- | - - -#### FRAX ([0x853d955aCEf822Db058eb8505911ED77F175b99e](https://etherscan.io/address/0x853d955aCEf822Db058eb8505911ED77F175b99e)) - -| description | value before | value after | -| --- | --- | --- | - - -#### sUSDe ([0x9D39A5DE30e57443BfF2A8307A4256c8797A3497](https://etherscan.io/address/0x9D39A5DE30e57443BfF2A8307A4256c8797A3497)) - -| description | value before | value after | -| --- | --- | --- | - - -#### MKR ([0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2](https://etherscan.io/address/0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2)) - -| description | value before | value after | -| --- | --- | --- | - - -#### USDC ([0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48](https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48)) - -| description | value before | value after | -| --- | --- | --- | - - #### ETHx ([0xA35b1B31Ce002FBF2058D22F30f95D405200A15b](https://etherscan.io/address/0xA35b1B31Ce002FBF2058D22F30f95D405200A15b)) | description | value before | value after | @@ -629,12 +467,6 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | -#### STG ([0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6](https://etherscan.io/address/0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6)) - -| description | value before | value after | -| --- | --- | --- | - - #### cbETH ([0xBe9895146f7AF43049ca1c1AE358B0541Ea49704](https://etherscan.io/address/0xBe9895146f7AF43049ca1c1AE358B0541Ea49704)) | description | value before | value after | @@ -642,12 +474,6 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | -#### SNX ([0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F](https://etherscan.io/address/0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F)) - -| description | value before | value after | -| --- | --- | --- | - - #### WETH ([0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2](https://etherscan.io/address/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2)) | description | value before | value after | @@ -655,12 +481,6 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | -#### ENS ([0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72](https://etherscan.io/address/0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72)) - -| description | value before | value after | -| --- | --- | --- | - - #### weETH ([0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee](https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee)) | description | value before | value after | @@ -668,18 +488,6 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | -#### RPL ([0xD33526068D116cE69F19A9ee46F0bd304F21A51f](https://etherscan.io/address/0xD33526068D116cE69F19A9ee46F0bd304F21A51f)) - -| description | value before | value after | -| --- | --- | --- | - - -#### CRV ([0xD533a949740bb3306d119CC777fa900bA034cd52](https://etherscan.io/address/0xD533a949740bb3306d119CC777fa900bA034cd52)) - -| description | value before | value after | -| --- | --- | --- | - - #### rETH ([0xae78736Cd615f374D3085123A210448E74Fc6393](https://etherscan.io/address/0xae78736Cd615f374D3085123A210448E74Fc6393)) | description | value before | value after | @@ -687,24 +495,6 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | -#### BAL ([0xba100000625a3754423978a60c9317c58a424e3D](https://etherscan.io/address/0xba100000625a3754423978a60c9317c58a424e3D)) - -| description | value before | value after | -| --- | --- | --- | - - -#### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) - -| description | value before | value after | -| --- | --- | --- | - - -#### KNC ([0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202](https://etherscan.io/address/0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202)) - -| description | value before | value after | -| --- | --- | --- | - - #### osETH ([0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38](https://etherscan.io/address/0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38)) | description | value before | value after | @@ -712,12 +502,6 @@ exports[`report > should generate a well formatted report for 3.1 1`] = ` | eMode.liquidationBonus | 1 % | 2 % | -#### crvUSD ([0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E](https://etherscan.io/address/0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E)) - -| description | value before | value after | -| --- | --- | --- | - - ## Raw diff \`\`\`json diff --git a/src/reports/diff-reports.ts b/src/reports/diff-reports.ts index cd97eb4..28e6224 100644 --- a/src/reports/diff-reports.ts +++ b/src/reports/diff-reports.ts @@ -7,7 +7,8 @@ import {AaveV3Reserve, type AaveV3Snapshot} from './snapshot-types'; import {renderStrategy, renderStrategyDiff} from './strategy'; function hasDiff(input: Record): boolean { - return !!Object.keys(input).map( + if (!input) return false; + return !!Object.keys(input).find( (key) => typeof input[key as keyof typeof input] === 'object' && (input[key as keyof typeof input].hasOwnProperty('from') || @@ -70,9 +71,9 @@ export async function diffReports