Skip to content

Conversation

@nisnislevi
Copy link
Contributor

No description provided.

@sakulstra sakulstra merged commit b1000ad into aave-dao:certora-patch Nov 20, 2024
2 checks passed
@github-actions
Copy link
Contributor

🔧 Build logs
Compiling 396 files with Solc 0.8.20
Solc 0.8.20 finished in 107.12s
Compiler run successful with warnings:
Warning (9302): Return value of low-level calls not used.
  --> src/contracts/treasury/RevenueSplitter.sol:68:5:
   |
68 |     RECIPIENT_A.call{value: amount_A}('');
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Warning (9302): Return value of low-level calls not used.
  --> src/contracts/treasury/RevenueSplitter.sol:69:5:
   |
69 |     RECIPIENT_B.call{value: amount_B}('');
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Warning (5740): Unreachable code.
  --> src/contracts/dependencies/openzeppelin/ReentrancyGuard.sol:61:5:
   |
61 |     _status = _NOT_ENTERED;
   |     ^^^^^^^^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
  --> tests/extensions/stata-token/StataTokenV2Rescuable.sol:47:5:
   |
47 |     address treasury = IAToken(aToken).RESERVE_TREASURY_ADDRESS();
   |     ^^^^^^^^^^^^^^^^

| Contract                                       | Runtime Size (B) | Initcode Size (B) | Runtime Margin (B) | Initcode Margin (B) |
|------------------------------------------------|------------------|-------------------|--------------------|---------------------|
| ACLManager                                     |            3,493 |             4,107 |             21,083 |              45,045 |
| ATokenInstance                                 |           10,163 |            11,058 |             14,413 |              38,094 |
| ATokenMock                                     |              803 |               967 |             23,773 |              48,185 |
| AaveOracle                                     |            2,662 |             3,867 |             21,914 |              45,285 |
| AaveProtocolDataProvider                       |            9,465 |             9,739 |             15,111 |              39,413 |
| AaveV3BatchOrchestration                       |               44 |                94 |             24,532 |              49,058 |
| AaveV3ConfigEngine                             |            7,573 |             9,165 |             17,003 |              39,987 |
| AaveV3DefaultRateStrategyProcedure             |               21 |                47 |             24,555 |              49,105 |
| AaveV3GettersBatchOne                          |              229 |            32,561 |             24,347 |              16,591 |
| AaveV3GettersBatchTwo                          |              137 |            11,156 |             24,439 |              37,996 |
| AaveV3GettersProcedureOne                      |               21 |                47 |             24,555 |              49,105 |
| AaveV3GettersProcedureTwo                      |               21 |                47 |             24,555 |              49,105 |
| AaveV3HelpersBatchOne                          |              353 |            34,075 |             24,223 |              15,077 |
| AaveV3HelpersBatchTwo                          |              229 |            32,983 |             24,347 |              16,169 |
| AaveV3HelpersProcedureOne                      |               21 |                47 |             24,555 |              49,105 |
| AaveV3HelpersProcedureTwo                      |               21 |                47 |             24,555 |              49,105 |
| AaveV3IncentiveProcedure                       |               21 |                47 |             24,555 |              49,105 |
| AaveV3L2PoolBatch                              |              137 |            43,953 |             24,439 |               5,199 |
| AaveV3L2PoolProcedure                          |               21 |                47 |             24,555 |              49,105 |
| AaveV3LibrariesBatch1                          |              353 |            31,273 |             24,223 |              17,879 |
| AaveV3LibrariesBatch2                          |              353 |            41,668 |             24,223 |               7,484 |
| AaveV3MiscBatch                                |              137 |             6,830 |             24,439 |              42,322 |
| AaveV3MiscProcedure                            |               21 |                47 |             24,555 |              49,105 |
| AaveV3MockAssetEModeUpdate                     |            3,420 |             3,649 |             21,156 |              45,503 |
| AaveV3MockBorrowUpdate                         |            3,300 |             3,491 |             21,276 |              45,661 |
| AaveV3MockBorrowUpdateNoChange                 |            3,330 |             3,521 |             21,246 |              45,631 |
| AaveV3MockCapUpdate                            |            3,244 |             3,435 |             21,332 |              45,717 |
| AaveV3MockCollateralUpdate                     |            3,304 |             3,495 |             21,272 |              45,657 |
| AaveV3MockCollateralUpdateCorrectBonus         |            3,304 |             3,495 |             21,272 |              45,657 |
| AaveV3MockCollateralUpdateNoChange             |            3,331 |             3,522 |             21,245 |              45,630 |
| AaveV3MockCollateralUpdateWrongBonus           |            3,308 |             3,499 |             21,268 |              45,653 |
| AaveV3MockEModeCategoryUpdate                  |            3,159 |             3,297 |             21,417 |              45,855 |
| AaveV3MockEModeCategoryUpdateEdgeBonus         |            3,162 |             3,300 |             21,414 |              45,852 |
| AaveV3MockEModeCategoryUpdateNoChange          |            3,221 |             3,359 |             21,355 |              45,793 |
| AaveV3MockListing                              |            3,598 |             3,827 |             20,978 |              45,325 |
| AaveV3MockListingCustom                        |            3,891 |             4,203 |             20,685 |              44,949 |
| AaveV3MockPriceFeedUpdate                      |            3,269 |             3,498 |             21,307 |              45,654 |
| AaveV3MockRatesUpdate                          |            3,262 |             3,453 |             21,314 |              45,699 |
| AaveV3OracleProcedure                          |               21 |                47 |             24,555 |              49,105 |
| AaveV3ParaswapBatch                            |              189 |            30,420 |             24,387 |              18,732 |
| AaveV3ParaswapProcedure                        |               21 |                47 |             24,555 |              49,105 |
| AaveV3PeripheryBatch                           |              321 |            40,108 |             24,255 |               9,044 |
| AaveV3PoolBatch                                |              137 |            42,706 |             24,439 |               6,446 |
| AaveV3PoolConfigProcedure                      |               21 |                47 |             24,555 |              49,105 |
| AaveV3PoolProcedure                            |               21 |                47 |             24,555 |              49,105 |
| AaveV3SetupBatch                               |           11,678 |            25,007 |             12,898 |              24,145 |
| AaveV3SetupProcedure                           |               21 |                47 |             24,555 |              49,105 |
| AaveV3TestListing                              |            4,977 |            12,409 |             19,599 |              36,743 |
| AaveV3TokensBatch                              |              137 |            20,321 |             24,439 |              28,831 |
| AaveV3TokensProcedure                          |               21 |                47 |             24,555 |              49,105 |
| AaveV3TreasuryProcedure                        |               21 |                47 |             24,555 |              49,105 |
| Address                                        |               44 |                94 |             24,532 |              49,058 |
| AdminUpgradeabilityProxy                       |            1,544 |             2,502 |             23,032 |              46,650 |
| AugustusRegistryMock                           |              162 |               190 |             24,414 |              48,962 |
| BaseAdminUpgradeabilityProxy                   |            1,536 |             1,565 |             23,040 |              47,587 |
| BaseImmutableAdminUpgradeabilityProxy          |            1,302 |             1,469 |             23,274 |              47,683 |
| BaseUpgradeabilityProxy                        |              108 |               135 |             24,468 |              49,017 |
| BorrowEngine                                   |            2,526 |             2,579 |             22,050 |              46,573 |
| BorrowLogic                                    |           12,405 |            12,458 |             12,171 |              36,694 |
| BridgeLogic                                    |            6,711 |             6,764 |             17,865 |              42,388 |
| CalldataLogic                                  |               44 |                94 |             24,532 |              49,058 |
| CapsEngine                                     |            1,179 |             1,232 |             23,397 |              47,920 |
| CollateralEngine                               |            2,723 |             2,776 |             21,853 |              46,376 |
| Collector                                      |            6,815 |             6,852 |             17,761 |              42,300 |
| ConfiguratorInputTypes                         |               44 |                94 |             24,532 |              49,058 |
| ConfiguratorLogic                              |            6,539 |             6,592 |             18,037 |              42,560 |
| Create2Utils                                   |              121 |               172 |             24,455 |              48,980 |
| DataTypes                                      |               44 |                94 |             24,532 |              49,058 |
| DefaultMarketInput                             |               21 |                47 |             24,555 |              49,105 |
| DefaultReserveInterestRateStrategyV2           |            3,997 |             4,291 |             20,579 |              44,861 |
| DeployUtils                                    |              913 |               942 |             23,663 |              48,210 |
| ECDSA                                          |               44 |                94 |             24,532 |              49,058 |
| EIP712SigUtils                                 |            1,563 |             1,616 |             23,013 |              47,536 |
| EModeConfiguration                             |               44 |                94 |             24,532 |              49,058 |
| EModeEngine                                    |            4,485 |             4,538 |             20,091 |              44,614 |
| EModeLogic                                     |            3,756 |             3,809 |             20,820 |              45,343 |
| ERC1967Proxy                                   |              129 |             1,179 |             24,447 |              47,973 |
| ERC20                                          |            2,085 |             2,833 |             22,491 |              46,319 |
| EmissionManager                                |            3,455 |             3,916 |             21,121 |              45,236 |
| EngineFlags                                    |               44 |                94 |             24,532 |              49,058 |
| Errors                                         |            4,464 |             4,517 |             20,112 |              44,635 |
| Faucet                                         |            2,064 |             2,596 |             22,512 |              46,556 |
| FlashLoanLogic                                 |            9,520 |             9,573 |             15,056 |              39,579 |
| FlashloanAttacker                              |            2,123 |             2,547 |             22,453 |              46,605 |
| GPv2SafeERC20                                  |               44 |                94 |             24,532 |              49,058 |
| GenericLogic                                   |               44 |                94 |             24,532 |              49,058 |
| Initializable                                  |               21 |                47 |             24,555 |              49,105 |
| InitializableAdminUpgradeabilityProxy          |            2,388 |             2,417 |             22,188 |              46,735 |
| InitializableImmutableAdminUpgradeabilityProxy |            1,853 |             2,020 |             22,723 |              47,132 |
| InitializableUpgradeabilityProxy               |              871 |               900 |             23,705 |              48,252 |
| IsolationModeLogic                             |               44 |                94 |             24,532 |              49,058 |
| L2Encoder                                      |            3,731 |             3,926 |             20,845 |              45,226 |
| L2PoolInstance                                 |           23,266 |            23,515 |              1,310 |              25,637 |
| LiquidationLogic                               |           11,787 |            11,840 |             12,789 |              37,312 |
| ListingEngine                                  |            7,156 |             7,209 |             17,420 |              41,943 |
| MarketReportUtils                              |               44 |                94 |             24,532 |              49,058 |
| Math                                           |               44 |                94 |             24,532 |              49,058 |
| MathUtils                                      |               44 |                94 |             24,532 |              49,058 |
| MathUtilsWrapper                               |              917 |               946 |             23,659 |              48,206 |
| MessageHashUtils                               |               44 |                94 |             24,532 |              49,058 |
| MetadataReporter                               |           12,286 |            12,315 |             12,290 |              36,837 |
| MintableDelegationERC20                        |            2,533 |             3,313 |             22,043 |              45,839 |
| MintableERC20                                  |            3,351 |             4,295 |             21,225 |              44,857 |
| Mock                                           |              182 |               210 |             24,394 |              48,942 |
| MockAToken                                     |           10,165 |            11,062 |             14,411 |              38,090 |
| MockATokenRepayment                            |           10,246 |            11,143 |             14,330 |              38,009 |
| MockAggregator                                 |              134 |               278 |             24,442 |              48,874 |
| MockBadTransferStrategy                        |              998 |             1,187 |             23,578 |              47,965 |
| MockERC20AaveLMUpgradeable                     |            8,401 |             8,626 |             16,175 |              40,526 |
| MockERC4626StataTokenUpgradeable               |            9,890 |            10,246 |             14,686 |              38,906 |
| MockFlashLoanATokenReceiver                    |            2,438 |             2,816 |             22,138 |              46,336 |
| MockFlashLoanReceiver                          |            2,253 |             2,538 |             22,323 |              46,614 |
| MockFlashLoanSimpleReceiver                    |            1,476 |             1,761 |             23,100 |              47,391 |
| MockIncentivesController                       |              132 |               159 |             24,444 |              48,993 |
| MockInitializableFromConstructorImple          |              349 |               639 |             24,227 |              48,513 |
| MockInitializableImple                         |            1,544 |             1,576 |             23,032 |              47,576 |
| MockInitializableImpleV2                       |            1,546 |             1,578 |             23,030 |              47,574 |
| MockInitializableV1                            |              307 |               339 |             24,269 |              48,813 |
| MockInitializableV2                            |              309 |               341 |             24,267 |              48,811 |
| MockL2Pool                                     |           23,293 |            23,542 |              1,283 |              25,610 |
| MockParaSwapAugustus                           |            2,133 |             3,253 |             22,443 |              45,899 |
| MockParaSwapAugustusRegistry                   |              179 |               308 |             24,397 |              48,844 |
| MockParaSwapTokenTransferProxy                 |              905 |               998 |             23,671 |              48,154 |
| MockPeripheryContractV1                        |              309 |               338 |             24,267 |              48,814 |
| MockPeripheryContractV2                        |              290 |               319 |             24,286 |              48,833 |
| MockPoolInherited                              |           22,208 |            22,484 |              2,368 |              26,668 |
| MockReentrantInitializableImple                |              413 |               445 |             24,163 |              48,707 |
| MockReserveConfiguration                       |            2,651 |             2,680 |             21,925 |              46,472 |
| MockReserveInterestRateStrategy                |            3,314 |             3,612 |             21,262 |              45,540 |
| MockScaledTestnetERC20                         |            4,101 |             5,524 |             20,475 |              43,628 |
| MockScaledToken                                |            3,998 |             4,758 |             20,578 |              44,394 |
| MockVariableDebtToken                          |            7,281 |             8,162 |             17,295 |              40,990 |
| Ownable                                        |              629 |               722 |             23,947 |              48,430 |
| ParaSwapLiquiditySwapAdapter                   |            8,733 |             9,850 |             15,843 |              39,302 |
| ParaSwapRepayAdapter                           |            9,320 |            10,527 |             15,256 |              38,625 |
| ParaSwapWithdrawSwapAdapter                    |            7,397 |             8,451 |             17,179 |              40,701 |
| PercentageMath                                 |               44 |                94 |             24,532 |              49,058 |
| PercentageMathWrapper                          |              297 |               326 |             24,279 |              48,826 |
| PoolAddressesProvider                          |            6,697 |             8,049 |             17,879 |              41,103 |
| PoolAddressesProviderRegistry                  |            2,148 |             2,609 |             22,428 |              46,543 |
| PoolConfiguratorInstance                       |           19,780 |            19,812 |              4,796 |              29,340 |
| PoolInstance                                   |           22,019 |            22,268 |              2,557 |              26,884 |
| PoolLogic                                      |            6,823 |             6,876 |             17,753 |              42,276 |
| PoolStorage                                    |               21 |                47 |             24,555 |              49,105 |
| PriceFeedEngine                                |            1,577 |             1,630 |             22,999 |              47,522 |
| PriceOracle                                    |              469 |               498 |             24,107 |              48,654 |
| PriceOracleSentinel                            |            1,668 |             1,884 |             22,908 |              47,268 |
| ProxyAdmin                                     |            1,592 |             1,714 |             22,984 |              47,438 |
| ProxyHelpers                                   |               44 |                94 |             24,532 |              49,058 |
| PullRewardsTransferStrategy                    |            1,255 |             1,481 |             23,321 |              47,671 |
| RateEngine                                     |            2,348 |             2,401 |             22,228 |              46,751 |
| ReserveConfiguration                           |              128 |               179 |             24,448 |              48,973 |
| ReserveLogic                                   |               44 |                94 |             24,532 |              49,058 |
| RevenueSplitter                                |            1,942 |             2,259 |             22,634 |              46,893 |
| RewardsController                              |           14,226 |            14,420 |             10,350 |              34,732 |
| RewardsDataTypes                               |               44 |                94 |             24,532 |              49,058 |
| SafeCast                                       |               44 |                94 |             24,532 |              49,058 |
| SafeERC20                                      |               44 |                94 |             24,532 |              49,058 |
| SafeMath                                       |               44 |                94 |             24,532 |              49,058 |
| SequencerOracle                                |              865 |             1,326 |             23,711 |              47,826 |
| SigUtils                                       |              492 |               545 |             24,084 |              48,607 |
| SignedMath                                     |               44 |                94 |             24,532 |              49,058 |
| SlotParser                                     |              330 |               383 |             24,246 |              48,769 |
| StakeMock                                      |              355 |               384 |             24,221 |              48,768 |
| StakedTokenTransferStrategy                    |            2,060 |             2,770 |             22,516 |              46,382 |
| StataTokenFactory                              |            3,562 |             4,053 |             21,014 |              45,099 |
| StataTokenV2                                   |           19,991 |            20,693 |              4,585 |              28,459 |
| StorageSlot                                    |               44 |                94 |             24,532 |              49,058 |
| Strings                                        |               44 |                94 |             24,532 |              49,058 |
| SupplyLogic                                    |           11,679 |            11,732 |             12,897 |              37,420 |
| TestnetERC20                                   |            3,981 |             5,396 |             20,595 |              43,756 |
| TransparentProxyFactory                        |            7,074 |             7,103 |             17,502 |              42,049 |
| TransparentUpgradeableProxy                    |            2,000 |             3,429 |             22,576 |              45,723 |
| UiIncentiveDataProviderV3                      |            9,125 |             9,154 |             15,451 |              39,998 |
| UiPoolDataProviderV3                           |            9,917 |            10,128 |             14,659 |              39,024 |
| UpgradeabilityProxy                            |              108 |               855 |             24,468 |              48,297 |
| UserConfiguration                              |               44 |                94 |             24,532 |              49,058 |
| ValidationLogic                                |              189 |               241 |             24,387 |              48,911 |
| VariableDebtTokenHarness                       |            7,297 |             8,178 |             17,279 |              40,974 |
| VariableDebtTokenInstance                      |            7,279 |             8,158 |             17,297 |              40,994 |
| WETH9                                          |            1,885 |             2,354 |             22,691 |              46,798 |
| WETH9Mock                                      |            2,640 |             3,869 |             21,936 |              45,283 |
| WETH9Mocked                                    |            2,191 |             2,660 |             22,385 |              46,492 |
| WadRayMath                                     |               44 |                94 |             24,532 |              49,058 |
| WadRayMathWrapper                              |              816 |               845 |             23,760 |              48,307 |
| WalletBalanceProvider                          |            2,619 |             2,648 |             21,957 |              46,504 |
| WalletMock                                     |               21 |                47 |             24,555 |              49,105 |
| WrappedTokenGatewayV3                          |            5,722 |             6,600 |             18,854 |              42,552 |

@github-actions
Copy link
Contributor

Gas report

ProxyAdmin

  • size: 0 / 49152
Method min mean median max calls
owner() ↑33%384 ↑33%384 ↑33%384 ↑33%384 2

TransparentUpgradeableProxy

  • size: 0 / 49152
Method min mean median max calls
DOMAIN_SEPARATOR() ↑5%7311 ↑5%7311 ↑5%7311 ↑5%7311 3
INCENTIVES_CONTROLLER() ↑44%1136 ↑44%1136 ↑44%1136 ↑44%1136 1
STATA_TOKEN_IMPL() ↑45%7534 ↑45%7534 ↑45%7534 ↑45%7534 1
aToken() ↑12%3321 ↑12%3321 ↑12%3321 ↑12%3321 1
admin() 23697 23697 23697 23697 8
allowance(address,address) ↑28%1598 ↑28%1598 ↑28%1598 ↑28%1598 1
asset() ↑12%3235 ↑12%3235 ↑12%3235 ↑12%3235 1
balanceOf(address) ↑32%1442 ↑32%1442 ↑32%1442 ↑32%1442 1
canPause(address) ↑14%18899 ↑14%18899 ↑14%18899 ↑14%18899 2
claimRewardsToSelf(address[]) ↑7.9%32178 ↑7.9%32178 ↑7.9%32178 ↑7.9%32178 1
createStataTokens(address[]) ↑28%2513736 ↑28%2513736 ↑28%2513736 ↑28%2513736 ↑21%23
decimals() ↑33%1404 ↑33%1404 ↑33%1404 ↑33%1404 1
deposit(uint256,address) ↑0.8%296168 ↑0.8%296168 ↑0.8%296168 ↑0.8%296168 1
depositATokens(uint256,address) ↑1.3%180705 ↑1.1%214146 ↑1.1%222507 ↑1.1%222507 5
emergencyTokenTransfer(address,address,uint256) ↑7.1%35308 ↑2.2%109052 ↑2.1%113240 ↑1.4%174420 4
getReferenceAsset() ↑12%3277 ↑12%3277 ↑12%3277 ↑12%3277 1
getStataToken(address) ↑34%1358 ↑34%1358 ↑34%1358 ↑34%1358 ↑21%23
maxRedeem(address) ↑4.4%8261 ↑4.4%8261 ↑4.4%8261 ↑4.4%8261 2
maxWithdraw(address) ↑3.3%10927 ↑3.3%10927 ↑3.3%10927 ↑3.3%10927 1
mint(uint256,address) ↑0.8%296262 ↑0.8%296262 ↑0.8%296262 ↑0.8%296262 1
name() ↑28%10669 ↑28%10669 ↑28%10669 ↑28%10669 1
nonces(address) ↑30%10065 ↑30%10065 ↑30%10065 ↑30%10065 3
paused() ↑38%1255 ↑32%5505 ↑32%5505 ↑32%9755 2
permit(address,address,uint256,uint256,uint8,bytes32,bytes32) ↑8.1%31430 ↑4%61234 ↑3.8%63913 ↑2.7%88360 3
previewDeposit(uint256) ↑11%23248 ↑11%23248 ↑11%23248 ↑11%23248 1
redeem(uint256,address,address) ↑4%60981 ↑4%60981 ↑4%60981 ↑4%60981 1
setPaused(bool) ↑6.2%40089 ↑4%60561 ↑3.8%63486 ↑3.8%63486 8
symbol() ↑9.1%4181 ↑9.1%4181 ↑9.1%4181 ↑9.1%4181 1
transfer(address,uint256) ↑8%31688 ↑8%31688 ↑8%31688 ↑8%31688 1
withdraw(uint256,address,address) ↑3.8%63648 ↑3.8%63648 ↑3.8%63648 ↑3.8%63648 1

WETH9

  • size: 2354 / 49152
Method min mean median max calls
decimals() 2312 2312 2312 2312 ↑1.2%683

StataTokenFactory

  • size: 0 / 49152
Method min mean median max calls
createStataTokens(address[]) ↑28%2483966 ↑28%2483966 ↑28%2483966 ↑28%2483966 ↑21%23
getStataToken(address) 569 569 569 569 ↑21%23
initialize() 24103 24103 24103 24103 ↑0.62%651

StataTokenV2

  • size: 0 / 49152
Method min mean median max calls
initialize(address,string,string) 25518 ↑0.27%231417 232108 239108 ↑21%70

AaveV3ConfigEngine

  • size: 0 / 49152
Method min mean median max calls
listAssetsCustom((string,string),((address,string,address,(uint256,uint256,uint256,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),(address,address))[]) 1803763 5189368 5194695 5194695 ↑0.62%645

AaveProtocolDataProvider

  • size: 0 / 49152
Method min mean median max calls
getATokenTotalSupply(address) 12822 13647 12866 25922 ↑0.62%1960
getIsVirtualAccActive(address) 3245 3266 3267 3267 ↓-26%86
getPaused(address) 3333 ↑0.7%3456 3355 5355 ↓-24%98
getReserveConfigurationData(address) 3659 ↑1.6%4055 3681 17181 ↓-17%152
getReserveTokensAddresses(address) 9510 ↓-1%13139 9554 43054 ↓-5.6%521
getUserReserveData(address,address) 19863 ↑0.26%29659 27941 46863 26

ATokenInstance

  • size: 11090 / 49152
Method min mean median max calls
POOL() 326 326 326 326 ↑12%110
RESERVE_TREASURY_ADDRESS() 419 ↑14%799 419 2419 ↓-22%105
UNDERLYING_ASSET_ADDRESS() 441 ↑17%1529 ↑450%2441 2441 ↓-9.5%180
decimals() 356 ↑14%763 356 2356 ↓-23%103
getIncentivesController() 474 ↑2.4%520 474 2474 ↓-26%86
initialize(address,address,address,address,uint8,string,string,bytes) ↓-0.11%166674 ↑3.1%195389 187036 299168 ↓-0.88%2146
name() 1004 ↑6.3%2310 ↑110%3259 3259 ↓-7%252
symbol() 1069 ↑7.3%2326 ↑7.2%1736 3324 ↓-7.5%234
totalSupply() 407 2725 2407 10463 ↑0.56%2141
transfer(address,uint256) 576 ↓-1.3%98075 ↓-0.27%110564 140167 22
transferFrom(address,address,uint256) 2998 ↑0.11%105754 111936 142842 40

L2PoolInstance

  • size: 0 / 49152
Method min mean median max calls
borrow(address,uint256,uint256,uint16,address) ↑1.4%203159 ↑0.11%224510 222214 238218 11
repayWithPermit(bytes32,bytes32,bytes32) ↑2%189266 ↑2%189266 ↑2%189266 ↑2%189266 1

PoolConfiguratorInstance

  • size: 19812 / 49152
Method min mean median max calls
configureReserveAsCollateral(address,uint256,uint256,uint256) 12220 12558 12264 99552 ↑0.62%1949
initReserves((address,address,bool,address,address,address,address,string,string,string,string,bytes,bytes)[]) 17401 ↓-1.2%4827912 4382378 ↑6.1%202908601 ↑0.61%655
initialize(address) 72573 90420 90473 90473 ↑0.59%679
setBorrowCap(address,uint256) 11170 11429 11214 44169 ↑0.62%1946
setBorrowableInIsolation(address,bool) 10736 11045 10780 43726 ↑0.62%1947
setDebtCeiling(address,uint256) 17256 44936 41675 98789 ↑0.62%1953
setLiquidationProtocolFee(address,uint256) 11241 11426 11285 44240 ↑0.62%1942
setReserveBorrowing(address,bool) 10911 11069 10955 41764 ↑0.62%1939
setReserveFactor(address,uint256) 17301 43390 36685 124960 ↑0.62%1938
setReserveFlashLoaning(address,bool) 10910 11051 10954 43918 ↑0.62%1938
setSiloedBorrowing(address,bool) 11281 11492 11325 94206 ↑0.62%1937
setSupplyCap(address,uint256) 11127 12163 11171 44126 ↑0.62%1953
updateFlashloanPremiumToProtocol(uint128) 10115 10225 10181 36981 ↑0.59%680
updateFlashloanPremiumTotal(uint128) 14052 31994 32046 36946 ↑0.59%680

PoolInstance

  • size: 22300 / 49152
Method min mean median max calls
ADDRESSES_PROVIDER() 284 284 284 284 ↑0.61%1965
FLASHLOAN_PREMIUM_TOTAL() 410 1413 2410 2410 ↑0.65%1236
FLASHLOAN_PREMIUM_TO_PROTOCOL() 459 460 459 2459 ↑0.65%1233
borrow(address,uint256,uint256,uint16,address) 46604 196206 222258 261378 110
finalizeTransfer(address,address,address,uint256,uint256,uint256) 20725 ↓-0.81%46884 48063 87949 59
flashLoan(address,address[],uint256[],uint256[],address,bytes,uint16) ↓-1.8%30247 128991 93606 322330 12
getConfiguration(address) 745 767 745 2745 ↑0.15%18552
getReserveData(address) 5248 ↑0.23%7789 5248 29748 ↑0.19%4710
getReservesList() 3170 ↓-6%8205 11170 ↓-27%68175 ↑4.7%89
getUserConfiguration(address) 703 ↑6.4%925 703 2703 36
initReserve(address,address,address,address) 6564 ↓-0.3%165312 161757 207007 ↓-0.94%2004
initialize(address) 45378 45473 45378 66895 ↑0.65%620
repayWithPermit(address,uint256,uint256,address,uint256,uint8,bytes32,bytes32) 154051 ↑4.8%178018 170261 ↑13%209744 3
resetIsolationModeTotalDebt(address) 4265 4278 4265 15265 ↑0.67%1794
setConfiguration(address,(uint256)) 2170 ↓-0.71%4465 2170 24325 ↑0.51%20041
setUserEMode(uint8) 14165 ↑0.19%42924 41117 94723 26
syncIndexesState(address) 7211 13934 7211 62577 ↑0.66%1838
syncRatesState(address) 13459 15981 16005 22505 ↑0.66%1838
updateFlashloanPremiums(uint128,uint128) 1720 11657 6520 21620 ↑0.65%1231

VariableDebtTokenInstance

  • size: 8190 / 49152
Method min mean median max calls
UNDERLYING_ASSET_ADDRESS() 397 397 397 397 ↓-27%82
decimals() 334 334 334 334 ↓-27%82
getIncentivesController() 430 430 430 430 ↓-27%82
initialize(address,address,address,uint8,string,string,bytes) 143853 ↓-1.2%167605 164290 ↓-7.5%276648 ↓-0.88%2146
name() 1004 ↑3.9%1880 1554 3259 ↓-15%172
scaledTotalSupply() 417 1592 2417 2417 ↑0.49%4878
symbol() ↓-20%1025 ↑3.3%1864 1575 3280 ↓-16%165

DefaultReserveInterestRateStrategyV2

  • size: 4323 / 49152
Method min mean median max calls
calculateInterestRates((uint256,uint256,uint256,uint256,uint256,address,bool,uint256)) 0 ↓-0.1%2903 2251 5973 ↑0.43%2797
setInterestRateParams(address,(uint16,uint32,uint32,uint32)) 28329 29715 29064 36782 11
setInterestRateParams(address,bytes) 28662 33743 37115 37133 30

InitializableImmutableAdminUpgradeabilityProxy

  • size: 2052 / 49152
Method min mean median max calls
ADDRESSES_PROVIDER() 890 3797 5390 5457 ↑0.56%2140
EMISSION_MANAGER() 932 932 932 932 ↑0.59%678
FLASHLOAN_PREMIUM_TOTAL() 994 2025 2994 7516 ↑0.59%1360
FLASHLOAN_PREMIUM_TO_PROTOCOL() 1043 1067 1065 7565 ↑0.59%1357
POOL() 932 ↓-6.3%2077 932 5432 ↑12%110
RESERVE_TREASURY_ADDRESS() 1025 ↑8%1444 1025 7525 ↓-22%106
UNDERLYING_ASSET_ADDRESS() 1003 ↑13%1781 1047 3047 ↓-16%262
approve(address,uint256) 51270 51347 51330 51642 33
borrow(address,uint256,uint256,uint16,address) 73940 224929 249573 288773 120
configureReserveAsCollateral(address,uint256,uint256,uint256) 44058 71170 70073 126489 13
decimals() 940 ↑5.5%1203 962 7462 ↓-25%185
deposit(address,uint256,address,uint16) 173106 224219 226034 235646 27
flashLoan(address,address[],uint256[],uint256[],address,bytes,uint16) 60279 151430 122514 351243 12
getAssetIndex(address,address) ↑0.58%3099 ↑0.39%9686 9589 16507 44
getConfiguration(address) 1332 1407 1354 7854 ↑0.14%20014
getIncentivesController() 1036 ↑1.8%1134 1080 7580 ↓-27%170
getReserveData(address) 5891 ↑0.23%8637 5935 34935 ↑0.18%5053
getReservesList() 3794 ↓-5.4%9517 11794 ↓-26%69305 ↑4.5%92
getRewardsByAsset(address) 2383 ↓-0.55%5442 3658 10883 ↑10%128
getUserConfiguration(address) 1312 ↑3.8%1534 1312 3312 36
initReserves((address,address,bool,address,address,address,address,string,string,string,string,bytes,bytes)[]) 45683 ↓-9.8%37282015 ↓-4.2%1541253 ↑6.1%203975455 9
liquidationCall(address,address,address,uint256,bool) 80670 265129 350729 410462 31
name() 1613 ↑4.7%2871 2172 8371 ↓-11%426
repayWithATokens(address,uint256,uint256) 182122 187319 187416 193095 6
repayWithPermit(address,uint256,uint256,address,uint256,uint8,bytes32,bytes32) 182656 ↑4.3%198361 194005 ↑13%218424 3
repayWithPermit(bytes32,bytes32,bytes32) ↑1.9%196760 ↑1.9%196760 ↑1.9%196760 ↑1.9%196760 1
rescueTokens(address,address,uint256) 39090 58091 69188 70469 5
scaledTotalSupply() 979 ↓-0.16%3064 3023 7523 ↑0.49%4911
setLiquidationGracePeriod(address,uint40) 32833 37971 37348 43739 6
setPoolPause(bool) 43528 87081 116095 116161 5
setPoolPause(bool,uint40) 43783 88976 88976 134169 2
setReserveInterestRateStrategyAddress(address,address) 32829 ↓-0.29%36500 ↓-0.54%35235 42713 8
setReservePause(address,bool) 44044 61263 69873 69873 3
setReservePause(address,bool,uint40) 41300 66571 67659 76187 24
setSupplyCap(address,uint256) 43691 66773 70813 70819 18
setUserEMode(uint8) 40475 ↑0.31%69030 67427 121033 33
supplyWithPermit(address,uint256,address,uint16,uint256,uint8,bytes32,bytes32) 142306 216812 241875 266257 3
supplyWithPermit(bytes32,bytes32,bytes32) 262550 262550 262550 262550 1
symbol() ↓-2.6%1634 ↑8.7%3406 2193 8436 ↓-11%401
totalSupply() 1013 ↓-0.11%3745 3013 15569 ↑0.56%2152
transfer(address,uint256) 27651 ↓-1.2%123416 ↓-2.4%137272 166887 18

MockAggregator

  • size: 310 / 49152
Method min mean median max calls
latestAnswer() 279 2099 2279 2279 ↑0.48%2508

TestnetERC20

  • size: 5652 / 49152
Method min mean median max calls
decimals() 311 ↑4%2021 2311 2311 ↓-5.5%1866
permit(address,address,uint256,uint256,uint8,bytes32,bytes32) 76469 76481 76481 76493 2

PercentageMathWrapper

  • size: 326 / 49152
Method min mean median max calls
HALF_PERCENTAGE_FACTOR() 146 146 146 146 ↓-33%2
PERCENTAGE_FACTOR() 223 223 223 223 ↓-75%1
percentDiv(uint256,uint256) ↓-26%316 ↓-6.5%400 428 428 4
percentMul(uint256,uint256) ↓-23%333 ↓-5.8%406 431 431 4

WadRayMathWrapper

  • size: 845 / 49152
Method min mean median max calls
WAD() 179 179 179 179 ↑33%4
wadDiv(uint256,uint256) ↑26%538 ↑4.5%538 538 538 5

ACLManager

  • size: 4139 / 49152
Method min mean median max calls
DEFAULT_ADMIN_ROLE() 282 282 282 282 ↑0.59%1374
POOL_ADMIN_ROLE() 292 292 292 292 ↑0.59%677
addPoolAdmin(address) 50988 50999 51000 51000 ↑0.61%664
isAssetListingAdmin(address) 809 1828 2809 2809 ↑0.61%1318
isPoolAdmin(address) 752 847 752 2752 ↑0.61%22430
isRiskAdmin(address) 742 ↓-0.12%837 742 2742 ↑0.61%19640

PoolAddressesProvider

  • size: 8177 / 49152
Method min mean median max calls
getACLAdmin() 477 ↓-0.18%555 477 2477 ↑0.57%709
getACLManager() 531 629 531 2531 ↑0.61%22471
getAddress(bytes32) 543 ↑0.23%868 543 2543 ↑0.23%5738
getPool() 466 ↑1.4%1080 466 2466 ↓-1.9%5236
getPoolConfigurator() 509 570 509 2509 ↑0.33%34192
getPoolDataProvider() 486 1169 486 2486 ↑0.6%2023
owner() 363 363 363 363 ↑0.59%682

PoolAddressesProviderRegistry

  • size: 0 / 49152
Method min mean median max calls
owner() 329 2323 2329 2329 ↑0.59%679

RewardsController

  • size: 14452 / 49152
Method min mean median max calls
EMISSION_MANAGER() 326 326 326 326 ↑0.59%681
claimRewards(address[],uint256,address,address) 952 ↑18%60418 ↑52%84890 ↑14%97890 8
getAssetIndex(address,address) ↑0.73%2484 ↑0.51%7536 8974 11392 44
getRewardsByAsset(address) 1768 ↑0.13%3001 3046 5768 ↑10%128
initialize(address) 26065 45245 45250 53154 ↑0.59%679

Collector

  • size: 0 / 49152
Method min mean median max calls
initialize(address,uint256) 90680 90680 90680 90680 ↑0.57%704

RevenueSplitter

  • size: 2355 / 49152
Method min mean median max calls
splitRevenue(address[]) 24246 ↑3.4%76565 58340 135765 8

AaveV3GettersBatchOne

  • size: 32657 / 49152
Method min mean median max calls
getGettersReportOne() 968 968 968 968 ↑0.57%701

AaveV3GettersBatchTwo

  • size: 11284 / 49152
Method min mean median max calls
getGettersReportTwo() 533 533 533 533 ↑0.6%675

AaveV3HelpersBatchOne

  • size: 34331 / 49152
Method min mean median max calls
getConfigEngineReport() 1693 1693 1693 1693 ↑0.62%649

AaveV3HelpersBatchTwo

  • size: ↑5.6%33079 / 49152
Method min mean median max calls
staticATokenReport() 968 968 968 968 ↑0.62%649

AaveV3MiscBatch

  • size: 6958 / 49152
Method min mean median max calls
getMiscReport() 533 533 533 533 ↑0.57%701

AaveV3PeripheryBatch

  • size: ↑4.3%40844 / 49152
Method min mean median max calls
getPeripheryReport() 1512 3509 3512 5512 ↑0.57%701

AaveV3PoolBatch

  • size: 42738 / 49152
Method min mean median max calls
getPoolReport() 533 533 533 533 ↑0.64%625

AaveV3SetupBatch

  • size: 26831 / 49152
Method min mean median max calls
getInitialReport() 552 552 552 552 ↑0.57%701
setMarketReport((address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address,address)) 629994 632476 629994 750834 ↑0.62%649
setupAaveV3Market((address,address,address),(address,address,string,uint8,address,address,uint256,uint256,bytes32,address,address,uint128,uint128,address,address,address,uint16),address,address,address,address,address,address) 2168391 2661455 2661559 2687366 ↑0.59%677

AaveV3TokensBatch

  • size: 20353 / 49152
Method min mean median max calls
getTokensReport() 533 533 533 533 ↑0.6%675

MockERC20AaveLMUpgradeable

  • size: 8658 / 49152
Method min mean median max calls
claimRewards(address,address[]) ↓-66%58645 ↓-66%58645 ↓-66%58645 ↓-66%58645 1
claimRewardsOnBehalf(address,address,address[]) 34383 ↑42%128636 ↑190%173902 177625 3
claimRewardsToSelf(address[]) ↑0.69%58146 ↑0.69%58146 ↑0.69%58146 ↑0.69%58146 1
collectAndUpdateRewards(address) 48341 ↑69%89393 ↑69%89393 ↑130%130446 2
getClaimableRewards(address,address) ↑0.65%6203 ↑0.96%8018 6584 26280 16
mint(address,uint256) 53655 91178 97646 97646 11
refreshRewardTokens() 116549 116590 116557 116975 12
transfer(address,uint256) ↓-3.6%60612 ↓-14%61716 ↓-14%61716 ↓-22%62820 2

MockScaledTestnetERC20

  • size: 5780 / 49152
Method min mean median max calls
mint(address,uint256) 51476 67056 68648 68648 11
transfer(address,uint256) 29803 45403 46975 46975 11

MockERC4626StataTokenUpgradeable

  • size: 10278 / 49152
Method min mean median max calls
approve(address,uint256) ↑0.23%46483 ↑0.21%46489 ↑0.21%46489 ↑0.18%46495 2
depositATokens(uint256,address) ↑0.12%59736 198548 210704 ↑0.12%215566 12
depositWithPermit(uint256,address,uint256,(uint8,bytes32,bytes32),bool) 75899 ↑0.41%244488 ↑8.2%267374 ↓-4.4%338628 5
mint(uint256,address) ↓-0.16%74583 193482 193482 312381 2
redeemATokens(uint256,address,address) 40863 121271 160879 162073 3
withdraw(uint256,address,address) ↑0.35%51359 114367 114367 ↓-0.2%177375 2

VariableDebtTokenHarness

  • size: 8210 / 49152
Method min mean median max calls
approveDelegation(address,uint256) 48605 48605 48605 48605 1
burn(address,uint256,uint256) 52051 52051 52051 52051 2
initialize(address,address,address,uint8,string,string,bytes) ↓-1.2%30561 ↓-1.5%172925 202143 247800 8
mint(address,address,uint256,uint256) 86731 88001 86779 91718 4
symbol() 1280 ↓-0.29%1374 1280 ↑15%1810 15

AaveV3TestListing

  • size: 13561 / 49152
Method min mean median max calls
USDX_ADDRESS() 293 293 293 293 ↑0.63%641
WBTC_ADDRESS() 249 249 249 249 ↑0.63%641
execute() 5115928 5116788 5116858 5116858 ↑0.63%644

@github-actions
Copy link
Contributor

forge 0.0.2 (dc26b62 2024-11-20T00:26:13.457483640Z)

@github-actions
Copy link
Contributor

🌈 Test Results
No files changed, compilation skipped

Ran 20 tests for tests/protocol/configuration/ACLManager.t.sol:ACLManagerTest
[PASS] testDefaultAdminRoleAfterDeploy() (gas: 20689)
[PASS] test_defaultAdmin_grantAdminRole_FlashBorrowAdmin() (gas: 65510)
[PASS] test_defaultAdmin_grants_AssetsListingRole() (gas: 37593)
[PASS] test_defaultAdmin_grants_BridgeRole() (gas: 37659)
[PASS] test_defaultAdmin_grants_EmergencyAdminRole() (gas: 37606)
[PASS] test_defaultAdmin_grants_PoolAdminRole() (gas: 37726)
[PASS] test_defaultAdmin_grants_RiskRole() (gas: 37723)
[PASS] test_defaultAdmin_remove_AssetsListingRole() (gas: 29442)
[PASS] test_defaultAdmin_remove_BridgeRole() (gas: 29531)
[PASS] test_defaultAdmin_remove_EmergencyAdminRole() (gas: 29426)
[PASS] test_defaultAdmin_remove_PoolAdminRole() (gas: 29548)
[PASS] test_defaultAdmin_remove_RiskRole() (gas: 29432)
[PASS] test_flashBorrowAdmin_grantRole_FlashBorrowRole() (gas: 91916)
[PASS] test_flashBorrowAdmin_removeRole_FlashBorrowRole() (gas: 76438)
[PASS] test_remove_riskAdmin() (gas: 29442)
[PASS] test_revert_anyUser_grantAdminRole_FlashBorrowAdmin() (gas: 72851)
[PASS] test_revert_deploy_ACLADMIN_zeroAddress() (gas: 1470125)
[PASS] test_reverts_defaultAdmin_notRoleAdmin_addRole_FlashBorrowRole() (gas: 98836)
[PASS] test_reverts_defaultAdmin_notRoleAdmin_revokeRole_FlashBorrowRole() (gas: 125219)
[PASS] test_reverts_notAdmin_grantRole_FlashBorrow() (gas: 115150)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 15.01ms (3.12ms CPU time)

Ran 17 tests for tests/protocol/tokenization/ATokenEdgeCases.t.sol:ATokenEdgeCasesTests
[PASS] testApprove() (gas: 45105)
[PASS] testApproveMax() (gas: 45208)
[PASS] testApproveWithZeroAddressSpender() (gas: 42159)
[PASS] testCheckGetters() (gas: 259857)
[PASS] testDecreaseAllowance() (gas: 53034)
[PASS] testIncreaseAllowance() (gas: 53078)
[PASS] testIncreaseAllowanceFromZero() (gas: 48398)
[PASS] testMintToTreasury_amount_zero() (gas: 15793)
[PASS] testTransferFromZeroAmount() (gas: 129479)
[PASS] test_burn_zeroAddress() (gas: 266236)
[PASS] test_mintToZeroAddress() (gas: 82271)
[PASS] test_poolAdmin_setIncentivesController() (gas: 35820)
[PASS] test_revert_notAdmin_setIncentivesController() (gas: 40389)
[PASS] test_reverts_burnAmountScaledZero() (gas: 19433)
[PASS] test_reverts_mintAmountScaledZero() (gas: 19577)
[PASS] test_transferFrom_zeroAddress_origin() (gas: 129290)
[PASS] test_transfer_amount_MAX_UINT_128() (gas: 16460)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 38.11ms (3.26ms CPU time)

Ran 8 tests for tests/protocol/tokenization/ATokenEvents.t.sol:ATokenEventsTests
[PASS] test_atoken_burnEvents_fullBalance() (gas: 565794)
[PASS] test_atoken_burnEvents_multipleWithdrawals_withInterests() (gas: 654244)
[PASS] test_atoken_burnEvents_singleWithdraw_WithInterests() (gas: 576417)
[PASS] test_atoken_burnEvents_singleWithdraw_noInterests() (gas: 257905)
[PASS] test_atoken_burnEvents_withdrawAmountLessThanInterests() (gas: 579265)
[PASS] test_atoken_mintEvents_firstSupply() (gas: 255080)
[PASS] test_atoken_mintEvents_supplyAfterBorrow() (gas: 632927)
[PASS] test_mintToTreasury_events() (gas: 90162)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 46.21ms (11.47ms CPU time)

Ran 4 tests for tests/protocol/tokenization/ATokenModifiers.t.sol:ATokenModifiersTests
[PASS] test_revert_notAdmin_burn() (gas: 17084)
[PASS] test_revert_notAdmin_mint() (gas: 17178)
[PASS] test_revert_notAdmin_transferOnLiquidation() (gas: 17210)
[PASS] test_revert_notAdmin_transferUnderlyingTo() (gas: 17015)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 34.89ms (317.48µs CPU time)

Ran 9 tests for tests/protocol/tokenization/ATokenPermit.t.sol:ATokenPermitTests
[PASS] testCheckDomainSeparator() (gas: 26163)
[PASS] test_cancelPermit() (gas: 100693)
[PASS] test_chain_fork_calculateDomainSeparator() (gas: 32906)
[PASS] test_revert_submitPermit_0_expiration() (gas: 46698)
[PASS] test_revert_submitPermit_invalid_expiration_previosCurrentBlock() (gas: 47177)
[PASS] test_revert_submitPermit_invalid_nonce() (gas: 55087)
[PASS] test_revert_submitPermit_invalid_owner() (gas: 46525)
[PASS] test_revert_submitPermit_invalid_signature() (gas: 54947)
[PASS] test_submitPermit() (gas: 94296)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 41.38ms (5.77ms CPU time)

Ran 3 tests for tests/protocol/tokenization/ATokenRepay.t.sol:ATokenRepayTests
[PASS] test_repay_allDebt() (gas: 274861)
[PASS] test_repay_partialDebt() (gas: 274021)
[PASS] test_revert_repay_withoutFunds() (gas: 180200)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 39.00ms (2.04ms CPU time)

Ran 3 tests for tests/protocol/tokenization/ATokenRescueTokens.sol:ATokenRescueTokensTests
[PASS] test_rescueTokens() (gas: 77965)
[PASS] test_reverts_rescueTokens_CALLER_NOT_POOL_ADMIN() (gas: 70878)
[PASS] test_reverts_rescueTokens_UNDERLYING_CANNOT_BE_RESCUED() (gas: 71617)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 35.08ms (630.93µs CPU time)

Ran 11 tests for tests/protocol/tokenization/ATokenTransfers.t.sol:ATokenTransferTests
[PASS] test_atoken_alice_transfer_all_to_bob() (gas: 161976)
[PASS] test_atoken_alice_transfer_to_bob() (gas: 235451)
[PASS] test_atoken_alice_transfer_to_bob_zero() (gas: 162751)
[PASS] test_atoken_alice_transfer_to_carol_accrues_interests() (gas: 229402)
[PASS] test_atoken_alice_transfer_to_herself() (gas: 81523)
[PASS] test_atoken_alice_transfer_to_herself_zero() (gas: 81564)
[PASS] test_atoken_multiple_transfers() (gas: 201155)
[PASS] test_atoken_transfer_sets_enabled_as_collateral(uint64,uint256) (runs: 1000, μ: 389411, ~: 393082)
[PASS] test_atoken_transfer_some_collateral_from_bob_borrower_to_alice() (gas: 529057)
[PASS] test_atoken_transfer_to_bob_them_bob_borrows() (gas: 398380)
[PASS] test_reverts_atoken_transfer_all_collateral_from_bob_borrower_to_alice() (gas: 404648)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 1.50s (1.45s CPU time)

Ran 12 tests for tests/misc/AaveOracle.t.sol:AaveOracleTest
[PASS] testAddSingleSource() (gas: 936997)
[PASS] testAssetZeroPriceAndZeroFallbackPrice() (gas: 1076187)
[PASS] testAssetZeroPriceNonZeroFallback() (gas: 1096138)
[PASS] testAssetZeroPriceWithoutFallback() (gas: 918632)
[PASS] testEmptySource() (gas: 821590)
[PASS] testGetBaseCurrencyPrice() (gas: 12315)
[PASS] testGetPriceViaFallbackOracle() (gas: 1000288)
[PASS] testUpdateFallbackOracle() (gas: 178617)
[PASS] testUpdateSingleSource() (gas: 127097)
[PASS] testUpdateSourceBaseCurrency() (gas: 138611)
[PASS] test_revert_setAssetSources_inconsistentParams() (gas: 822968)
[PASS] test_revert_setAssetSources_wrongCaller() (gas: 24620)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 85.99ms (2.74ms CPU time)

Ran 5 tests for tests/deployments/AaveV3BatchDeployment.t.sol:AaveV3BatchDeployment
[PASS] testAaveV3BatchDeploy() (gas: 55248859)
[PASS] testAaveV3BatchDeploymentCheck() (gas: 63422699)
[PASS] testAaveV3Batch_reuseIncentivesProxy() (gas: 54725670)
[PASS] testAaveV3L2BatchDeploymentCheck() (gas: 65249815)
[PASS] testAaveV3TreasuryPartnerBatchDeploymentCheck() (gas: 63929776)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 319.18ms (301.78ms CPU time)

Ran 12 tests for tests/deployments/AaveV3BatchTests.t.sol:AaveV3BatchTests
[PASS] test0AaveV3SetupDeployment() (gas: 4574089)
[PASS] test10StaticATokenDeployment() (gas: 6987891)
[PASS] test1AaveV3GettersDeployment() (gas: 7880458)
[PASS] test2AaveV3PoolDeployment() (gas: 8646555)
[PASS] test3AaveV3L2PoolDeployment() (gas: 8897349)
[PASS] test4PeripheralsRelease() (gas: 6898245)
[PASS] test5MiscDeployment() (gas: 929135)
[PASS] test6ParaswapRelease() (gas: 5544910)
[PASS] test7SetupMarket() (gas: 2692725)
[PASS] test8TokensMarket() (gas: 3901080)
[PASS] test9ConfigEngineDeployment() (gas: 6715437)
[PASS] testAaveV3FullBatchOrchestration() (gas: 55245175)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 54.34ms (30.82ms CPU time)

Ran 13 tests for tests/protocol/pool/Pool.Supply.t.sol:PoolSupplyTests
[PASS] test_deprecated_deposit() (gas: 240984)
[PASS] test_first_supply() (gas: 240985)
[PASS] test_first_supply_on_behalf() (gas: 243032)
[PASS] test_reverts_supply_cap() (gas: 105400)
[PASS] test_reverts_supply_invalidAmount() (gas: 47837)
[PASS] test_reverts_supply_reserveFrozen() (gas: 117686)
[PASS] test_reverts_supply_reserveInactive() (gas: 134837)
[PASS] test_reverts_supply_reservePaused() (gas: 88490)
[PASS] test_reverts_supply_to_aToken() (gas: 50356)
[PASS] test_supplyWithPermit(uint128,uint128,uint128) (runs: 1000, μ: 422689, ~: 422689)
[PASS] test_supplyWithPermit_not_failing_if_permit_was_used(uint128,uint128,uint128) (runs: 1000, μ: 422874, ~: 422897)
[PASS] test_supplyWithPermit_should_revert_if_permit_is_less_then_supply_amount(uint128,uint128) (runs: 1000, μ: 288145, ~: 288148)
[PASS] test_supply_after_collateral_enabled() (gas: 287780)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 6.44s (6.40s CPU time)

Ran 11 tests for tests/protocol/pool/Pool.Withdraw.t.sol:PoolWithdrawTests
[PASS] test_Reverts_withdraw_transferred_funds() (gas: 549349)
[PASS] test_full_withdraw() (gas: 234895)
[PASS] test_full_withdraw_to() (gas: 240423)
[PASS] test_partial_withdraw() (gas: 231403)
[PASS] test_reverts_withdraw_hf_lt_lqt() (gas: 678632)
[PASS] test_reverts_withdraw_invalidAmount() (gas: 247376)
[PASS] test_reverts_withdraw_invalidBalance() (gas: 249446)
[PASS] test_reverts_withdraw_reserveInactive() (gas: 214658)
[PASS] test_reverts_withdraw_reservePaused() (gas: 287040)
[PASS] test_reverts_withdraw_to_atoken() (gas: 247232)
[PASS] test_withdraw_not_enabled_as_collateral() (gas: 248243)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 48.13ms (8.11ms CPU time)

Ran 37 tests for tests/protocol/pool/Pool.t.sol:PoolTests
[PASS] test_dropReserve() (gas: 108071)
[PASS] test_getBorrowLogic() (gas: 13641)
[PASS] test_getBridgeLogic() (gas: 13683)
[PASS] test_getEModeLogic() (gas: 13596)
[PASS] test_getFlashLoanLogic() (gas: 13620)
[PASS] test_getLiquidationLogic() (gas: 13709)
[PASS] test_getPoolLogic() (gas: 13661)
[PASS] test_getSupplyLogic() (gas: 13596)
[PASS] test_getVirtualUnderlyingBalance() (gas: 253537)
[PASS] test_getters_getUserAccountData() (gas: 598330)
[PASS] test_mintToTreasury() (gas: 701628)
[PASS] test_mintToTreasury_skip_invalid_addresses() (gas: 706320)
[PASS] test_noop_setUserUseReserveAsCollateral_true_when_already_is_activated() (gas: 290816)
[PASS] test_pool_defaultValues() (gas: 4489181)
[PASS] test_rescueTokens(uint256) (runs: 1000, μ: 81857, ~: 82148)
[PASS] test_resetIsolationModeTotalDebt() (gas: 734317)
[PASS] test_reverts_initReserve_not_poolConfigurator(address) (runs: 1000, μ: 25452, ~: 25452)
[PASS] test_reverts_modifiers_not_poolConfigurator(address) (runs: 1000, μ: 127719, ~: 127719)
[PASS] test_reverts_new_Pool_invalidAddressesProvider() (gas: 4501329)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_AssetNotListed(address,address) (runs: 1000, μ: 40838, ~: 40838)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_ZeroAssetAddress(address) (runs: 1000, μ: 22754, ~: 22754)
[PASS] test_reverts_setUserEmode_0_bad_hf() (gas: 983188)
[PASS] test_reverts_setUserUseReserveAsCollateral_false_hf_lower_lqt() (gas: 600262)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_ltv_zero() (gas: 298982)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_inactive() (gas: 228127)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_paused() (gas: 293842)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_balance_zero() (gas: 71780)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_isolation_mode() (gas: 790145)
[PASS] test_setLiquidationGracePeriod(uint40) (runs: 1000, μ: 36907, ~: 36991)
[PASS] test_setLiquidationGracePeriod_assetNotListed(uint40) (runs: 1000, μ: 27115, ~: 27115)
[PASS] test_setReserveInterestRateStrategyAddress() (gas: 904381)
[PASS] test_setUserEmode() (gas: 232430)
[PASS] test_setUserEmode_twice() (gas: 377065)
[PASS] test_setUserEmode_twice_inconsistent_category() (gas: 985883)
[PASS] test_setUserUseReserveAsCollateral_false() (gas: 240420)
[PASS] test_setUserUseReserveAsCollateral_true() (gas: 277917)
[PASS] test_updateBridgeProtocolFee() (gas: 253)
Suite result: ok. 37 passed; 0 failed; 0 skipped; finished in 1.09s (1.05s CPU time)

Ran 22 tests for tests/protocol/configuration/PoolAddressesProvider.t.sol:PoolAddressesProviderTests
[PASS] test_PoolDataProvider_changeContract() (gas: 1472801)
[PASS] test_getter_getMarketId() (gas: 1435230)
[PASS] test_new_PoolAddressesProvider() (gas: 1444460)
[PASS] test_reverts_setAddressAsProxy_notAuth() (gas: 1448636)
[PASS] test_reverts_setAddress_noAuth() (gas: 1453813)
[PASS] test_reverts_setters_notOwner() (gas: 1451422)
[PASS] test_setACLManager_changeContract() (gas: 3014312)
[PASS] test_setACLManager_setACLAdmin() (gas: 2248265)
[PASS] test_setAddress() (gas: 1462728)
[PASS] test_setAddressAsProxy_new_proxy() (gas: 2020462)
[PASS] test_setAddressAsProxy_upgrade_proxy() (gas: 2132834)
[PASS] test_setAddress_updateAddress() (gas: 1471854)
[PASS] test_setPoolConfiguratorImpl() (gas: 5950177)
[PASS] test_setPoolConfiguratorImpl_upgrade() (gas: 10472002)
[PASS] test_setPoolDataProvider() (gas: 1463246)
[PASS] test_setPoolImpl() (gas: 6372591)
[PASS] test_setPoolImpl_upgrade() (gas: 10893985)
[PASS] test_setPriceOracle() (gas: 1463403)
[PASS] test_setPriceOracleSentinel() (gas: 1463274)
[PASS] test_setPriceOracleSentinel_changeContract() (gas: 1472878)
[PASS] test_setPriceOracle_changeContract() (gas: 1473139)
[PASS] test_setter_setMarketId() (gas: 1446381)
Suite result: ok. 22 passed; 0 failed; 0 skipped; finished in 53.10ms (10.11ms CPU time)

Ran 24 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.ACLModifiers.t.sol:PoolConfiguratorACLModifiersTest
[PASS] test_reverts_disableLiquidationGracePeriod_on_unauth(address,address) (runs: 1000, μ: 38594, ~: 38594)
[PASS] test_reverts_notAdmin_dropReserve(address) (runs: 1000, μ: 36181, ~: 36181)
[PASS] test_reverts_notAdmin_initReserves((uint8,string,string,string,string,address,address,address,bool),address) (runs: 1000, μ: 1049381, ~: 1049514)
[PASS] test_reverts_notAdmin_setReserveActive(address) (runs: 1000, μ: 36287, ~: 36287)
[PASS] test_reverts_notAdmin_updateAToken(address) (runs: 1000, μ: 35272, ~: 35272)
[PASS] test_reverts_notAdmin_updateFlashLoanPremiumProtocol(address) (runs: 1000, μ: 34033, ~: 34033)
[PASS] test_reverts_notAdmin_updateFlashLoanPremiumTotal(address) (runs: 1000, μ: 34030, ~: 34030)
[PASS] test_reverts_notAdmin_updateVariableDebtToken(address) (runs: 1000, μ: 35015, ~: 35015)
[PASS] test_reverts_notRiskAdmin_configureReserveAsCollateral(address) (runs: 1000, μ: 38679, ~: 38679)
[PASS] test_reverts_notRiskAdmin_setAssetCollateralInEMode(address) (runs: 1000, μ: 38813, ~: 38813)
[PASS] test_reverts_notRiskAdmin_setBorrowCap(address) (runs: 1000, μ: 38605, ~: 38605)
[PASS] test_reverts_notRiskAdmin_setEModeCategory(address) (runs: 1000, μ: 39132, ~: 39132)
[PASS] test_reverts_notRiskAdmin_setReserveBorrowing(address) (runs: 1000, μ: 38645, ~: 38645)
[PASS] test_reverts_notRiskAdmin_setReserveFactor(address) (runs: 1000, μ: 38606, ~: 38606)
[PASS] test_reverts_notRiskAdmin_setReserveInterestRateData(address,address) (runs: 1000, μ: 39368, ~: 39368)
[PASS] test_reverts_notRiskAdmin_setReserveInterestRateStrategyAddress(address) (runs: 1000, μ: 39276, ~: 39276)
[PASS] test_reverts_notRiskAdmin_setSupplyCap(address) (runs: 1000, μ: 38517, ~: 38517)
[PASS] test_reverts_notRiskOrPoolOrEmergencyAdmin_setReserveFreeze(address) (runs: 1000, μ: 43151, ~: 43151)
[PASS] test_reverts_setDebtCeiling(address) (runs: 1000, μ: 38629, ~: 38629)
[PASS] test_reverts_setPoolPause_noGracePeriod_unauth(address,bool) (runs: 1000, μ: 38557, ~: 38557)
[PASS] test_reverts_setPoolPause_unauth(address,bool,uint40) (runs: 1000, μ: 56180, ~: 56180)
[PASS] test_reverts_setReservePause_noGracePeriod_off_unauth(address,address,bool) (runs: 1000, μ: 38851, ~: 38851)
[PASS] test_reverts_setReservePause_off_unauth(address,address,bool,uint40) (runs: 1000, μ: 39016, ~: 39016)
[PASS] test_reverts_setReservePause_on_unauth(address,address,bool,uint40) (runs: 1000, μ: 38993, ~: 38993)
Suite result: ok. 24 passed; 0 failed; 0 skipped; finished in 3.55s (3.51s CPU time)

Ran 10 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.borrowCaps.t.sol:PoolConfiguratorBorrowCapTests
[PASS] test_borrow_eq_cap() (gas: 321716)
[PASS] test_borrow_interests_reach_cap() (gas: 323764)
[PASS] test_borrow_lt_cap() (gas: 299144)
[PASS] test_default_borrowCap_zero() (gas: 27547)
[PASS] test_reverts_borrow_after_borrow_interests_reach_cap() (gas: 370192)
[PASS] test_reverts_borrow_gt_cap() (gas: 142685)
[PASS] test_reverts_setBorrowCap_gt_max_cap() (gas: 48711)
[PASS] test_reverts_unauthorized_setBorrowCap() (gas: 35517)
[PASS] test_setBorrowCap() (gas: 78860)
[PASS] test_setBorrowCap_them_setBorrowCap_zero() (gas: 319845)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 41.11ms (5.88ms CPU time)

Ran 13 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.eMode.sol:PoolConfiguratorEModeConfigTests
[PASS] test_addAnotherAssetBorrowableInEMode() (gas: 290190)
[PASS] test_addAnotherAssetCollateralInEMode() (gas: 270331)
[PASS] test_configureEmodeCategory() (gas: 118599)
[PASS] test_removeBorrowableFromEmode() (gas: 198772)
[PASS] test_removeCollateralFromEmode() (gas: 247032)
[PASS] test_reverts_setEmodeCategory_lb_lte_percentageFactor() (gas: 59662)
[PASS] test_reverts_setEmodeCategory_liquidation_threshold_doesnt_match_bonus() (gas: 35793)
[PASS] test_reverts_setEmodeCategory_ltv_gt_liqThreshold() (gas: 34377)
[PASS] test_reverts_setEmodeCategory_zero_liqThreshold() (gas: 34249)
[PASS] test_reverts_setEmodeCategory_zero_ltv() (gas: 34162)
[PASS] test_setAssetBorrowableInEMode() (gas: 218684)
[PASS] test_setAssetCollateralInEMode() (gas: 198794)
[PASS] test_updateEModeCategory() (gas: 207378)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 43.29ms (7.80ms CPU time)

Ran 5 tests for tests/rewards/StakedTokenTransferStrategy.t.sol:StakedTokenTransferStrategyTest
[PASS] test_dropApproval() (gas: 18982)
[PASS] test_emergencyTransfer() (gas: 218794)
[PASS] test_getters() (gas: 18731)
[PASS] test_performTransfer() (gas: 22031)
[PASS] test_renewApproval() (gas: 23102)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 32.74ms (1.15ms CPU time)

Ran 3 tests for tests/extensions/stata-token/StataTokenV2Getters.sol:StataTokenV2GettersTest
[PASS] testAdmin() (gas: 22505)
[PASS] test_getters() (gas: 105489)
[PASS] test_initializeShouldRevert() (gas: 24012)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 33.94ms (448.15µs CPU time)

Ran 11 tests for tests/extensions/stata-token/StataTokenV2Pausable.t.sol:StataTokenV2PausableTest
[PASS] testAdmin() (gas: 22549)
[PASS] test_canPause() (gas: 29245)
[PASS] test_canPause_shouldReturnFalse(address) (runs: 1000, μ: 29741, ~: 29741)
[PASS] test_claimingRewards_shouldRevert() (gas: 557300)
[PASS] test_deposit_shouldRevert() (gas: 485323)
[PASS] test_mint_shouldRevert() (gas: 489653)
[PASS] test_redeem_shouldRevert() (gas: 577569)
[PASS] test_setPaused_shouldRevertForInvalidCaller(address) (runs: 1000, μ: 32802, ~: 32802)
[PASS] test_setPaused_shouldSucceedForOwner() (gas: 57013)
[PASS] test_transfer_shouldRevert() (gas: 555209)
[PASS] test_withdraw_shouldRevert() (gas: 572792)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 215.74ms (182.45ms CPU time)

Ran 4 tests for tests/extensions/stata-token/StataTokenV2Permit.sol:StataTokenV2PermitTest
[PASS] testAdmin() (gas: 22494)
[PASS] test_permit() (gas: 92824)
[PASS] test_permit_expired() (gas: 40599)
[PASS] test_permit_invalidSigner() (gas: 69099)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 36.07ms (1.93ms CPU time)

Ran 13 tests for tests/misc/rates/RateStrategy.calculateRates.t.sol:RateStrategyCalculateRatesTests
[PASS] test_calculate_rates_100_percent_usage() (gas: 44982)
[PASS] test_calculate_rates_80_bps_usage() (gas: 45101)
[PASS] test_calculate_rates_80_percent_usage() (gas: 87752)
[PASS] test_calculate_rates_80_percent_usage_and_50_percent_supply_usage_due_minted_tokens() (gas: 43307)
[PASS] test_calculate_rates_80_percent_usage_and_80_bps_supply_usage_due_minted_tokens() (gas: 43329)
[PASS] test_calculate_rates_above_op_usage((uint16,uint32,uint32,uint32),uint256,uint256,uint256) (runs: 1000, μ: 121645, ~: 121713)
[PASS] test_calculate_rates_below_op_usage((uint16,uint32,uint32,uint32),uint256,uint256,uint256) (runs: 1000, μ: 114173, ~: 114293)
[PASS] test_calculate_rates_below_op_usage_when_no_debt((uint16,uint32,uint32,uint32),uint256,uint256) (runs: 1000, μ: 71390, ~: 71769)
[PASS] test_calculate_rates_empty_reserve((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 39838, ~: 39838)
[PASS] test_calculate_rates_when_not_using_virtual_valance((uint16,uint32,uint32,uint32),uint256,uint256) (runs: 1000, μ: 63842, ~: 64818)
[PASS] test_calculate_rates_when_total_debt_0((uint16,uint32,uint32,uint32),uint256,uint256) (runs: 1000, μ: 64361, ~: 65038)
[PASS] test_fuzz_calculate_rates_80_percent_usage_added_and_virtual_equal(uint256) (runs: 1000, μ: 29922, ~: 29922)
[PASS] test_zero_rates_strategy_calculate_rates() (gas: 19289)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 14.06s (14.03s CPU time)

Ran 5 tests for tests/extensions/stata-token/StataTokenV2Rescuable.sol:StataTokenV2RescuableTest
[PASS] testAdmin() (gas: 22494)
[PASS] test_rescuable_shouldNotCauseInsolvency(uint256,uint256) (runs: 1000, μ: 785431, ~: 785436)
[PASS] test_rescuable_shouldRevertForInvalidCaller() (gas: 199028)
[PASS] test_rescuable_shouldTransferAssetsToCollector() (gas: 226775)
[PASS] test_rescuable_shouldWorkForAToken() (gas: 453656)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 3.09s (3.06s CPU time)

Ran 7 tests for tests/misc/rates/RateStrategy.setters.t.sol:RateStrategySettersTests
[PASS] test_new_SetReserveInterestRateParams((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 48199, ~: 48199)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 21930, ~: 21930)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 25547, ~: 25547)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_max_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 22536, ~: 22536)
[PASS] test_reverts_SetReserveInterestRateParams_when_lt_min_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 22584, ~: 22584)
[PASS] test_reverts_SetReserveInterestRateParams_when_reserve_0((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 22855, ~: 22855)
[PASS] test_reverts_SetReserveInterestRateParams_when_slope1_gt_slope2((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 23886, ~: 23886)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 3.64s (3.59s CPU time)

Ran 7 tests for tests/misc/rates/RateStrategy.setters.t.sol:RateStrategySettersTestsOverride
[PASS] test_new_SetReserveInterestRateParams((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 47597, ~: 47597)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 21313, ~: 21313)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 24938, ~: 24938)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_max_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 21927, ~: 21927)
[PASS] test_reverts_SetReserveInterestRateParams_when_lt_min_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 21975, ~: 21975)
[PASS] test_reverts_SetReserveInterestRateParams_when_reserve_0((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 22246, ~: 22246)
[PASS] test_reverts_SetReserveInterestRateParams_when_slope1_gt_slope2((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 23277, ~: 23277)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 3.38s (3.34s CPU time)

Ran 18 tests for tests/protocol/tokenization/VariableDebtToken.t.sol:VariableDebtTokenEventsTests
[PASS] test_balanceOf() (gas: 241853)
[PASS] test_cancel_delegationWithSig() (gas: 101800)
[PASS] test_delegationWithSig() (gas: 95276)
[PASS] test_initialize_VariableDebtToken((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2738550, ~: 2738837)
[PASS] test_mint_variableDebt_caller_alice((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2810914, ~: 2811004)
[PASS] test_mint_variableDebt_caller_bob_onBehalf_alice((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2826173, ~: 2825216)
[PASS] test_new_VariableDebtToken_implementation() (gas: 1572976)
[PASS] test_partial_burn_variableDebt((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2826999, ~: 2825332)
[PASS] test_reverts_bad_expiration_delegationWithSig() (gas: 34223)
[PASS] test_reverts_bad_nonce_delegationWithSig() (gas: 111067)
[PASS] test_reverts_initialize_pool_do_not_match((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2626062, ~: 2626202)
[PASS] test_reverts_initialize_twice((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 3675898, ~: 3676400)
[PASS] test_reverts_operation_not_supported() (gas: 1591579)
[PASS] test_reverts_zero_address_delegationWithSig() (gas: 33532)
[PASS] test_scaledBalanceOf() (gas: 321292)
[PASS] test_totalScaledSupply() (gas: 360001)
[PASS] test_totalSupply() (gas: 359930)
[PASS] test_total_burn_variableDebt((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2825666, ~: 2825240)
Suite result: ok. 18 passed; 0 failed; 0 skipped; finished in 6.42s (6.38s CPU time)

Ran 12 tests for tests/protocol/libraries/math/WadRayMath.t.sol:WadRayMathTests
[PASS] test_constants() (gas: 13279)
[PASS] test_rayDiv() (gas: 12752)
[PASS] test_rayMul() (gas: 11375)
[PASS] test_rayToWad() (gas: 11057)
[PASS] test_rayToWad_fuzz(uint256) (runs: 1000, μ: 13328, ~: 13278)
[PASS] test_wadDiv() (gas: 12873)
[PASS] test_wadDiv_fuzzing(uint256,uint256) (runs: 1000, μ: 10508, ~: 10723)
[PASS] test_wadMul() (gas: 11145)
[PASS] test_wadMul_edge() (gas: 11187)
[PASS] test_wadMul_fuzzing(uint256,uint256) (runs: 1000, μ: 10770, ~: 11341)
[PASS] test_wadToRay() (gas: 10867)
[PASS] test_wadToRay_fuzz(uint256) (runs: 1000, μ: 12126, ~: 12349)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 241.87ms (237.60ms CPU time)

Ran 14 tests for tests/helpers/WrappedTokenGateway.t.sol:WrappedTokenGatewayTests
[PASS] test_borrowDelegateApprove_repay() (gas: 478193)
[PASS] test_borrowVariableDebtWeth_repayWithEth() (gas: 814411)
[PASS] test_borrowVariableDebtWeth_repayWithEth_mismatchedValues() (gas: 810962)
[PASS] test_depositNativeEthInPool() (gas: 255609)
[PASS] test_fallback_revert() (gas: 10039)
[PASS] test_getWETHAddress() (gas: 10547)
[PASS] test_ownerCanRescueEth() (gas: 25250)
[PASS] test_ownerCanRescueTokens() (gas: 96925)
[PASS] test_sendEthFallback_revert() (gas: 16705)
[PASS] test_sendEth_revert() (gas: 16582)
[PASS] test_withdrawEth_full() (gas: 391279)
[PASS] test_withdrawEth_partial() (gas: 412854)
[PASS] test_withdrawEth_permit() (gas: 447226)
[PASS] test_withdrawEth_permit_full() (gas: 421927)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 46.11ms (11.95ms CPU time)

Ran 11 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.supplyCaps.t.sol:PoolConfiguratorSupplyCapTests
[PASS] test_default_supplyCap_zero() (gas: 27525)
[PASS] test_multiple_setSupplyCap() (gas: 371747)
[PASS] test_reverts_interests_gt_cap_and_supply() (gas: 477646)
[PASS] test_reverts_setSupplyCap_gt_max_cap() (gas: 48667)
[PASS] test_reverts_supply_gt_cap() (gas: 124848)
[PASS] test_reverts_unauthorized_setSupplyCap() (gas: 35454)
[PASS] test_setSupplyCap() (gas: 78895)
[PASS] test_setSupplyCap_them_setBorrowCap_zero() (gas: 319107)
[PASS] test_supply_eq_cap() (gas: 300294)
[PASS] test_supply_interests_reach_cap() (gas: 438973)
[PASS] test_supply_lt_cap() (gas: 300295)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 41.56ms (5.27ms CPU time)

Ran 6 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.upgradeabilty.t.sol:PoolConfiguratorUpgradeabilityTests
[PASS] test_getConfiguratorLogic() (gas: 13610)
[PASS] test_interestRateStrategy_update() (gas: 1837548)
[PASS] test_setReserveInterestRateData() (gas: 156713)
[PASS] test_setReserveInterestRateStrategyAddress() (gas: 1015246)
[PASS] test_updateAToken() (gas: 2312009)
[PASS] test_updateVariableDebtToken() (gas: 1709196)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 41.59ms (4.99ms CPU time)

Ran 3 tests for tests/protocol/libraries/logic/PoolLogic.initReserves.edge.t.sol:PoolLogicInitReservesTests
[PASS] test_initReserves_return_false_after_dropped_reserve() (gas: 680432)
[PASS] test_reverts_initReserves_max() (gas: 196981)
[PASS] test_reverts_initReserves_reserveAlreadyAdded() (gas: 220386)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 42.47ms (761.91µs CPU time)

Ran 11 tests for tests/misc/PriceOracleSentinel.t.sol:PriceOracleSentinelTest
[PASS] test_isBorrowAllowed_network_down() (gas: 27223)
[PASS] test_isBorrowAllowed_network_up_not_grace_period() (gas: 46925)
[PASS] test_isBorrowAllowed_true_network_up_grace_period_pass() (gas: 46979)
[PASS] test_isLiquidationAllowed_network_down() (gas: 27134)
[PASS] test_isLiquidationAllowed_network_up_not_grace_period() (gas: 46902)
[PASS] test_isLiquidationAllowed_true_network_up_grace_period_pass() (gas: 47000)
[PASS] test_new_PriceOracleSentinel() (gas: 423531)
[PASS] test_reverts_setGracePeriod_not_poolAdmin() (gas: 25829)
[PASS] test_reverts_setSequencerOracle_not_poolAdmin() (gas: 22737)
[PASS] test_setGracePeriod() (gas: 32496)
[PASS] test_setSequencerOracle() (gas: 24631)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 44.57ms (1.09ms CPU time)

Ran 3 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.pendingLTV.t.sol:PoolConfiguratorPendingLtvTests
[PASS] test_freezeReserve_ltvSetTo0() (gas: 107849)
[PASS] test_setLtv_ltvSetPendingLtvSet(uint256,uint256) (runs: 1000, μ: 143962, ~: 143962)
[PASS] test_unfreezeReserve_pendingSetToLtv() (gas: 109245)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.05s (1.01s CPU time)

Ran 17 tests for tests/extensions/v3-config-engine/AaveV3ConfigEngineTest.t.sol:AaveV3ConfigEngineTest
[PASS] testAssetEModeUpdates() (gas: 3734271)
[PASS] testBorrowUpdatesNoChange() (gas: 2739264)
[PASS] testBorrowsUpdates() (gas: 2802276)
[PASS] testCapsUpdate() (gas: 2743935)
[PASS] testCollateralUpdateCorrectBonus() (gas: 2759550)
[PASS] testCollateralUpdateWrongBonus() (gas: 755115)
[PASS] testCollateralsUpdates() (gas: 2759070)
[PASS] testCollateralsUpdatesNoChange() (gas: 2737405)
[PASS] testEModeCategoryUpdates() (gas: 2827721)
[PASS] testEModeCategoryUpdatesNoChange() (gas: 2730744)
[PASS] testEModeCategoryUpdatesWrongBonus() (gas: 743235)
[PASS] testFailCollateralsUpdatesNoChange() (gas: 1726267)
[PASS] testFailEModeCategoryUpdatesNoChange() (gas: 760192)
[PASS] testListings() (gas: 5930946)
[PASS] testListingsCustom() (gas: 9653571)
[PASS] testPriceFeedsUpdates() (gas: 2819633)
[PASS] testRateStrategiesUpdates() (gas: 2809438)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 24.41s (24.31s CPU time)

Ran 2 tests for tests/deployments/AaveV3PermissionsTest.t.sol:AaveV3PermissionsTest
[PASS] testCheckPermissions() (gas: 53631840)
[PASS] testCheckPermissionsTreasuryPartner() (gas: 54121201)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 46.83ms (41.79ms CPU time)

Ran 7 tests for tests/protocol/configuration/AddressesProviderRegistry.t.sol:PoolAddressesProviderRegistryTest
[PASS] testAddAddressesProvider() (gas: 120613)
[PASS] testRemoveAddressesProvider() (gas: 97154)
[PASS] testRemoveMultipleAddressesProvider() (gas: 242924)
[PASS] test_addressesProviderAddedToRegistry() (gas: 16393)
[PASS] test_removesLastProvider() (gas: 32653)
[PASS] test_revert_registry_0() (gas: 15558)
[PASS] test_revert_removeNonExistingAddressesProvider() (gas: 27603)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 37.24ms (1.78ms CPU time)

Ran 1 test for tests/template/BaseTest.t.sol:BaseTest
[PASS] test_default() (gas: 254579)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 35.27ms (469.48µs CPU time)

Ran 12 tests for tests/protocol/libraries/logic/BridgeLogic.t.sol:BridgeLogicTests
[PASS] test_backUnbacked_but_unbacked_is_zero_with_fee() (gas: 194249)
[PASS] test_backUnbacked_but_unbacked_is_zero_with_only_fee() (gas: 194307)
[PASS] test_backUnbacked_but_unbacked_is_zero_without_fee() (gas: 159653)
[PASS] test_backUnbacked_onlyFee() (gas: 363669)
[PASS] test_backUnbacked_withFee() (gas: 363849)
[PASS] test_backUnbacked_withoutFee() (gas: 341147)
[PASS] test_multiple_backUnbacked() (gas: 644666)
[PASS] test_multiple_unbackedMint_with_cap() (gas: 488647)
[PASS] test_revert_multiple_unbackedMint_with_cap() (gas: 428456)
[PASS] test_revert_unathorized_unbackedMint() (gas: 30598)
[PASS] test_revert_unbackedMint_zero_cap() (gas: 86177)
[PASS] test_unbackedMint_with_cap() (gas: 271296)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 50.88ms (14.77ms CPU time)

Ran 14 tests for tests/deployments/DeploymentsGasLimits.t.sol:DeploymentsGasLimits
[PASS] test0AaveV3SetupDeployment() (gas: 4574068)
[PASS] test10ConfigEngineDeployment() (gas: 6715374)
[PASS] test11StaticATokenDeployment() (gas: 6987908)
[PASS] test12PeripheralsTreasuryPartner() (gas: 7384894)
[PASS] test1AaveV3GettersBatch1Deployment() (gas: 6551699)
[PASS] test2AaveV3GettersBatch2Deployment() (gas: 2130240)
[PASS] test3AaveV3PoolDeployment() (gas: 8646521)
[PASS] test4AaveV3L2PoolDeployment() (gas: 8897295)
[PASS] test5PeripheralsRelease() (gas: 6898268)
[PASS] test6MiscDeployment() (gas: 1360185)
[PASS] test7ParaswapDeployment() (gas: 5544933)
[PASS] test8SetupMarket() (gas: 2717288)
[PASS] test9TokensMarket() (gas: 3901228)
[PASS] testCheckInitCodeSizeBatchs() (gas: 1050238)
Logs:
  AaveV3SetupBatch 25007
  AaveV3L2PoolBatch 43953
  AaveV3PoolBatch 42706
  AaveV3PeripheryBatch 40108
  AaveV3MiscBatch 6830
  AaveV3ParaswapBatch 30420
  AaveV3GettersBatchOne 32561
  AaveV3GettersBatchTwo 11156
  AaveV3TokensBatch 20321
  AaveV3HelpersBatchOne 34075
  AaveV3HelpersBatchTwo 32983
  AaveV3PeripheryBatchTreasuryPartner 40108

Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 21.49ms (9.57ms CPU time)

Ran 15 tests for tests/misc/rates/RateStrategy.t.sol:RateStrategyBaseTests
[PASS] test_getInterestRateDataBps((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 36071, ~: 36071)
[PASS] test_getInterestRateDataRay((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 36997, ~: 36997)
[PASS] test_getMaxVariableBorrowRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 34506, ~: 34506)
[PASS] test_initialization() (gas: 27078)
[PASS] test_new_DefaultReserveInterestRateStrategy_wrong_provider() (gas: 42406)
[PASS] test_new_SetReserveInterestRateParams((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 48170, ~: 48170)
[PASS] test_new_SetReserveInterestRateParams_override_method((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 45375, ~: 45375)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 21956, ~: 21956)
[PASS] test_overflow_liquidity_rates() (gas: 59538)
[PASS] test_overflow_variable_rates() (gas: 545863)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 34978, ~: 34978)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_max_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 31521, ~: 31521)
[PASS] test_reverts_SetReserveInterestRateParams_when_lt_min_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 31597, ~: 31597)
[PASS] test_reverts_SetReserveInterestRateParams_when_reserve_0((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 27959, ~: 27959)
[PASS] test_reverts_SetReserveInterestRateParams_when_slope1_gt_slope2(uint16,uint32,uint32,uint32) (runs: 1000, μ: 33710, ~: 33710)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 6.35s (6.31s CPU time)

Ran 44 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.reserveRiskConfig.t.sol:PoolConfiguratorReserveRiskConfigs
[PASS] test_EmergencyAdminSetReserveFreeze_true() (gas: 137081)
[PASS] test_PoolAdminSetReserveFreeze_true() (gas: 101346)
[PASS] test_RiskAdminSetReserveFreeze_true() (gas: 130770)
[PASS] test_bridgeProtocolFee() (gas: 72994)
[PASS] test_disableLiquidationGracePeriod() (gas: 80452)
[PASS] test_dropReserve() (gas: 149902)
[PASS] test_enableBorrowing((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2625087, ~: 2625911)
[PASS] test_enableFlashBorrow((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2617025, ~: 2616792)
[PASS] test_reverts_bridgeProtocolFee() (gas: 30151)
[PASS] test_reverts_dropReserve_notListed() (gas: 53404)
[PASS] test_reverts_dropReserve_supplyNotZero() (gas: 300324)
[PASS] test_reverts_dropReserve_variableDebtNotZero() (gas: 459401)
[PASS] test_reverts_dropReserve_zeroAddress() (gas: 47308)
[PASS] test_reverts_setCollateralConfig_invalidParams((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2866793, ~: 2867791)
[PASS] test_reverts_setDebtCeiling_suppliers() (gas: 296578)
[PASS] test_reverts_setLiquidationProtocolFee_amount_gt_percentageFactor() (gas: 35632)
[PASS] test_reverts_setReserveActive_false_if_suppliers() (gas: 291447)
[PASS] test_reverts_setReserveFactor_gt_percentageFactor() (gas: 35651)
[PASS] test_reverts_setSiloedBorrowing_borrowers() (gas: 417360)
[PASS] test_reverts_updateFlashloanPremiumToProtocol() (gas: 30267)
[PASS] test_reverts_updateFlashloanPremiumTotal() (gas: 30287)
[PASS] test_setBorrowableInIsolation_false() (gas: 65034)
[PASS] test_setBorrowableInIsolation_true() (gas: 67851)
[PASS] test_setCollateralConfig((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2605911, ~: 2603604)
[PASS] test_setDebtCeiling() (gas: 124864)
[PASS] test_setDebtCeiling_suppliers_ltZero() (gas: 299836)
[PASS] test_setDebtCeiling_to_zero() (gas: 149723)
[PASS] test_setFrozenReserveFreeze_true_revert() (gas: 108173)
[PASS] test_setLiquidationGracePeriodAboveCap(uint40) (runs: 1000, μ: 34809, ~: 34809)
[PASS] test_setLiquidationGracePeriodPool(uint40) (runs: 1000, μ: 136690, ~: 139785)
[PASS] test_setLiquidationGracePeriodReserve(uint40) (runs: 1000, μ: 138260, ~: 138591)
[PASS] test_setLiquidationProtocolFee_amount_gt_percentageFactor() (gas: 74859)
[PASS] test_setPoolPause() (gas: 139170)
[PASS] test_setPoolPause_unpause() (gas: 197367)
[PASS] test_setReserveActive_false() (gas: 122131)
[PASS] test_setReserveActive_true() (gas: 69283)
[PASS] test_setReserveFactor() (gas: 976606)
[PASS] test_setReserveFreeze_false() (gas: 100868)
[PASS] test_setReservePause_false() (gas: 68656)
[PASS] test_setReservePause_true() (gas: 71411)
[PASS] test_setSiloedBorrowing() (gas: 120382)
[PASS] test_setUnfrozenReserveFreeze_false_revert() (gas: 48826)
[PASS] test_updateFlashloanPremiumToProtocol() (gas: 58261)
[PASS] test_updateFlashloanPremiumTotal() (gas: 58175)
Suite result: ok. 44 passed; 0 failed; 0 skipped; finished in 7.59s (7.56s CPU time)

Ran 19 tests for tests/rewards/RewardsController.t.sol:RewardsControllerTest
[PASS] test_accrueRewards() (gas: 931612)
[PASS] test_claimAllRewards() (gas: 887351)
[PASS] test_claimAllRewardsOnBehalf() (gas: 921056)
[PASS] test_claimAllRewardsToSelf() (gas: 886978)
[PASS] test_claimRewards() (gas: 884127)
[PASS] test_claimRewardsOnBehalf() (gas: 922646)
[PASS] test_claimRewardsToSelf() (gas: 883809)
[PASS] test_claimRewards_partial() (gas: 884397)
[PASS] test_claimRewards_zero() (gas: 636639)
[PASS] test_claimRewards_zero_with_rewards() (gas: 643452)
[PASS] test_configureAssets() (gas: 617691)
[PASS] test_initialize_no_op() (gas: 3668534)
[PASS] test_new_RewardsController() (gas: 3644884)
[PASS] test_reverts_initialize_twice() (gas: 3670113)
[PASS] test_setClaimer() (gas: 58252)
[PASS] test_setDistributionEnd() (gas: 633550)
[PASS] test_setEmissionPerSecond() (gas: 637684)
[PASS] test_setRewardOracle() (gas: 711308)
[PASS] test_setTransferStrategy_PullRewardsTransferStrategy() (gas: 913786)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 49.12ms (13.42ms CPU time)

Ran 1 test for tests/protocol/tokenization/ScaledBalanceTokenBase.t.sol:ScaledBalanceTokenBaseEdgeTests
[PASS] test_scaled_balance_token_base_alice_transfer_to_bob_accrues_interests() (gas: 98768)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 32.02ms (227.14µs CPU time)

Ran 4 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.liquidationFee.t.sol:PoolConfiguratorLiquidationFeeTests
[PASS] test_revert_setLiquidationFee_gt_100() (gas: 59237)
[PASS] test_revert_setLiquidationFee_unauthorized() (gas: 59105)
[PASS] test_setLiquidationFee() (gas: 78707)
[PASS] test_setLiquidationFee_100() (gas: 78663)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 36.02ms (873.18µs CPU time)

Ran 15 tests for tests/extensions/RevenueSplitter.t.sol:RevenueSplitterTest
[PASS] test_constructor() (gas: 15312)
[PASS] test_constructor_fuzzing(uint16) (runs: 1000, μ: 455456, ~: 455456)
[PASS] test_constructor_revert_invalid_split_percentage() (gas: 174521)
[PASS] test_splitFund_oneToken() (gas: 424986)
[PASS] test_splitFund_reverts_randomAddress() (gas: 51331)
[PASS] test_splitFund_zeroAmount_noOp() (gas: 385859)
[PASS] test_splitFund_zeroFunds_noOp() (gas: 50896)
[PASS] test_splitFund_zeroTokens_noOp() (gas: 384777)
[PASS] test_splitFunds_fixed() (gas: 461939)
[PASS] test_splitFunds_fuzz_max(uint256,uint256) (runs: 1000, μ: 462550, ~: 464116)
[PASS] test_splitFunds_fuzz_realistic(uint256,uint256) (runs: 1000, μ: 460979, ~: 462581)
[PASS] test_splitNativeFund_fixedAmount() (gas: 100469)
[PASS] test_splitNativeFund_walletNotAcceptingFunds() (gas: 535352)
[PASS] test_splitNativeFund_zeroAmount_noOp() (gas: 29713)
[PASS] test_splitNativeFunds_fuzz_max(uint256) (runs: 1000, μ: 100594, ~: 101887)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 4.14s (4.14s CPU time)

Ran 5 tests for tests/protocol/libraries/math/MathUtils.t.sol:MathUtilsTests
[PASS] test_calculateCompoundInterest_1() (gas: 10340)
[PASS] test_calculateCompoundInterest_2() (gas: 10337)
[PASS] test_calculateCompoundInterest_edge() (gas: 9166)
[PASS] test_calculateLinearInterest() (gas: 9211)
[PASS] test_constants() (gas: 8334)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 1.31ms (199.16µs CPU time)

Ran 17 tests for tests/extensions/paraswap-adapters/ParaswapAdapters.t.sol:ParaswapAdaptersTest
[PASS] test_rescueTokens() (gas: 203409)
[PASS] test_reverts_offset_out_of_range_swap_liquidity_permit_flashloan() (gas: 758300)
[PASS] test_reverts_swapAndDeposit_offset() (gas: 826967)
[PASS] test_reverts_swapAndRepay_offset_out_of_range() (gas: 930429)
[PASS] test_reverts_withdrawAndSwap_offset_out_of_range() (gas: 806970)
[PASS] test_swapAndDeposit() (gas: 908883)
[PASS] test_swapAndDeposit_permit() (gas: 955948)
[PASS] test_swapAndRepay() (gas: 1010691)
[PASS] test_swapAndRepay_flashloan() (gas: 1102073)
[PASS] test_swapAndRepay_flashloan_permit() (gas: 1144740)
[PASS] test_swapAndRepay_no_collateral_leftovers() (gas: 1060252)
[PASS] test_swapAndRepay_permit() (gas: 1057604)
[PASS] test_swap_liquidity_flashloan() (gas: 1019795)
[PASS] test_swap_liquidity_permit_flashloan() (gas: 1062355)
[PASS] test_withdrawAndSwap() (gas: 825895)
[PASS] test_withdrawAndSwap_permit() (gas: 869032)
[PASS] test_withdrawSwapAdapter_reverts_flashloan() (gas: 533093)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 76.57ms (40.45ms CPU time)

Ran 5 tests for tests/protocol/libraries/math/PercentageMath.t.sol:PercentageMathTests
[PASS] test_constants() (gas: 10165)
[PASS] test_percentDiv() (gas: 11147)
[PASS] test_percentDiv_fuzz(uint256,uint256) (runs: 1000, μ: 10569, ~: 10678)
[PASS] test_percentMul() (gas: 11154)
[PASS] test_percentMul_fuzz(uint256,uint256) (runs: 1000, μ: 10628, ~: 11209)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 95.33ms (94.22ms CPU time)

Ran 18 tests for tests/protocol/pool/Pool.Borrow.t.sol:PoolBorrowTests
[PASS] test_borrow_variable_in_isolation() (gas: 570637)
[PASS] test_reverts_borrow_cap() (gas: 303661)
[PASS] test_reverts_borrow_collateral_balance_zero() (gas: 81579)
[PASS] test_reverts_borrow_collateral_can_not_cover() (gas: 315078)
[PASS] test_reverts_borrow_debt_ceiling() (gas: 658617)
[PASS] test_reverts_borrow_debt_ceiling_exceeded() (gas: 401639)
[PASS] test_reverts_borrow_hf_lt_1() (gas: 562764)
[PASS] test_reverts_borrow_inconsistent_emode_category() (gas: 432100)
[PASS] test_reverts_borrow_invalidAmount() (gas: 65058)
[PASS] test_reverts_borrow_not_borrowable_isolation() (gas: 383739)
[PASS] test_reverts_borrow_reserveFrozen() (gas: 132958)
[PASS] test_reverts_borrow_reserveInactive() (gas: 150130)
[PASS] test_reverts_borrow_reservePaused() (gas: 103659)
[PASS] test_reverts_borrow_sentinel_oracle_down() (gas: 315809)
[PASS] test_reverts_borrow_sioled_borrowing_violation() (gas: 718093)
[PASS] test_reverts_deprecated_stable_borrow() (gas: 406925)
[PASS] test_reverts_variable_borrow_transferred_funds() (gas: 381356)
[PASS] test_variable_borrow() (gas: 349462)
Suite result: ok. 18 passed; 0 failed; 0 skipped; finished in 50.82ms (15.27ms CPU time)

Ran 11 tests for tests/protocol/pool/Pool.EMode.sol:PoolEModeTests
[PASS] test_borrowing_shouldRevert_ifNonBorrowableOutsideEmode(uint256) (runs: 1000, μ: 524451, ~: 524544)
[PASS] test_getUserAccountData_shouldReflectEmodeParams() (gas: 463155)
[PASS] test_getUserAccountData_shouldReflectMixedCollateral() (gas: 655919)
[PASS] test_getUserEMode_shouldReflectEMode() (gas: 200782)
[PASS] test_liquidations_shouldApplyEModeLBForEmodeAssets(uint256) (runs: 1000, μ: 1102511, ~: 1102598)
[PASS] test_reenterSameEmode_shouldSucceed() (gas: 210055)
[PASS] test_setUserEMode_shouldAllowSwitchingIfNoBorrows(uint8) (runs: 1000, μ: 296319, ~: 299949)
[PASS] test_setUserEMode_shouldRevertForNonExistingEmode() (gas: 35013)
[PASS] test_setUserEmode_shouldAllowSwitchingWhenAssetIsBorrowableInEmode(uint104) (runs: 1000, μ: 1016691, ~: 1016892)
[PASS] test_setUserEmode_shouldRevertIfAssetNoLongerBorrowable(uint104) (runs: 1000, μ: 919661, ~: 919865)
[PASS] test_setUserEmode_shouldRevertIfHfWouldFallBelow1(uint104) (runs: 1000, μ: 975927, ~: 976116)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 12.09s (12.05s CPU time)

Ran 17 tests for tests/protocol/pool/Pool.FlashLoans.t.sol:PoolFlashLoansTests
[PASS] test_flashloan() (gas: 216054)
[PASS] test_flashloan_borrow() (gas: 532124)
[PASS] test_flashloan_multiple() (gas: 329244)
[PASS] test_flashloan_simple() (gas: 180097)
[PASS] test_flashloan_simple_2() (gas: 180097)
[PASS] test_revert_flashloan_borrow_stable() (gas: 212771)
[PASS] test_reverts_flashLoan_invalid_return() (gas: 183626)
[PASS] test_reverts_flashLoan_reserve_inactive() (gas: 156852)
[PASS] test_reverts_flashLoan_reserve_not_flash_loan_enabled() (gas: 105545)
[PASS] test_reverts_flashLoan_reserve_paused() (gas: 102296)
[PASS] test_reverts_flashLoan_same_asset_more_then_once(uint8) (runs: 1000, μ: 170163, ~: 132532)
[PASS] test_reverts_flashLoan_simple_invalid_return() (gas: 144646)
[PASS] test_reverts_flashloan_simple_transferred_funds() (gas: 177995)
[PASS] test_reverts_flashloan_transferred_funds() (gas: 208345)
[PASS] test_reverts_flashloans_eoa() (gas: 113203)
[PASS] test_reverts_supply_flashloan_simple_transfer_withdraw() (gas: 857299)
[PASS] test_reverts_supply_flashloan_transfer_withdraw() (gas: 889860)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 1.28s (1.24s CPU time)

Ran 17 tests for tests/extensions/stata-token/ERC20AaveLMUpgradable.t.sol:ERC20AaveLMUpgradableTest
[PASS] test_7201() (gas: 3358)
[PASS] test_claimRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 851897, ~: 814474)
[PASS] test_claimRewardsOnBehalfOf_self(uint256,uint32,uint88,uint32) (runs: 1000, μ: 849020, ~: 814688)
[PASS] test_claimRewardsOnBehalfOf_shouldRevertForInvalidClaimer(uint256,uint32,uint88,uint32) (runs: 1000, μ: 789142, ~: 790632)
[PASS] test_claimRewardsOnBehalfOf_validClaimer(uint256,uint32,uint88,uint32) (runs: 1000, μ: 884978, ~: 847086)
[PASS] test_claimRewardsToSelf(uint256,uint32,uint88,uint32) (runs: 1000, μ: 852091, ~: 814387)
[PASS] test_claimableRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 789980, ~: 791557)
[PASS] test_collectAndUpdateRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 832751, ~: 811011)
[PASS] test_correctAccountingForDelayedRegistration() (gas: 840155)
[PASS] test_getReferenceAsset() (gas: 12908)
[PASS] test_isRegisteredRewardToken() (gas: 650987)
[PASS] test_noRewardsInitialized() (gas: 39241)
[PASS] test_noopWhenNotInitialized() (gas: 53159)
[PASS] test_rewardTokens() (gas: 649128)
[PASS] test_transfer(uint256,uint32,uint88,uint32,address,uint256) (runs: 1000, μ: 864496, ~: 881340)
[PASS] test_transfer_toSelf(uint256,uint32,uint88,uint32) (runs: 1000, μ: 821625, ~: 815321)
[PASS] test_zeroIncentivesController() (gas: 37827)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 21.37s (21.33s CPU time)

Ran 20 tests for tests/protocol/pool/Pool.Liquidations.t.sol:PoolLiquidationTests
[PASS] test_full_liquidate_atokens_multiple_variable_borrows() (gas: 1343394)
[PASS] test_full_liquidate_multiple_supplies_and_variable_borrows() (gas: 1549169)
[PASS] test_full_liquidate_multiple_variable_borrows() (gas: 1405664)
[PASS] test_liquidate_emode_position_without_emode_oracle() (gas: 1431282)
[PASS] test_liquidate_isolated_position() (gas: 1334576)
[PASS] test_liquidate_variable_borrow() (gas: 1443510)
[PASS] test_liquidate_variable_borrow_no_fee() (gas: 1168376)
[PASS] test_liquidate_variable_borrow_same_collateral_and_borrow() (gas: 1103518)
[PASS] test_liquidation_when_grace_period_disabled(uint40) (runs: 1000, μ: 1272407, ~: 1272407)
[PASS] test_liquidation_with_liquidation_grace_period_collateral_active(uint40) (runs: 1000, μ: 1460931, ~: 1470816)
[PASS] test_liquidation_with_liquidation_grace_period_debt_active(uint40) (runs: 1000, μ: 1459510, ~: 1468711)
[PASS] test_liquidation_with_liquidation_grace_period_debt_collateral_active(uint40) (runs: 1000, μ: 1476357, ~: 1485699)
[PASS] test_partial_liquidate_atokens_variable_borrow() (gas: 1281650)
[PASS] test_partial_liquidate_variable_borrow() (gas: 1229552)
[PASS] test_reverts_liquidation_collateral_not_active() (gas: 624158)
[PASS] test_reverts_liquidation_hf_gt_liquidation_threshold() (gas: 459000)
[PASS] test_reverts_liquidation_invalid_borrow() (gas: 598661)
[PASS] test_reverts_liquidation_oracle_sentinel_on() (gas: 319337)
[PASS] test_reverts_liquidation_reserveInactive() (gas: 160011)
[PASS] test_reverts_liquidation_reservePaused() (gas: 113797)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 20.18s (20.14s CPU time)

Ran 6 tests for tests/misc/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.t.sol:InitializableImmutableAdminUpgradeabilityProxyTests
[PASS] test_proxy_fallback() (gas: 597827)
[PASS] test_proxy_upgradeTo() (gas: 619698)
[PASS] test_proxy_upgradeToAndCall() (gas: 625582)
[PASS] test_proxy_upgradeToAndCall_initialize() (gas: 594923)
[PASS] test_reverts_upgradeToAndCall_notAdmin() (gas: 600810)
[PASS] test_reverts_upgradeTo_notAdmin() (gas: 598616)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 3.26ms (1.86ms CPU time)

Ran 15 tests for tests/protocol/pool/Pool.Repay.t.sol:PoolRepayTests
[PASS] test_full_repay_borrow_variable_in_isolation() (gas: 589852)
[PASS] test_partial_repay_borrow_variable_in_isolation() (gas: 643854)
[PASS] test_repayWithATokens_full_collateral_variable_borrow() (gas: 619703)
[PASS] test_repayWithATokens_full_variable_borrow() (gas: 417378)
[PASS] test_repayWithATokens_fuzz_collateral_variable_borrow(uint256,uint32) (runs: 1000, μ: 606426, ~: 607833)
[PASS] test_repayWithPermit(uint128,uint120,uint120,uint120,uint120) (runs: 1000, μ: 580821, ~: 573379)
[PASS] test_repayWithPermit_not_failing_if_permit_was_used(uint128,uint120,uint120,uint120,uint120) (runs: 1000, μ: 587324, ~: 578889)
[PASS] test_repayWithPermit_should_revert_if_permit_is_less_then_repay_amount(uint128,uint120,uint120,uint120,uint120) (runs: 1000, μ: 535274, ~: 526869)
[PASS] test_repay_full_variable_borrow() (gas: 404515)
[PASS] test_revert_repay_full_stable_borrow() (gas: 353370)
[PASS] test_reverts_borrow_invalidAmount() (gas: 51687)
[PASS] test_reverts_borrow_reserveInactive() (gas: 138883)
[PASS] test_reverts_borrow_reservePaused() (gas: 92515)
[PASS] test_reverts_no_explicit_repay_on_behalf() (gas: 327464)
[PASS] test_reverts_repay_no_debt() (gas: 52259)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 14.27s (14.24s CPU time)

Ran 28 tests for tests/extensions/stata-token/ERC4626StataTokenUpgradeable.t.sol:ERC4626StataTokenUpgradeableTest
[PASS] test_7201() (gas: 3469)
[PASS] test_convertersAndPreviews(uint128) (runs: 1000, μ: 43191, ~: 43191)
[PASS] test_depositATokens(uint128,uint256,address) (runs: 1000, μ: 531222, ~: 531607)
[PASS] test_depositATokens_self() (gas: 531714)
Logs:
  Bound result 1000000000000000000
  Bound result 1000000000000000000

[PASS] test_depositWithPermit_aToken(uint128,uint256,address) (runs: 1000, μ: 565990, ~: 566601)
[PASS] test_depositWithPermit_emptyPermit_aToken_preApproval(uint128,uint256,address) (runs: 1000, μ: 537853, ~: 538404)
[PASS] test_depositWithPermit_emptyPermit_underlying_preApproval(uint128,uint256,address) (runs: 1000, μ: 476766, ~: 476635)
[PASS] test_depositWithPermit_shouldRevert_emptyPermit_noPreApproval(uint128) (runs: 1000, μ: 403914, ~: 403824)
[PASS] test_depositWithPermit_underlying(uint128,uint256,address) (runs: 1000, μ: 498024, ~: 497897)
[PASS] test_deposit_shouldRevert_insufficientAllowance(uint128) (runs: 1000, μ: 394794, ~: 394692)
[PASS] test_latestAnswer_priceShouldBeEqualOnDefaultIndex() (gas: 37222)
[PASS] test_latestAnswer_priceShouldReflectIndexAccrual(uint256) (runs: 1000, μ: 42168, ~: 42190)
[PASS] test_maxDeposit_cap(uint256) (runs: 1000, μ: 114976, ~: 115287)
[PASS] test_maxDeposit_freeze() (gas: 121657)
[PASS] test_maxDeposit_noCap() (gas: 103956)
[PASS] test_maxDeposit_paused() (gas: 94931)
[PASS] test_maxRedeem_inSufficientAvailableLiquidity(uint256) (runs: 1000, μ: 990398, ~: 990523)
[PASS] test_maxRedeem_paused(uint128) (runs: 1000, μ: 556733, ~: 556632)
[PASS] test_maxRedeem_sufficientAvailableLiquidity(uint128) (runs: 1000, μ: 526768, ~: 526664)
[PASS] test_mint(uint256,address) (runs: 1000, μ: 467186, ~: 467021)
[PASS] test_mint_shouldRevert_mintMoreThenBalance(uint256,address) (runs: 1000, μ: 258158, ~: 257984)
[PASS] test_redeem(uint256,address) (runs: 1000, μ: 586493, ~: 586332)
[PASS] test_redeemATokens(uint256,address) (runs: 1000, μ: 593578, ~: 593420)
[PASS] test_redeemATokens_onBehalf(uint256) (runs: 1000, μ: 614090, ~: 613910)
[PASS] test_redeemATokens_onBehalf_shouldRevert_insufficientAllowance(uint256,uint256) (runs: 1000, μ: 545621, ~: 546282)
[PASS] test_totalAssets_shouldbeZeroOnZeroSupply() (gas: 26024)
[PASS] test_withdraw(uint256,address) (runs: 1000, μ: 590279, ~: 590112)
[PASS] test_withdraw_shouldRevert_moreThenAvailable(uint256,address) (runs: 1000, μ: 530942, ~: 530781)
Suite result: ok. 28 passed; 0 failed; 0 skipped; finished in 31.93s (31.90s CPU time)

Ran 9 tests for tests/rewards/EmissionsManager.t.sol:EmissionManagerTest
[PASS] test_configureAssets() (gas: 598376)
[PASS] test_new_EmissionManager() (gas: 758986)
[PASS] test_setClaimer() (gas: 51471)
[PASS] test_setDistributionEnd() (gas: 605645)
[PASS] test_setEmissionAdmin() (gas: 43012)
[PASS] test_setEmissionPerSecond() (gas: 612259)
[PASS] test_setRewardOracle() (gas: 687392)
[PASS] test_setRewardsController() (gas: 19086)
[PASS] test_setTransferStrategy() (gas: 888963)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 37.51ms (2.15ms CPU time)

Ran 47 tests for tests/protocol/pool/L2Pool.t.sol:L2PoolTests
[PASS] test_dropReserve() (gas: 107965)
[PASS] test_getBorrowLogic() (gas: 13620)
[PASS] test_getBridgeLogic() (gas: 13684)
[PASS] test_getEModeLogic() (gas: 13686)
[PASS] test_getFlashLoanLogic() (gas: 13685)
[PASS] test_getLiquidationLogic() (gas: 13707)
[PASS] test_getPoolLogic() (gas: 13684)
[PASS] test_getSupplyLogic() (gas: 13705)
[PASS] test_getVirtualUnderlyingBalance() (gas: 253510)
[PASS] test_getters_getUserAccountData() (gas: 598198)
[PASS] test_l2_borrow() (gas: 436322)
[PASS] test_l2_liquidationCall() (gas: 1120666)
[PASS] test_l2_partial_withdraw() (gas: 310853)
[PASS] test_l2_repay() (gas: 465666)
[PASS] test_l2_repay_atokens() (gas: 472797)
[PASS] test_l2_repay_permit(uint128,uint128,uint128,uint128,uint128) (runs: 1000, μ: 641590, ~: 649136)
[PASS] test_l2_set_user_collateral() (gas: 268482)
[PASS] test_l2_supply() (gas: 253541)
[PASS] test_l2_supply_permit(uint128,uint128) (runs: 1000, μ: 428577, ~: 428577)
[PASS] test_l2_withdraw() (gas: 246075)
[PASS] test_mintToTreasury() (gas: 701740)
[PASS] test_mintToTreasury_skip_invalid_addresses() (gas: 706366)
[PASS] test_noop_setUserUseReserveAsCollateral_true_when_already_is_activated() (gas: 290883)
[PASS] test_pool_defaultValues() (gas: 4489170)
[PASS] test_rescueTokens(uint256) (runs: 1000, μ: 81910, ~: 82191)
[PASS] test_resetIsolationModeTotalDebt() (gas: 734652)
[PASS] test_reverts_initReserve_not_poolConfigurator(address) (runs: 1000, μ: 25537, ~: 25537)
[PASS] test_reverts_modifiers_not_poolConfigurator(address) (runs: 1000, μ: 127785, ~: 127785)
[PASS] test_reverts_new_Pool_invalidAddressesProvider() (gas: 4501351)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_AssetNotListed(address,address) (runs: 1000, μ: 40728, ~: 40728)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_ZeroAssetAddress(address) (runs: 1000, μ: 22733, ~: 22733)
[PASS] test_reverts_setUserEmode_0_bad_hf() (gas: 983168)
[PASS] test_reverts_setUserUseReserveAsCollateral_false_hf_lower_lqt() (gas: 600219)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_ltv_zero() (gas: 298985)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_inactive() (gas: 227975)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_paused() (gas: 293845)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_balance_zero() (gas: 71847)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_isolation_mode() (gas: 789929)
[PASS] test_setLiquidationGracePeriod(uint40) (runs: 1000, μ: 36819, ~: 36903)
[PASS] test_setLiquidationGracePeriod_assetNotListed(uint40) (runs: 1000, μ: 27115, ~: 27115)
[PASS] test_setReserveInterestRateStrategyAddress() (gas: 904358)
[PASS] test_setUserEmode() (gas: 232521)
[PASS] test_setUserEmode_twice() (gas: 377047)
[PASS] test_setUserEmode_twice_inconsistent_category() (gas: 985820)
[PASS] test_setUserUseReserveAsCollateral_false() (gas: 240399)
[PASS] test_setUserUseReserveAsCollateral_true() (gas: 277962)
[PASS] test_updateBridgeProtocolFee() (gas: 187)
Suite result: ok. 47 passed; 0 failed; 0 skipped; finished in 3.94s (6.41s CPU time)

Ran 4 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.initReserves.t.sol:PoolConfiguratorInitReservesTest
[PASS] test_initReserves_notEnoughDecimal((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 1052190, ~: 1052199)
[PASS] test_initReserves_validNumberOfAssets((uint8,string,string,string,string,address,address,address,bool)[128],uint8) (runs: 1000, μ: 88688125, ~: 48405125)
[PASS] test_initReserves_zeroAssets() (gas: 62496)
[PASS] test_reverts_initReserves_maxAssets((uint8,string,string,string,string,address,address,address,bool),uint8) (runs: 1000, μ: 383313173, ~: 349283499)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 132.26s (179.68s CPU time)

Ran 60 test suites in 132.27s (326.26s CPU time): 737 tests passed, 0 failed, 0 skipped (737 total tests)

@github-actions
Copy link
Contributor

🔮 Coverage report
File Line Coverage Function Coverage Branch Coverage
src/contracts/dependencies/gnosis/contracts/GPv2SafeERC20.sol ${\color{red}63.64\%}$
$21 / 33$
23, 24, 78, 79, 80 and 7 more
${\color{green}100\%}$
$4 / 4$
${\color{red}42.86\%}$
$3 / 7$
src/contracts/dependencies/openzeppelin/ReentrancyGuard.sol ${\color{red}80\%}$
$4 / 5$
68
${\color{red}66.67\%}$
$2 / 3$
ReentrancyGuard._initGuard
${\color{red}50\%}$
$1 / 2$
src/contracts/dependencies/openzeppelin/contracts/AccessControl.sol ${\color{orange}95\%}$
$19 / 20$
77
${\color{orange}83.33\%}$
$10 / 12$
AccessControl.supportsInterface, AccessControl.getRoleAdmin
${\color{red}80\%}$
$4 / 5$
src/contracts/dependencies/openzeppelin/contracts/ERC165.sol ${\color{red}0\%}$
$0 / 1$
26
${\color{red}0\%}$
$0 / 1$
ERC165.supportsInterface
${\color{green}100\%}$
$0 / 0$
src/contracts/dependencies/openzeppelin/contracts/ERC20.sol ${\color{red}78.05\%}$
$32 / 41$
183, 184, 205, 213, 272 and 4 more
${\color{orange}83.33\%}$
$15 / 18$
ERC20.increaseAllowance, ERC20.decreaseAllowance, ERC20._burn
${\color{red}41.67\%}$
$5 / 12$
src/contracts/dependencies/openzeppelin/contracts/Ownable.sol ${\color{red}80\%}$
$8 / 10$
56, 57
${\color{red}80\%}$
$4 / 5$
Ownable.renounceOwnership
${\color{red}75\%}$
$3 / 4$
src/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol ${\color{red}46.15\%}$
$6 / 13$
26, 51, 52, 60, 61 and 2 more
${\color{red}50\%}$
$3 / 6$
SafeERC20.safeTransferFrom, SafeERC20.safeIncreaseAllowance, SafeERC20.safeDecreaseAllowance
${\color{red}42.86\%}$
$3 / 7$
src/contracts/dependencies/openzeppelin/contracts/SafeMath.sol ${\color{green}100\%}$
$5 / 5$
${\color{green}100\%}$
$5 / 5$
${\color{red}62.5\%}$
$5 / 8$
src/contracts/dependencies/openzeppelin/upgradeability/AdminUpgradeabilityProxy.sol ${\color{red}0\%}$
$0 / 3$
26, 27, 34
${\color{red}0\%}$
$0 / 2$
AdminUpgradeabilityProxy., AdminUpgradeabilityProxy._willFallback
${\color{red}0\%}$
$0 / 2$
src/contracts/dependencies/openzeppelin/upgradeability/BaseAdminUpgradeabilityProxy.sol ${\color{red}0\%}$
$0 / 17$
36, 39, 47, 54, 63 and 12 more
${\color{red}0\%}$
$0 / 9$
BaseAdminUpgradeabilityProxy.ifAdmin, BaseAdminUpgradeabilityProxy.admin, BaseAdminUpgradeabilityProxy.implementation, BaseAdminUpgradeabilityProxy.changeAdmin, BaseAdminUpgradeabilityProxy.upgradeTo and 4 more
${\color{red}0\%}$
$0 / 8$
src/contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol ${\color{green}100\%}$
$7 / 7$
${\color{green}100\%}$
$3 / 3$
${\color{red}50\%}$
$1 / 2$
src/contracts/dependencies/openzeppelin/upgradeability/Initializable.sol ${\color{red}0\%}$
$0 / 10$
31, 36, 37, 38, 39 and 5 more
${\color{red}0\%}$
$0 / 2$
Initializable.initializer, Initializable.isConstructor
${\color{red}0\%}$
$0 / 4$
src/contracts/dependencies/openzeppelin/upgradeability/InitializableAdminUpgradeabilityProxy.sol ${\color{red}0\%}$
$0 / 5$
26, 27, 28, 29, 36
${\color{red}0\%}$
$0 / 2$
InitializableAdminUpgradeabilityProxy.initialize, InitializableAdminUpgradeabilityProxy._willFallback
${\color{red}0\%}$
$0 / 4$
src/contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol ${\color{green}100\%}$
$6 / 6$
${\color{green}100\%}$
$1 / 1$
${\color{red}57.14\%}$
$4 / 7$
src/contracts/dependencies/openzeppelin/upgradeability/Proxy.sol ${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$4 / 4$
${\color{green}100\%}$
$0 / 0$
src/contracts/dependencies/openzeppelin/upgradeability/UpgradeabilityProxy.sol ${\color{red}0\%}$
$0 / 5$
21, 22, 23, 24, 25
${\color{red}0\%}$
$0 / 1$
UpgradeabilityProxy.
${\color{red}0\%}$
$0 / 5$
src/contracts/dependencies/weth/WETH9.sol ${\color{orange}94.74\%}$
$18 / 19$
48
${\color{orange}83.33\%}$
$5 / 6$
WETH9.totalSupply
${\color{red}57.14\%}$
$4 / 7$
src/contracts/extensions/paraswap-adapters/BaseParaSwapAdapter.sol ${\color{green}100\%}$
$13 / 13$
${\color{green}100\%}$
$7 / 7$
${\color{red}60\%}$
$3 / 5$
src/contracts/extensions/paraswap-adapters/BaseParaSwapBuyAdapter.sol ${\color{orange}89.66\%}$
$26 / 29$
92, 99, 100
${\color{green}100\%}$
$2 / 2$
${\color{red}50\%}$
$8 / 16$
src/contracts/extensions/paraswap-adapters/BaseParaSwapSellAdapter.sol ${\color{orange}88.46\%}$
$23 / 26$
90, 97, 98
${\color{green}100\%}$
$2 / 2$
${\color{red}50\%}$
$8 / 16$
src/contracts/extensions/paraswap-adapters/ParaSwapLiquiditySwapAdapter.sol ${\color{green}100\%}$
$35 / 35$
${\color{green}100\%}$
$4 / 4$
${\color{red}63.64\%}$
$7 / 11$
src/contracts/extensions/paraswap-adapters/ParaSwapRepayAdapter.sol ${\color{lightgreen}95.35\%}$
$41 / 43$
144, 209
${\color{green}100\%}$
$5 / 5$
${\color{red}53.85\%}$
$7 / 13$
src/contracts/extensions/paraswap-adapters/ParaSwapWithdrawSwapAdapter.sol ${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$3 / 3$
${\color{red}66.67\%}$
$2 / 3$
src/contracts/extensions/stata-token/ERC20AaveLMUpgradeable.sol ${\color{orange}93.68\%}$
$89 / 95$
97, 116, 126, 213, 281 and 1 more
${\color{lightgreen}95.45\%}$
$21 / 22$
ERC20AaveLMUpgradeable.getCurrentRewardsIndex
${\color{red}66.67\%}$
$10 / 15$
src/contracts/extensions/stata-token/ERC4626StataTokenUpgradeable.sol ${\color{lightgreen}96.34\%}$
$79 / 82$
110, 146, 221
${\color{green}100\%}$
$21 / 21$
${\color{orange}81.82\%}$
$9 / 11$
src/contracts/extensions/stata-token/StataTokenFactory.sol ${\color{orange}85.71\%}$
$18 / 21$
51, 76, 84
${\color{red}80\%}$
$4 / 5$
StataTokenFactory.getStataTokens
${\color{red}33.33\%}$
$1 / 3$
src/contracts/extensions/stata-token/StataTokenV2.sol ${\color{orange}90.48\%}$
$19 / 21$
59, 109
${\color{orange}81.82\%}$
$9 / 11$
StataTokenV2.whoCanRescue, StataTokenV2.maxRescue
${\color{red}75\%}$
$3 / 4$
src/contracts/extensions/v3-config-engine/AaveV3ConfigEngine.sol ${\color{green}100\%}$
$33 / 33$
${\color{green}100\%}$
$12 / 12$
${\color{red}50\%}$
$4 / 8$
src/contracts/extensions/v3-config-engine/AaveV3Payload.sol ${\color{lightgreen}96.77\%}$
$30 / 31$
120
${\color{red}28.57\%}$
$4 / 14$
AaveV3Payload._bpsToRay, AaveV3Payload.newListings, AaveV3Payload.newListingsCustom, AaveV3Payload.capsUpdates, AaveV3Payload.collateralsUpdates and 5 more
${\color{green}100\%}$
$9 / 9$
src/contracts/extensions/v3-config-engine/libraries/BorrowEngine.sol ${\color{green}100\%}$
$16 / 16$
${\color{green}100\%}$
$2 / 2$
${\color{red}80\%}$
$8 / 10$
src/contracts/extensions/v3-config-engine/libraries/CapsEngine.sol ${\color{green}100\%}$
$7 / 7$
${\color{green}100\%}$
$2 / 2$
${\color{red}75\%}$
$3 / 4$
src/contracts/extensions/v3-config-engine/libraries/CollateralEngine.sol ${\color{red}67.86\%}$
$19 / 28$
39, 42, 48, 50, 51 and 4 more
${\color{green}100\%}$
$2 / 2$
${\color{red}57.14\%}$
$8 / 14$
src/contracts/extensions/v3-config-engine/libraries/EModeEngine.sol ${\color{orange}91.43\%}$
$32 / 35$
78, 82, 87
${\color{green}100\%}$
$4 / 4$
${\color{red}64.29\%}$
$9 / 14$
src/contracts/extensions/v3-config-engine/libraries/ListingEngine.sol ${\color{green}100\%}$
$30 / 30$
${\color{green}100\%}$
$3 / 3$
${\color{red}50\%}$
$2 / 4$
src/contracts/extensions/v3-config-engine/libraries/PriceFeedEngine.sol ${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$2 / 2$
${\color{red}50\%}$
$3 / 6$
src/contracts/extensions/v3-config-engine/libraries/RateEngine.sol ${\color{red}60.71\%}$
$17 / 28$
45, 46, 47, 50, 51 and 6 more
${\color{green}100\%}$
$3 / 3$
${\color{red}14.29\%}$
$1 / 7$
src/contracts/helpers/AaveProtocolDataProvider.sol ${\color{red}72.73\%}$
$40 / 55$
45, 46, 49, 50, 62 and 10 more
${\color{red}80\%}$
$16 / 20$
AaveProtocolDataProvider.getAllATokens, AaveProtocolDataProvider.getUnbackedMintCap, AaveProtocolDataProvider.getReserveData, AaveProtocolDataProvider.getVirtualUnderlyingBalance
${\color{red}0\%}$
$0 / 2$
src/contracts/helpers/L2Encoder.sol ${\color{green}100\%}$
$58 / 58$
${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$0 / 0$
src/contracts/helpers/UiIncentiveDataProviderV3.sol ${\color{red}0\%}$
$0 / 85$
26, 32, 38, 39, 40 and 80 more
${\color{red}0\%}$
$0 / 5$
UiIncentiveDataProviderV3.getFullReservesIncentiveData, UiIncentiveDataProviderV3.getReservesIncentivesData, UiIncentiveDataProviderV3._getReservesIncentivesData, UiIncentiveDataProviderV3.getUserReservesIncentivesData, UiIncentiveDataProviderV3._getUserReservesIncentivesData
${\color{red}0\%}$
$0 / 4$
src/contracts/helpers/UiPoolDataProviderV3.sol ${\color{red}1.79\%}$
$2 / 112$
41, 42, 48, 49, 50 and 105 more
${\color{red}16.67\%}$
$1 / 6$
UiPoolDataProviderV3.getReservesList, UiPoolDataProviderV3.getReservesData, UiPoolDataProviderV3.getEModes, UiPoolDataProviderV3.getUserReservesData, UiPoolDataProviderV3.bytes32ToString
${\color{red}0\%}$
$0 / 5$
src/contracts/helpers/WalletBalanceProvider.sol ${\color{red}0\%}$
$0 / 26$
43, 44, 46, 47, 49 and 21 more
${\color{red}0\%}$
$0 / 3$
WalletBalanceProvider.balanceOf, WalletBalanceProvider.batchBalanceOf, WalletBalanceProvider.getUserWalletBalances
${\color{red}0\%}$
$0 / 4$
src/contracts/helpers/WrappedTokenGatewayV3.sol ${\color{green}100\%}$
$41 / 41$
${\color{green}100\%}$
$11 / 11$
${\color{red}75\%}$
$6 / 8$
src/contracts/instances/ATokenInstance.sol ${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$3 / 3$
${\color{red}50\%}$
$1 / 2$
src/contracts/instances/L2PoolInstance.sol ${\color{green}100\%}$
$0 / 0$
${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$0 / 0$
src/contracts/instances/PoolConfiguratorInstance.sol ${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$0 / 0$
src/contracts/instances/PoolInstance.sol ${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$2 / 2$
src/contracts/instances/VariableDebtTokenInstance.sol ${\color{green}100\%}$
$9 / 9$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$2 / 2$
src/contracts/misc/AaveOracle.sol ${\color{green}100\%}$
$32 / 32$
${\color{green}100\%}$
$11 / 11$
${\color{green}100\%}$
$10 / 10$
src/contracts/misc/DefaultReserveInterestRateStrategyV2.sol ${\color{green}100\%}$
$39 / 39$
${\color{green}100\%}$
$15 / 15$
${\color{green}100\%}$
$17 / 17$
src/contracts/misc/PriceOracleSentinel.sol ${\color{green}100\%}$
$17 / 17$
${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$4 / 4$
src/contracts/misc/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol ${\color{green}100\%}$
$11 / 11$
${\color{green}100\%}$
$7 / 7$
${\color{red}33.33\%}$
$2 / 6$
src/contracts/misc/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol ${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$0 / 0$
src/contracts/misc/aave-upgradeability/VersionedInitializable.sol ${\color{green}100\%}$
$11 / 11$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$4 / 4$
src/contracts/misc/flashloan/base/FlashLoanReceiverBase.sol ${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$0 / 0$
src/contracts/misc/flashloan/base/FlashLoanSimpleReceiverBase.sol ${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$0 / 0$
src/contracts/protocol/configuration/ACLManager.sol ${\color{green}100\%}$
$23 / 23$
${\color{green}100\%}$
$20 / 20$
${\color{green}100\%}$
$2 / 2$
src/contracts/protocol/configuration/PoolAddressesProvider.sol ${\color{green}100\%}$
$58 / 58$
${\color{green}100\%}$
$23 / 23$
${\color{green}100\%}$
$4 / 4$
src/contracts/protocol/configuration/PoolAddressesProviderRegistry.sol ${\color{green}100\%}$
$27 / 27$
${\color{green}100\%}$
$8 / 8$
${\color{red}77.78\%}$
$7 / 9$
src/contracts/protocol/libraries/configuration/EModeConfiguration.sol ${\color{green}100\%}$
$7 / 7$
${\color{green}100\%}$
$2 / 2$
${\color{red}66.67\%}$
$4 / 6$
src/contracts/protocol/libraries/configuration/ReserveConfiguration.sol ${\color{lightgreen}98.11\%}$
$52 / 53$
309
${\color{lightgreen}97.44\%}$
$38 / 39$
ReserveConfiguration.getBorrowingEnabled
${\color{red}60\%}$
$12 / 20$
src/contracts/protocol/libraries/configuration/UserConfiguration.sol ${\color{green}100\%}$
$42 / 42$
${\color{green}100\%}$
$13 / 13$
${\color{red}72.22\%}$
$13 / 18$
src/contracts/protocol/libraries/logic/BorrowLogic.sol ${\color{green}100\%}$
$41 / 41$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$9 / 9$
src/contracts/protocol/libraries/logic/BridgeLogic.sol ${\color{green}100\%}$
$29 / 29$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$4 / 4$
src/contracts/protocol/libraries/logic/CalldataLogic.sol ${\color{green}100\%}$
$62 / 62$
${\color{green}100\%}$
$8 / 8$
${\color{green}100\%}$
$3 / 3$
src/contracts/protocol/libraries/logic/ConfiguratorLogic.sol ${\color{green}100\%}$
$29 / 29$
${\color{green}100\%}$
$5 / 5$
${\color{green}100\%}$
$2 / 2$
src/contracts/protocol/libraries/logic/EModeLogic.sol ${\color{green}100\%}$
$5 / 5$
${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$0 / 0$
src/contracts/protocol/libraries/logic/FlashLoanLogic.sol ${\color{green}100\%}$
$39 / 39$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$8 / 8$
src/contracts/protocol/libraries/logic/GenericLogic.sol ${\color{orange}91.3\%}$
$42 / 46$
92, 94, 131, 222
${\color{green}100\%}$
$4 / 4$
${\color{red}80\%}$
$8 / 10$
src/contracts/protocol/libraries/logic/IsolationModeLogic.sol ${\color{green}100\%}$
$9 / 9$
${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$3 / 3$
src/contracts/protocol/libraries/logic/LiquidationLogic.sol ${\color{lightgreen}98.7\%}$
$76 / 77$
214
${\color{green}100\%}$
$6 / 6$
${\color{orange}92.86\%}$
$13 / 14$
src/contracts/protocol/libraries/logic/PoolLogic.sol ${\color{green}100\%}$
$37 / 37$
${\color{green}100\%}$
$7 / 7$
${\color{red}72.73\%}$
$8 / 11$
src/contracts/protocol/libraries/logic/ReserveLogic.sol ${\color{green}100\%}$
$62 / 62$
${\color{green}100\%}$
$9 / 9$
${\color{green}100\%}$
$14 / 14$
src/contracts/protocol/libraries/logic/SupplyLogic.sol ${\color{green}100\%}$
$62 / 62$
${\color{green}100\%}$
$4 / 4$
${\color{green}100\%}$
$17 / 17$
src/contracts/protocol/libraries/logic/ValidationLogic.sol ${\color{green}100\%}$
$109 / 109$
${\color{green}100\%}$
$15 / 15$
${\color{lightgreen}95.38\%}$
$124 / 130$
src/contracts/protocol/libraries/math/PercentageMath.sol ${\color{red}66.67\%}$
$4 / 6$
34, 55
${\color{green}100\%}$
$2 / 2$
${\color{red}0\%}$
$0 / 2$
src/contracts/protocol/libraries/math/WadRayMath.sol ${\color{red}68.42\%}$
$13 / 19$
33, 51, 69, 87, 105 and 1 more
${\color{green}100\%}$
$6 / 6$
${\color{red}0\%}$
$0 / 6$
src/contracts/protocol/pool/L2Pool.sol ${\color{green}100\%}$
$20 / 20$
${\color{green}100\%}$
$9 / 9$
${\color{green}100\%}$
$0 / 0$
src/contracts/protocol/pool/Pool.sol ${\color{lightgreen}98.37\%}$
$121 / 123$
174, 283
${\color{green}100\%}$
$67 / 67$
${\color{red}74.07\%}$
$20 / 27$
src/contracts/protocol/pool/PoolConfigurator.sol ${\color{green}100\%}$
$190 / 190$
${\color{green}100\%}$
$45 / 45$
${\color{lightgreen}95.24\%}$
$60 / 63$
src/contracts/protocol/tokenization/AToken.sol ${\color{green}100\%}$
$37 / 37$
${\color{green}100\%}$
$18 / 18$
${\color{green}100\%}$
$12 / 12$
src/contracts/protocol/tokenization/VariableDebtToken.sol ${\color{green}100\%}$
$18 / 18$
${\color{green}100\%}$
$13 / 13$
${\color{green}100\%}$
$2 / 2$
src/contracts/protocol/tokenization/base/DebtTokenBase.sol ${\color{green}100\%}$
$14 / 14$
${\color{orange}83.33\%}$
$5 / 6$
DebtTokenBase.
${\color{green}100\%}$
$6 / 6$
src/contracts/protocol/tokenization/base/EIP712Base.sol ${\color{green}100\%}$
$7 / 7$
${\color{green}100\%}$
$4 / 4$
${\color{green}100\%}$
$1 / 1$
src/contracts/protocol/tokenization/base/IncentivizedERC20.sol ${\color{green}100\%}$
$44 / 44$
${\color{green}100\%}$
$21 / 21$
${\color{green}100\%}$
$6 / 6$
src/contracts/protocol/tokenization/base/MintableIncentivizedERC20.sol ${\color{green}100\%}$
$14 / 14$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$2 / 2$
src/contracts/protocol/tokenization/base/ScaledBalanceTokenBase.sol ${\color{green}100\%}$
$45 / 45$
${\color{green}100\%}$
$8 / 8$
${\color{green}100\%}$
$8 / 8$
src/contracts/rewards/EmissionManager.sol ${\color{green}100\%}$
$18 / 18$
${\color{green}100\%}$
$12 / 12$
${\color{red}50\%}$
$3 / 6$
src/contracts/rewards/RewardsController.sol ${\color{lightgreen}98.75\%}$
$79 / 80$
201
${\color{green}100\%}$
$25 / 25$
${\color{red}60.71\%}$
$17 / 28$
src/contracts/rewards/RewardsDistributor.sol ${\color{lightgreen}99.18\%}$
$121 / 122$
429
${\color{green}100\%}$
$24 / 24$
${\color{orange}80.95\%}$
$17 / 21$
src/contracts/rewards/transfer-strategies/PullRewardsTransferStrategy.sol ${\color{green}100\%}$
$4 / 4$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$0 / 0$
src/contracts/rewards/transfer-strategies/StakedTokenTransferStrategy.sol ${\color{green}100\%}$
$12 / 12$
${\color{green}100\%}$
$6 / 6$
${\color{red}50\%}$
$1 / 2$
src/contracts/rewards/transfer-strategies/TransferStrategyBase.sol ${\color{green}100\%}$
$8 / 8$
${\color{green}100\%}$
$6 / 6$
${\color{red}50\%}$
$2 / 4$
src/contracts/treasury/Collector.sol ${\color{red}8.11\%}$
$6 / 74$
59, 68, 79, 103, 108 and 63 more
${\color{red}17.65\%}$
$3 / 17$
Collector.onlyFundsAdmin, Collector.onlyAdminOrRecipient, Collector.streamExists, Collector.getFundsAdmin, Collector.getNextStreamId and 9 more
${\color{red}2.86\%}$
$1 / 35$
src/contracts/treasury/RevenueSplitter.sol ${\color{green}100\%}$
$22 / 22$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$3 / 3$

@nisnislevi nisnislevi deleted the certora-squashed branch December 12, 2024 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants