Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

Latest commit

 

History

History
3733 lines (3412 loc) · 391 KB

File metadata and controls

3733 lines (3412 loc) · 391 KB

v2 Deprecation Plan, 2023.10.03

Proposal text

Summary

Following the v2 deprecation framework, Gauntlet and Chaos recommend the following parameter changes to frozen assets on Aave v2 Ethereum.

Specification

Asset Current LT Rec LT Current LTV Rec LTV
1INCH 40% 24% 30% 0
BAL 35% 25% 0 0
BAT 40% 1% 0 0
CRV 45% 42% 0 0
CVX 35% 33% 0 0
DPI 42% 16% 0 0
ENJ 52% 50% 0 0
ENS 52% 50% 42% 0
LINK 83% 82% 70% 0
MANA 54% 48% 0 0
MKR 50% 35% 45% 0
REN 32% 27% 0 0
SNX 49% 43% 36% 0
UNI 70% 70% 58% 0
xSUSHI 57% 28% 0 0
YFI 50% 45% 0 0
ZRX 42% 37% 0 0

Implementation

The proposal implements changes using the following payloads:

References

Disclaimer

Gauntlet and Chaos have not received any compensation from any third-party in exchange for recommending any of the actions contained in this proposal.

Copyright

Copyright and related rights waived via CC0.

By approving this proposal, you agree that any services provided by Gauntlet shall be governed by the terms of service available at gauntlet.network/tos.

Checks

Reports all state changes from the proposal ✅ Passed

Info:

  • State changes:
# KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
@@ `s_upkeep` key `"38708010855340815800266444206792387479170521527111639306025178205742164078384"`.lastKeeper @@
- 0x98924befaa16b607b3e168b6c57c9528af5cc076
+ 0x18cbe724e7c248cda2803f48d1ea6d019623b5cc
# InitializableImmutableAdminUpgradeabilityProxy at `0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9` with implementation LendingPool at `0x085E34722e04567Df9E6d2c32e82fd74f3342e79`
@@ `_reserves` key `0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e`.configuration.data @@
- 64564113774936244879360
+ 64564113774936212111360

# decoded configuration.data for key `0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e` (symbol: YFI)
@@ configuration.data.liquidationThreshold @@
- 5000
+ 4500

@@ `_reserves` key `0x0d8775f648430679a709e98d2b0cb6250d2887ef`.configuration.data @@
- 64564402005312331055104
+ 64564402005312075464704

# decoded configuration.data for key `0x0d8775f648430679a709e98d2b0cb6250d2887ef` (symbol: BAT)
@@ configuration.data.liquidationThreshold @@
- 4000
+ 100

@@ `_reserves` key `0x0f5d2fb29fb7d3cfee444a200298f468908cc942`.configuration.data @@
- 92234806346252901941248
+ 92234806346252862619648

# decoded configuration.data for key `0x0f5d2fb29fb7d3cfee444a200298f468908cc942` (symbol: MANA)
@@ configuration.data.liquidationThreshold @@
- 5400
+ 4800

@@ `_reserves` key `0x111111111117dc0aa78b770fa6a738034120c302`.configuration.data @@
- 55340453507061006732216
+ 55340453507060901871616

# decoded configuration.data for key `0x111111111117dc0aa78b770fa6a738034120c302` (symbol: 1INCH)
@@ configuration.data.ltv @@
- 3000
+ 0
@@ configuration.data.liquidationThreshold @@
- 4000
+ 2400

@@ `_reserves` key `0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b`.configuration.data @@
- 64563825544560040738816
+ 64563825544559870345216

# decoded configuration.data for key `0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b` (symbol: DPI)
@@ configuration.data.liquidationThreshold @@
- 4200
+ 1600

@@ `_reserves` key `0x1f9840a85d5af5bf1d1762f925bdaddc4201f984`.configuration.data @@
- 55340453507275951707816
+ 55340453507275951702016

# decoded configuration.data for key `0x1f9840a85d5af5bf1d1762f925bdaddc4201f984` (symbol: UNI)
@@ configuration.data.ltv @@
- 5800
+ 0

@@ `_reserves` key `0x408e41876cccdc0f92210600ef50372656052a38`.configuration.data @@
- 64564402005312278626304
+ 64564402005312245858304

# decoded configuration.data for key `0x408e41876cccdc0f92210600ef50372656052a38` (symbol: REN)
@@ configuration.data.liquidationThreshold @@
- 3200
+ 2700

@@ `_reserves` key `0x4e3fbd56cd56c3e72c1403e103b45db9da5b9d2b`.configuration.data @@
- 64563825543915749769216
+ 64563825543915736662016

# decoded configuration.data for key `0x4e3fbd56cd56c3e72c1403e103b45db9da5b9d2b` (symbol: CVX)
@@ configuration.data.liquidationThreshold @@
- 3500
+ 3300

@@ `_reserves` key `0x514910771af9ca656af840dff83e8264ecf986ca`.configuration.data @@
- 55341029967169346870104
+ 55341029967169340309504

# decoded configuration.data for key `0x514910771af9ca656af840dff83e8264ecf986ca` (symbol: LINK)
@@ configuration.data.ltv @@
- 7000
+ 0
@@ configuration.data.liquidationThreshold @@
- 8300
+ 8200

@@ `_reserves` key `0x8798249c2e607446efb7ad49ec89dd1865ff4272`.configuration.data @@
- 92233941655124466466816
+ 92233941655124276412416

# decoded configuration.data for key `0x8798249c2e607446efb7ad49ec89dd1865ff4272` (symbol: xSUSHI)
@@ configuration.data.liquidationThreshold @@
- 5700
+ 2800

@@ `_reserves` key `0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2`.configuration.data @@
- 55341029967383878963604
+ 55341029967383780655104

# decoded configuration.data for key `0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2` (symbol: unknown)
@@ configuration.data.ltv @@
- 4500
+ 0
@@ configuration.data.liquidationThreshold @@
- 5000
+ 3500

@@ `_reserves` key `0xba100000625a3754423978a60c9317c58a424e3d`.configuration.data @@
- 64563825543701001404416
+ 64563825543700935868416

# decoded configuration.data for key `0xba100000625a3754423978a60c9317c58a424e3d` (symbol: BAL)
@@ configuration.data.liquidationThreshold @@
- 3500
+ 2500

@@ `_reserves` key `0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f`.configuration.data @@
- 83010569617195896409616
+ 83010569617195857084416

# decoded configuration.data for key `0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f` (symbol: SNX)
@@ configuration.data.ltv @@
- 3600
+ 0
@@ configuration.data.liquidationThreshold @@
- 4900
+ 4300

@@ `_reserves` key `0xc18360217d8f7ab5e7c516566761ea12ce7f9d72`.configuration.data @@
- 55340453506846337011816
+ 55340453506846323900416

# decoded configuration.data for key `0xc18360217d8f7ab5e7c516566761ea12ce7f9d72` (symbol: ENS)
@@ configuration.data.ltv @@
- 4200
+ 0
@@ configuration.data.liquidationThreshold @@
- 5200
+ 5000

@@ `_reserves` key `0xd533a949740bb3306d119cc777fa900ba034cd52`.configuration.data @@
- 55340453506846291132416
+ 55340453506846271471616

# decoded configuration.data for key `0xd533a949740bb3306d119cc777fa900ba034cd52` (symbol: CRV)
@@ configuration.data.liquidationThreshold @@
- 4500
+ 4200

@@ `_reserves` key `0xe41d2489571d322189246dafa5ebde1f4699f498`.configuration.data @@
- 64564402005312344162304
+ 64564402005312311394304

# decoded configuration.data for key `0xe41d2489571d322189246dafa5ebde1f4699f498` (symbol: ZRX)
@@ configuration.data.liquidationThreshold @@
- 4200
+ 3700

@@ `_reserves` key `0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c`.configuration.data @@
- 64564690235688561410048
+ 64564690235688548302848

# decoded configuration.data for key `0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c` (symbol: ENJ)
@@ configuration.data.liquidationThreshold @@
- 5200
+ 5000

Check stack trace of the proposal ✅ Passed

Info:

  • There is no SELFDESTRUCT inside of delegated call

Reports all events emitted from the proposal ✅ Passed

Info:

  • Events Emitted:
    • InitializableImmutableAdminUpgradeabilityProxy at 0x311Bb771e4F8952E6Da169b425E7e92d6Ac45756 with implementation LendingPoolConfigurator at 0x3a95Ee42f080ff7289C8B4a14EB483a8644d7521
      • CollateralConfigurationChanged(asset: 0x111111111117dc0aa78b770fa6a738034120c302, ltv: 0, liquidationThreshold: 2400, liquidationBonus: 10850)
      • CollateralConfigurationChanged(asset: 0xba100000625a3754423978a60c9317c58a424e3d, ltv: 0, liquidationThreshold: 2500, liquidationBonus: 10800)
      • CollateralConfigurationChanged(asset: 0x0d8775f648430679a709e98d2b0cb6250d2887ef, ltv: 0, liquidationThreshold: 100, liquidationBonus: 11000)
      • CollateralConfigurationChanged(asset: 0xd533a949740bb3306d119cc777fa900ba034cd52, ltv: 0, liquidationThreshold: 4200, liquidationBonus: 10800)
      • CollateralConfigurationChanged(asset: 0x4e3fbd56cd56c3e72c1403e103b45db9da5b9d2b, ltv: 0, liquidationThreshold: 3300, liquidationBonus: 10850)
      • CollateralConfigurationChanged(asset: 0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b, ltv: 0, liquidationThreshold: 1600, liquidationBonus: 11000)
      • CollateralConfigurationChanged(asset: 0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c, ltv: 0, liquidationThreshold: 5000, liquidationBonus: 11000)
      • CollateralConfigurationChanged(asset: 0x514910771af9ca656af840dff83e8264ecf986ca, ltv: 0, liquidationThreshold: 8200, liquidationBonus: 10700)
      • CollateralConfigurationChanged(asset: 0x0f5d2fb29fb7d3cfee444a200298f468908cc942, ltv: 0, liquidationThreshold: 4800, liquidationBonus: 11000)
      • CollateralConfigurationChanged(asset: 0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2, ltv: 0, liquidationThreshold: 3500, liquidationBonus: 10750)
      • CollateralConfigurationChanged(asset: 0x408e41876cccdc0f92210600ef50372656052a38, ltv: 0, liquidationThreshold: 2700, liquidationBonus: 11000)
      • CollateralConfigurationChanged(asset: 0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f, ltv: 0, liquidationThreshold: 4300, liquidationBonus: 10750)
      • CollateralConfigurationChanged(asset: 0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e, ltv: 0, liquidationThreshold: 4500, liquidationBonus: 11000)
      • CollateralConfigurationChanged(asset: 0xe41d2489571d322189246dafa5ebde1f4699f498, ltv: 0, liquidationThreshold: 3700, liquidationBonus: 11000)
      • CollateralConfigurationChanged(asset: 0x8798249c2e607446efb7ad49ec89dd1865ff4272, ltv: 0, liquidationThreshold: 2800, liquidationBonus: 11000)
      • CollateralConfigurationChanged(asset: 0xc18360217d8f7ab5e7c516566761ea12ce7f9d72, ltv: 0, liquidationThreshold: 5000, liquidationBonus: 10800)
      • CollateralConfigurationChanged(asset: 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984, ltv: 0, liquidationThreshold: 7000, liquidationBonus: 10900)
    • EthRobotKeeper at 0x9EEa1Ba822d204077e9f90a92D30432417184587
      • ActionSucceeded(id: 341, action: 1)
    • KeeperRegistry at 0x02777053d6764996e594c3E88AF1D58D5363a2e6
      • UpkeepPerformed(id: 38708010855340815800266444206792387479170521527111639306025178205742164078384, success: true, from: 0x18cbe724e7c248cda2803f48d1ea6d019623b5cc, payment: 0, performData: 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000001)

Check all targets are verified on Etherscan ✅ Passed

Info:

  • Targets:
    • 0xff374aD1be52fF54Cf576586253a113d3F48D4B7: Contract (not verified)

Check all touched contracts are verified on Etherscan ✅ Passed

Info:

  • Touched address:
    • 0x18cbe724e7c248cda2803f48d1ea6d019623b5cc: EOA (verification not applicable)
    • 0x02777053d6764996e594c3e88af1d58d5363a2e6: Contract (verified) (KeeperRegistry)
    • 0x169e633a2d1e6c10dd91238ba11c4a708dfef37c: Contract (verified) (EACAggregatorProxy)
    • 0x785433d8b06d77d68df6be63944742130a4530d1: Contract (verified) (AccessControlledOffchainAggregator)
    • 0xdc530d9457755926550b59e8eccdae7624181557: Contract (verified) (EACAggregatorProxy)
    • 0xbba12740de905707251525477bad74985dec46d2: Contract (verified) (AccessControlledOffchainAggregator)
    • 0x9eea1ba822d204077e9f90a92d30432417184587: Contract (verified) (EthRobotKeeper)
    • 0xec568fffba86c094cf06b22134b23074dfe2252c: Contract (verified) (AaveGovernanceV2)
    • 0xee56e2b3d491590b5b31738cc34d5232f378a8d5: Contract (verified) (Executor)
    • 0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e: Contract (verified) (GovernanceStrategy)
    • 0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9: Contract (verified) (InitializableAdminUpgradeabilityProxy)
    • 0x96f68837877fd0414b55050c9e794aecdbcfca59: Contract (verified) (AaveTokenV2)
    • 0xff374ad1be52ff54cf576586253a113d3f48d4b7: Contract (verified) (AaveV2EthereumUpdate20231009Payload)
    • 0x311bb771e4f8952e6da169b425e7e92d6ac45756: Contract (verified) (InitializableImmutableAdminUpgradeabilityProxy)
    • 0x3a95ee42f080ff7289c8b4a14eb483a8644d7521: Contract (verified) (LendingPoolConfigurator)
    • 0xb53c1a33016b2dc2ff3653530bff1848a515c8c5: Contract (verified) (LendingPoolAddressesProvider)
    • 0x7d2768de32b0b80b7a3454c06bdac94a69ddc7a9: Contract (verified) (InitializableImmutableAdminUpgradeabilityProxy)
    • 0x085e34722e04567df9e6d2c32e82fd74f3342e79: Contract (verified) (LendingPool)

Runs solc against the verified contracts ✅ Passed

Info:

View Details
View warnings for KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x02777053d6764996e594c3e88af1d58d5363a2e6-KeeperRegistry' running
View warnings for LendingPool at `0x085E34722e04567Df9E6d2c32e82fd74f3342e79`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x085e34722e04567df9e6d2c32e82fd74f3342e79-LendingPool' running
View warnings for EACAggregatorProxy at `0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
WARNING:CryticCompile:Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:283:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:273:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:284:7: Warning: This declaration shadows an existing declaration.
      int256 answer,
      ^-----------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:274:7: The shadowed declaration is here:
      int256 answer,
      ^-----------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:285:7: Warning: This declaration shadows an existing declaration.
      uint256 startedAt,
      ^---------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:275:7: The shadowed declaration is here:
      uint256 startedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:286:7: Warning: This declaration shadows an existing declaration.
      uint256 updatedAt,
      ^---------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:276:7: The shadowed declaration is here:
      uint256 updatedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:331:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:321:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:332:7: Warning: This declaration shadows an existing declaration.
      int256 answer,
      ^-----------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:322:7: The shadowed declaration is here:
      int256 answer,
      ^-----------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:333:7: Warning: This declaration shadows an existing declaration.
      uint256 startedAt,
      ^---------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:323:7: The shadowed declaration is here:
      uint256 startedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:334:7: Warning: This declaration shadows an existing declaration.
      uint256 updatedAt,
      ^---------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:324:7: The shadowed declaration is here:
      uint256 updatedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:513:5: Warning: This declaration shadows an existing declaration.
    uint16 phaseId = uint16(_roundId >> PHASE_OFFSET);
    ^------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:410:3: The shadowed declaration is here:
  function phaseId()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:525:7: Warning: This declaration shadows an existing declaration.
      uint16 phaseId
      ^------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:410:3: The shadowed declaration is here:
  function phaseId()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:495:3: Warning: Function state mutability can be restricted to pure
  function addPhase(
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:506:3: Warning: Function state mutability can be restricted to pure
  function parseIds(
  ^ (Relevant source part starts here and spans across multiple lines).


View warnings for InitializableImmutableAdminUpgradeabilityProxy at `0x311Bb771e4F8952E6Da169b425E7e92d6Ac45756` with implementation LendingPoolConfigurator at `0x3a95Ee42f080ff7289C8B4a14EB483a8644d7521`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x311bb771e4f8952e6da169b425e7e92d6ac45756-InitializableImmutableAdminUpgradeabilityProxy' running
WARNING:CryticCompile:Warning: contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol:16:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableImmutableAdminUpgradeabilityProxy is
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).


View warnings for LendingPoolConfigurator at `0x3a95Ee42f080ff7289C8B4a14EB483a8644d7521`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x3a95ee42f080ff7289c8b4a14eb483a8644d7521-LendingPoolConfigurator' running
WARNING:CryticCompile:Warning: contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol:16:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableImmutableAdminUpgradeabilityProxy is
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).


View warnings for AccessControlledOffchainAggregator at `0x785433d8b06D77D68dF6be63944742130A4530d1`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x785433d8b06d77d68df6be63944742130a4530d1-AccessControlledOffchainAggregator' running
WARNING:CryticCompile:Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: OffchainAggregator.sol:462:7: Warning: This declaration shadows an existing declaration.
      uint64 latestTimestamp
      ^--------------------^
OffchainAggregator.sol:666:3: The shadowed declaration is here:
  function latestTimestamp()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: AccessControlledOffchainAggregator.sol:25:5: Warning: This declaration shadows an existing declaration.
    string memory description
    ^-----------------------^
AccessControlledOffchainAggregator.sol:108:3: The shadowed declaration is here:
  function description()
  ^ (Relevant source part starts here and spans across multiple lines).


View warnings for InitializableImmutableAdminUpgradeabilityProxy at `0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9` with implementation LendingPool at `0x085E34722e04567Df9E6d2c32e82fd74f3342e79`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x7d2768de32b0b80b7a3454c06bdac94a69ddc7a9-InitializableImmutableAdminUpgradeabilityProxy' running
WARNING:CryticCompile:Warning: contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol:16:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableImmutableAdminUpgradeabilityProxy is
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).


View warnings for InitializableAdminUpgradeabilityProxy (Aave) at `0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9` with implementation AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9-InitializableAdminUpgradeabilityProxy' running
WARNING:CryticCompile:Warning: contracts/open-zeppelin/Address.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/BaseUpgradeabilityProxy.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/Proxy.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/SafeMath.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/UpgradeabilityProxy.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol:13:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/open-zeppelin/Proxy.sol:15:3: The payable fallback function is defined here.
  fallback () payable external {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/open-zeppelin/Proxy.sol:15:3: The payable fallback function is defined here.
  fallback () payable external {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/open-zeppelin/InitializableAdminUpgradeabilityProxy.sol:12:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableAdminUpgradeabilityProxy is BaseAdminUpgradeabilityProxy, InitializableUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/open-zeppelin/Proxy.sol:15:3: The payable fallback function is defined here.
  fallback () payable external {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/utils/MockTransferHook.sol:9:25: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function onTransfer(address from, address to, uint256 amount) external override {
                        ^----------^

Warning: contracts/utils/MockTransferHook.sol:9:39: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function onTransfer(address from, address to, uint256 amount) external override {
                                      ^--------^

Warning: contracts/utils/MockTransferHook.sol:9:51: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function onTransfer(address from, address to, uint256 amount) external override {
                                                  ^------------^


View warnings for AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x96f68837877fd0414b55050c9e794aecdbcfca59-AaveTokenV2' running
WARNING:CryticCompile:Warning: src/contracts/AaveTokenV2.sol:453:18: Warning: This declaration shadows an existing declaration.
    constructor (string memory name, string memory symbol) public {
                 ^----------------^
src/contracts/AaveTokenV2.sol:462:5: The shadowed declaration is here:
    function name() public view returns (string memory) {
    ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:453:38: Warning: This declaration shadows an existing declaration.
    constructor (string memory name, string memory symbol) public {
                                     ^------------------^
src/contracts/AaveTokenV2.sol:470:5: The shadowed declaration is here:
    function symbol() public view returns (string memory) {
    ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:35:3: Warning: Interface functions are implicitly "virtual"
  function delegateByType(address delegatee, DelegationType delegationType) external virtual;
  ^-----------------------------------------------------------------------------------------^

Warning: src/contracts/AaveTokenV2.sol:40:3: Warning: Interface functions are implicitly "virtual"
  function delegate(address delegatee) external virtual;
  ^----------------------------------------------------^

Warning: src/contracts/AaveTokenV2.sol:45:3: Warning: Interface functions are implicitly "virtual"
  function getDelegateeByType(address delegator, DelegationType delegationType)
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:56:3: Warning: Interface functions are implicitly "virtual"
  function getPowerCurrent(address user, DelegationType delegationType)
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:66:3: Warning: Interface functions are implicitly "virtual"
  function getPowerAtBlock(
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:75:3: Warning: Interface functions are implicitly "virtual"
  function totalSupplyAt(uint256 blockNumber) external virtual view returns (uint256);
  ^----------------------------------------------------------------------------------^

Warning: src/contracts/AaveTokenV2.sol:453:5: Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it "abstract" is sufficient.
    constructor (string memory name, string memory symbol) public {
    ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:1164:3: Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it "abstract" is sufficient.
  constructor() ERC20(NAME, SYMBOL) public {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:913:26: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
  function totalSupplyAt(uint256 blockNumber) external override view returns (uint256) {
                         ^-----------------^

Warning: src/contracts/AaveTokenV2.sol:1079:5: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    uint128 oldValue,
    ^--------------^


View warnings for EthRobotKeeper at `0x9EEa1Ba822d204077e9f90a92D30432417184587`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x9eea1ba822d204077e9f90a92d30432417184587-EthRobotKeeper' running
View warnings for LendingPoolAddressesProvider at `0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xb53c1a33016b2dc2ff3653530bff1848a515c8c5-LendingPoolAddressesProvider' running
WARNING:CryticCompile:Warning: contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol:16:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableImmutableAdminUpgradeabilityProxy is
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).


View warnings for GovernanceStrategy at `0xb7e383ef9B1E9189Fc0F71fb30af8aa14377429e`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
View warnings for AccessControlledOffchainAggregator at `0xbba12740DE905707251525477bAD74985DeC46D2`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xbba12740de905707251525477bad74985dec46d2-AccessControlledOffchainAggregator' running
WARNING:CryticCompile:Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: OffchainAggregator.sol:462:7: Warning: This declaration shadows an existing declaration.
      uint64 latestTimestamp
      ^--------------------^
OffchainAggregator.sol:666:3: The shadowed declaration is here:
  function latestTimestamp()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: AccessControlledOffchainAggregator.sol:25:5: Warning: This declaration shadows an existing declaration.
    string memory description
    ^-----------------------^
AccessControlledOffchainAggregator.sol:108:3: The shadowed declaration is here:
  function description()
  ^ (Relevant source part starts here and spans across multiple lines).


View warnings for EACAggregatorProxy at `0xDC530D9457755926550b59e8ECcdaE7624181557`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
WARNING:CryticCompile:Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:283:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:273:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:284:7: Warning: This declaration shadows an existing declaration.
      int256 answer,
      ^-----------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:274:7: The shadowed declaration is here:
      int256 answer,
      ^-----------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:285:7: Warning: This declaration shadows an existing declaration.
      uint256 startedAt,
      ^---------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:275:7: The shadowed declaration is here:
      uint256 startedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:286:7: Warning: This declaration shadows an existing declaration.
      uint256 updatedAt,
      ^---------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:276:7: The shadowed declaration is here:
      uint256 updatedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:331:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:321:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:332:7: Warning: This declaration shadows an existing declaration.
      int256 answer,
      ^-----------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:322:7: The shadowed declaration is here:
      int256 answer,
      ^-----------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:333:7: Warning: This declaration shadows an existing declaration.
      uint256 startedAt,
      ^---------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:323:7: The shadowed declaration is here:
      uint256 startedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:334:7: Warning: This declaration shadows an existing declaration.
      uint256 updatedAt,
      ^---------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:324:7: The shadowed declaration is here:
      uint256 updatedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:513:5: Warning: This declaration shadows an existing declaration.
    uint16 phaseId = uint16(_roundId >> PHASE_OFFSET);
    ^------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:410:3: The shadowed declaration is here:
  function phaseId()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:525:7: Warning: This declaration shadows an existing declaration.
      uint16 phaseId
      ^------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:410:3: The shadowed declaration is here:
  function phaseId()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:495:3: Warning: Function state mutability can be restricted to pure
  function addPhase(
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:506:3: Warning: Function state mutability can be restricted to pure
  function parseIds(
  ^ (Relevant source part starts here and spans across multiple lines).


View warnings for AaveV2EthereumUpdate20231009Payload at `0xff374aD1be52fF54Cf576586253a113d3F48D4B7`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xff374ad1be52ff54cf576586253a113d3f48d4b7-AaveV2EthereumUpdate20231009Payload' running

Runs slither against the verified contracts ✅ Passed

Info:

View Details
Slither report for KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x02777053d6764996e594c3e88af1d58d5363a2e6-KeeperRegistry' running
INFO:Detectors:
KeeperRegistry.addFunds(uint256,uint96) (contracts/v0.8/KeeperRegistry.sol#297-302) ignores return value by LINK.transferFrom(msg.sender,address(this),amount) (contracts/v0.8/KeeperRegistry.sol#300)
KeeperRegistry.withdrawFunds(uint256,address) (contracts/v0.8/KeeperRegistry.sol#331-355) ignores return value by LINK.transfer(to,amountToWithdraw) (contracts/v0.8/KeeperRegistry.sol#354)
KeeperRegistry.withdrawOwnerFunds() (contracts/v0.8/KeeperRegistry.sol#360-368) ignores return value by LINK.transfer(msg.sender,amount) (contracts/v0.8/KeeperRegistry.sol#367)
KeeperRegistry.recoverFunds() (contracts/v0.8/KeeperRegistry.sol#389-392) ignores return value by LINK.transfer(msg.sender,total - s_expectedLinkBalance) (contracts/v0.8/KeeperRegistry.sol#391)
KeeperRegistry.withdrawPayment(address,address) (contracts/v0.8/KeeperRegistry.sol#399-408) ignores return value by LINK.transfer(to,keeper.balance) (contracts/v0.8/KeeperRegistry.sol#407)
KeeperRegistry.migrateUpkeeps(uint256[],address) (contracts/v0.8/KeeperRegistry.sol#648-683) ignores return value by LINK.transfer(destination,totalBalanceRemaining) (contracts/v0.8/KeeperRegistry.sol#682)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unchecked-transfer
INFO:Detectors:
KeeperBase.preventExecution() (contracts/v0.8/KeeperBase.sol#11-15) uses tx.origin for authorization: tx.origin != address(0) (contracts/v0.8/KeeperBase.sol#12)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-usage-of-txorigin
INFO:Detectors:
KeeperRegistry.cancelUpkeep(uint256) (contracts/v0.8/KeeperRegistry.sol#273-289) ignores return value by s_upkeepIDs.remove(id) (contracts/v0.8/KeeperRegistry.sol#286)
KeeperRegistry.migrateUpkeeps(uint256[],address) (contracts/v0.8/KeeperRegistry.sol#648-683) ignores return value by s_upkeepIDs.remove(id) (contracts/v0.8/KeeperRegistry.sol#670)
KeeperRegistry._createUpkeep(uint256,address,uint32,address,uint96,bytes) (contracts/v0.8/KeeperRegistry.sol#723-745) ignores return value by s_upkeepIDs.add(id) (contracts/v0.8/KeeperRegistry.sol#744)
KeeperRegistry._getFeedData() (contracts/v0.8/KeeperRegistry.sol#753-771) ignores return value by (None,feedValue,None,timestamp,None) = FAST_GAS_FEED.latestRoundData() (contracts/v0.8/KeeperRegistry.sol#758)
KeeperRegistry._getFeedData() (contracts/v0.8/KeeperRegistry.sol#753-771) ignores return value by (None,feedValue,None,timestamp,None) = LINK_ETH_FEED.latestRoundData() (contracts/v0.8/KeeperRegistry.sol#764)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
Reentrancy in KeeperRegistry.addFunds(uint256,uint96) (contracts/v0.8/KeeperRegistry.sol#297-302):
	External calls:
	- LINK.transferFrom(msg.sender,address(this),amount) (contracts/v0.8/KeeperRegistry.sol#300)
	Event emitted after the call(s):
	- FundsAdded(id,msg.sender,amount) (contracts/v0.8/KeeperRegistry.sol#301)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
KeeperRegistry._getFeedData() (contracts/v0.8/KeeperRegistry.sol#753-771) uses timestamp for comparisons
	Dangerous comparisons:
	- (staleFallback && stalenessSeconds < block.timestamp - timestamp) || feedValue <= 0 (contracts/v0.8/KeeperRegistry.sol#759)
	- (staleFallback && stalenessSeconds < block.timestamp - timestamp) || feedValue <= 0 (contracts/v0.8/KeeperRegistry.sol#765)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#201-221) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#213-216)
EnumerableSet.values(EnumerableSet.AddressSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#274-283) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#278-280)
EnumerableSet.values(EnumerableSet.UintSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#347-356) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#351-353)
KeeperRegistry._callWithExactGas(uint256,address,bytes) (contracts/v0.8/KeeperRegistry.sol#792-817) uses assembly
	- INLINE ASM (contracts/v0.8/KeeperRegistry.sol#797-815)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
KeeperRegistry.migrateUpkeeps(uint256[],address) (contracts/v0.8/KeeperRegistry.sol#648-683) has costly operations inside a loop:
	- delete s_upkeep[id] (contracts/v0.8/KeeperRegistry.sol#668)
KeeperRegistry.migrateUpkeeps(uint256[],address) (contracts/v0.8/KeeperRegistry.sol#648-683) has costly operations inside a loop:
	- delete s_checkData[id] (contracts/v0.8/KeeperRegistry.sol#669)
KeeperRegistry._createUpkeep(uint256,address,uint32,address,uint96,bytes) (contracts/v0.8/KeeperRegistry.sol#723-745) has costly operations inside a loop:
	- s_expectedLinkBalance = s_expectedLinkBalance + balance (contracts/v0.8/KeeperRegistry.sol#742)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop
INFO:Detectors:
Address.functionCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#85-87) is never used and should be removed
Address.functionCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#95-101) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts/utils/Address.sol#114-120) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#128-139) is never used and should be removed
Address.functionDelegateCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#174-176) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#184-193) is never used and should be removed
Address.functionStaticCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#147-149) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#157-166) is never used and should be removed
Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#60-65) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#201-221) is never used and should be removed
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#21-23) is never used and should be removed
EnumerableSet._values(EnumerableSet.Set) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#142-144) is never used and should be removed
EnumerableSet.add(EnumerableSet.AddressSet,address) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#224-226) is never used and should be removed
EnumerableSet.add(EnumerableSet.Bytes32Set,bytes32) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#158-160) is never used and should be removed
EnumerableSet.at(EnumerableSet.AddressSet,uint256) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#262-264) is never used and should be removed
EnumerableSet.at(EnumerableSet.Bytes32Set,uint256) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#196-198) is never used and should be removed
EnumerableSet.contains(EnumerableSet.AddressSet,address) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#241-243) is never used and should be removed
EnumerableSet.contains(EnumerableSet.Bytes32Set,bytes32) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#175-177) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UintSet,uint256) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#314-316) is never used and should be removed
EnumerableSet.length(EnumerableSet.AddressSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#248-250) is never used and should be removed
EnumerableSet.length(EnumerableSet.Bytes32Set) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#182-184) is never used and should be removed
EnumerableSet.remove(EnumerableSet.AddressSet,address) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#234-236) is never used and should be removed
EnumerableSet.remove(EnumerableSet.Bytes32Set,bytes32) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#168-170) is never used and should be removed
EnumerableSet.values(EnumerableSet.AddressSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#274-283) is never used and should be removed
EnumerableSet.values(EnumerableSet.Bytes32Set) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#208-210) is never used and should be removed
EnumerableSet.values(EnumerableSet.UintSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#347-356) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#60-65):
	- (success) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#63)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#128-139):
	- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#137)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#157-166):
	- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#184-193):
	- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#191)
Low level call in KeeperRegistry.checkUpkeep(uint256,address) (contracts/v0.8/KeeperRegistry.sol#226-252):
	- (success,result) = upkeep.target.call{gas: s_storage.checkGasLimit}(callData) (contracts/v0.8/KeeperRegistry.sol#241)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Variable ConfirmedOwnerWithProposal.s_owner (contracts/v0.8/ConfirmedOwnerWithProposal.sol#11) is not in mixedCase
Variable ConfirmedOwnerWithProposal.s_pendingOwner (contracts/v0.8/ConfirmedOwnerWithProposal.sol#12) is not in mixedCase
Variable KeeperRegistry.s_keeperList (contracts/v0.8/KeeperRegistry.sol#48) is not in mixedCase
Variable KeeperRegistry.s_upkeepIDs (contracts/v0.8/KeeperRegistry.sol#49) is not in mixedCase
Variable KeeperRegistry.s_upkeep (contracts/v0.8/KeeperRegistry.sol#50) is not in mixedCase
Variable KeeperRegistry.s_keeperInfo (contracts/v0.8/KeeperRegistry.sol#51) is not in mixedCase
Variable KeeperRegistry.s_proposedPayee (contracts/v0.8/KeeperRegistry.sol#52) is not in mixedCase
Variable KeeperRegistry.s_checkData (contracts/v0.8/KeeperRegistry.sol#53) is not in mixedCase
Variable KeeperRegistry.s_peerRegistryMigrationPermission (contracts/v0.8/KeeperRegistry.sol#54) is not in mixedCase
Variable KeeperRegistry.s_storage (contracts/v0.8/KeeperRegistry.sol#55) is not in mixedCase
Variable KeeperRegistry.s_fallbackGasPrice (contracts/v0.8/KeeperRegistry.sol#56) is not in mixedCase
Variable KeeperRegistry.s_fallbackLinkPrice (contracts/v0.8/KeeperRegistry.sol#57) is not in mixedCase
Variable KeeperRegistry.s_ownerLinkBalance (contracts/v0.8/KeeperRegistry.sol#58) is not in mixedCase
Variable KeeperRegistry.s_expectedLinkBalance (contracts/v0.8/KeeperRegistry.sol#59) is not in mixedCase
Variable KeeperRegistry.s_transcoder (contracts/v0.8/KeeperRegistry.sol#60) is not in mixedCase
Variable KeeperRegistry.s_registrar (contracts/v0.8/KeeperRegistry.sol#61) is not in mixedCase
Variable KeeperRegistry.LINK (contracts/v0.8/KeeperRegistry.sol#63) is not in mixedCase
Variable KeeperRegistry.LINK_ETH_FEED (contracts/v0.8/KeeperRegistry.sol#64) is not in mixedCase
Variable KeeperRegistry.FAST_GAS_FEED (contracts/v0.8/KeeperRegistry.sol#65) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Loop condition `< s_keeperList.length; ` (contracts/v0.8/KeeperRegistry.sol#488) should use cached array length instead of referencing `length` member of the storage array.
 Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#cache-array-length
INFO:Slither:0x02777053d6764996e594c3e88af1d58d5363a2e6 analyzed (20 contracts with 82 detectors), 72 result(s) found
Slither report for LendingPool at `0x085E34722e04567Df9E6d2c32e82fd74f3342e79`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x085e34722e04567df9e6d2c32e82fd74f3342e79-LendingPool' running
INFO:Detectors:
LendingPool.flashLoan(address,address[],uint256[],uint256[],address,bytes,uint16) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#493-574) uses arbitrary from in transferFrom: IERC20(vars.currentAsset).safeTransferFrom(receiverAddress,vars.currentATokenAddress,vars.currentAmountPlusPremium) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#544-548)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#arbitrary-from-in-transferfrom
INFO:Detectors:
LendingPool (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#46-946) is an upgradeable contract that does not protect its initialize functions: LendingPool.initialize(ILendingPoolAddressesProvider) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#102-104). Anyone can delete the contract with: LendingPool.liquidationCall(address,address,address,uint256,bool) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#436-462)Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unprotected-upgradeable-contract
INFO:Detectors:
GenericLogic.calculateUserAccountData(address,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#150-235) performs a multiplication on the result of a division:
	- liquidityBalanceETH = vars.reserveUnitPrice.mul(vars.compoundedLiquidityBalance).div(vars.tokenUnit) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#191-192)
	- vars.avgLtv = vars.avgLtv.add(liquidityBalanceETH.mul(vars.ltv)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#196)
GenericLogic.calculateUserAccountData(address,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#150-235) performs a multiplication on the result of a division:
	- liquidityBalanceETH = vars.reserveUnitPrice.mul(vars.compoundedLiquidityBalance).div(vars.tokenUnit) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#191-192)
	- vars.avgLiquidationThreshold = vars.avgLiquidationThreshold.add(liquidityBalanceETH.mul(vars.liquidationThreshold)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#197-199)
MathUtils.calculateCompoundedInterest(uint256,uint40,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/MathUtils.sol#45-70) performs a multiplication on the result of a division:
	- ratePerSecond = rate / SECONDS_PER_YEAR (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/MathUtils.sol#61)
	- WadRayMath.ray().add(ratePerSecond.mul(exp)).add(secondTerm).add(thirdTerm) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/MathUtils.sol#69)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply
INFO:Detectors:
MathUtils.calculateCompoundedInterest(uint256,uint40,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/MathUtils.sol#45-70) uses a dangerous strict equality:
	- exp == 0 (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/MathUtils.sol#53)
GenericLogic.calculateHealthFactorFromBalances(uint256,uint256,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#244-252) uses a dangerous strict equality:
	- totalDebtInETH == 0 (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#249)
LendingPool.withdraw(address,uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#155-197) uses a dangerous strict equality:
	- amountToWithdraw == userBalance (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#187)
GenericLogic.balanceDecreaseAllowed(address,address,uint256,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#55-116) uses a dangerous strict equality:
	- vars.liquidationThreshold == 0 (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#75)
GenericLogic.balanceDecreaseAllowed(address,address,uint256,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#55-116) uses a dangerous strict equality:
	- vars.totalDebtInETH == 0 (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#87)
GenericLogic.balanceDecreaseAllowed(address,address,uint256,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#55-116) uses a dangerous strict equality:
	- vars.collateralBalanceAfterDecrease == 0 (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#98)
ReserveLogic.getNormalizedDebt(DataTypes.ReserveData) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#85-104) uses a dangerous strict equality:
	- timestamp == uint40(block.timestamp) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#93)
ReserveLogic.getNormalizedIncome(DataTypes.ReserveData) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#57-76) uses a dangerous strict equality:
	- timestamp == uint40(block.timestamp) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#65)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
INFO:Detectors:
ValidationLogic.validateBorrow(address,DataTypes.ReserveData,address,uint256,uint256,uint256,uint256,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address).vars (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#134) is a local variable never initialized
LendingPool.flashLoan(address,address[],uint256[],uint256[],address,bytes,uint16).vars (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#502) is a local variable never initialized
GenericLogic.calculateUserAccountData(address,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address).vars (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#168) is a local variable never initialized
ReserveLogic.updateInterestRates(DataTypes.ReserveData,address,address,uint256,uint256).vars (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#205) is a local variable never initialized
ReserveLogic._mintToTreasury(DataTypes.ReserveData,uint256,uint256,uint256,uint256,uint40).vars (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#282) is a local variable never initialized
GenericLogic.balanceDecreaseAllowed(address,address,uint256,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address).vars (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#69) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
LendingPool.swapBorrowRateMode(address,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#308-350) ignores return value by IVariableDebtToken(reserve.variableDebtTokenAddress).mint(msg.sender,msg.sender,stableDebt,reserve.variableBorrowIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#327-332)
LendingPool.swapBorrowRateMode(address,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#308-350) ignores return value by IStableDebtToken(reserve.stableDebtTokenAddress).mint(msg.sender,msg.sender,variableDebt,reserve.currentStableBorrowRate) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#339-344)
LendingPool.rebalanceStableBorrowRate(address,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#361-391) ignores return value by IStableDebtToken(address(stableDebtToken)).mint(user,user,stableDebt,reserve.currentStableBorrowRate) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#381-386)
LendingPool.flashLoan(address,address[],uint256[],uint256[],address,bytes,uint16) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#493-574) ignores return value by IAToken(aTokenAddresses[vars.i]).transferUnderlyingTo(receiverAddress,amounts[vars.i]) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#516)
LendingPool._executeBorrow(LendingPool.ExecuteBorrowParams) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#855-930) ignores return value by IAToken(vars.aTokenAddress).transferUnderlyingTo(vars.user,vars.amount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#916)
GenericLogic.balanceDecreaseAllowed(address,address,uint256,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#55-116) ignores return value by (None,vars.liquidationThreshold,None,vars.decimals,None) = reservesData[asset].configuration.getParams() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#71-73)
GenericLogic.calculateUserAccountData(address,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#150-235) ignores return value by (vars.ltv,vars.liquidationThreshold,None,vars.decimals,None) = currentReserve.configuration.getParams() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#181-183)
ValidationLogic.validateDeposit(DataTypes.ReserveData,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#41-47) ignores return value by (isActive,isFrozen) = reserve.configuration.getFlags() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#42)
ValidationLogic.validateWithdraw(address,uint256,uint256,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#60-89) ignores return value by (isActive) = reservesData[reserveAddress].configuration.getFlags() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#73)
ValidationLogic.validateSwapRateMode(DataTypes.ReserveData,DataTypes.UserConfigurationMap,uint256,uint256,DataTypes.InterestRateMode) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#259-293) ignores return value by (isActive,isFrozen,stableRateEnabled) = reserve.configuration.getFlags() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#266)
ValidationLogic.validateRebalanceStableBorrowRate(DataTypes.ReserveData,address,IERC20,IERC20,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#303-333) ignores return value by (isActive) = reserve.configuration.getFlags() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#310)
ValidationLogic.validateTransfer(address,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#446-468) ignores return value by (healthFactor) = GenericLogic.calculateUserAccountData(from,reservesData,userConfig,reserves,reservesCount,oracle) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#454-462)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
LendingPool.liquidationCall(address,address,address,uint256,bool).collateralAsset (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#437) lacks a zero-check on :
		- (success,result) = collateralManager.delegatecall(abi.encodeWithSignature(liquidationCall(address,address,address,uint256,bool),collateralAsset,debtAsset,user,debtToCover,receiveAToken)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#446-456)
LendingPool.liquidationCall(address,address,address,uint256,bool).debtAsset (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#438) lacks a zero-check on :
		- (success,result) = collateralManager.delegatecall(abi.encodeWithSignature(liquidationCall(address,address,address,uint256,bool),collateralAsset,debtAsset,user,debtToCover,receiveAToken)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#446-456)
LendingPool.liquidationCall(address,address,address,uint256,bool).user (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#439) lacks a zero-check on :
		- (success,result) = collateralManager.delegatecall(abi.encodeWithSignature(liquidationCall(address,address,address,uint256,bool),collateralAsset,debtAsset,user,debtToCover,receiveAToken)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#446-456)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
LendingPool.flashLoan(address,address[],uint256[],uint256[],address,bytes,uint16) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#493-574) has external calls inside a loop: IAToken(aTokenAddresses[vars.i]).transferUnderlyingTo(receiverAddress,amounts[vars.i]) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#516)
LendingPool.flashLoan(address,address[],uint256[],uint256[],address,bytes,uint16) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#493-574) has external calls inside a loop: _reserves[vars.currentAsset].cumulateToLiquidityIndex(IERC20(vars.currentATokenAddress).totalSupply(),vars.currentPremium) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#533-536)
LendingPool._executeBorrow(LendingPool.ExecuteBorrowParams) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#855-930) has external calls inside a loop: oracle = _addressesProvider.getPriceOracle() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#859)
LendingPool._executeBorrow(LendingPool.ExecuteBorrowParams) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#855-930) has external calls inside a loop: amountInETH = IPriceOracleGetter(oracle).getAssetPrice(vars.asset).mul(vars.amount).div(10 ** reserve.configuration.getDecimals()) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#861-864)
LendingPool._executeBorrow(LendingPool.ExecuteBorrowParams) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#855-930) has external calls inside a loop: isFirstBorrowing = IStableDebtToken(reserve.stableDebtTokenAddress).mint(vars.user,vars.onBehalfOf,vars.amount,currentStableRate) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#889-894)
LendingPool._executeBorrow(LendingPool.ExecuteBorrowParams) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#855-930) has external calls inside a loop: IAToken(vars.aTokenAddress).transferUnderlyingTo(vars.user,vars.amount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#916)
LendingPool._executeBorrow(LendingPool.ExecuteBorrowParams) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#855-930) has external calls inside a loop: isFirstBorrowing = IVariableDebtToken(reserve.variableDebtTokenAddress).mint(vars.user,vars.onBehalfOf,vars.amount,reserve.variableBorrowIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#896-901)
ReserveLogic.updateInterestRates(DataTypes.ReserveData,address,address,uint256,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#198-249) has external calls inside a loop: (vars.newLiquidityRate,vars.newStableRate,vars.newVariableRate) = IReserveInterestRateStrategy(reserve.interestRateStrategyAddress).calculateInterestRates(reserveAddress,vars.availableLiquidity.add(liquidityAdded).sub(liquidityTaken),vars.totalStableDebt,vars.totalVariableDebt,vars.avgStableRate,reserve.configuration.getReserveFactor()) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#221-232)
ReserveLogic.updateState(DataTypes.ReserveData) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#110-134) has external calls inside a loop: scaledVariableDebt = IVariableDebtToken(reserve.variableDebtTokenAddress).scaledTotalSupply() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#111-112)
ReserveLogic._mintToTreasury(DataTypes.ReserveData,uint256,uint256,uint256,uint256,uint40) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#274-325) has external calls inside a loop: (vars.principalStableDebt,vars.currentStableDebt,vars.avgStableRate,vars.stableSupplyUpdatedTimestamp) = IStableDebtToken(reserve.stableDebtTokenAddress).getSupplyData() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#291-296)
ReserveLogic._mintToTreasury(DataTypes.ReserveData,uint256,uint256,uint256,uint256,uint40) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#274-325) has external calls inside a loop: IAToken(reserve.aTokenAddress).mintToTreasury(vars.amountToMint,newLiquidityIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#323)
ValidationLogic.validateBorrow(address,DataTypes.ReserveData,address,uint256,uint256,uint256,uint256,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#120-213) has external calls inside a loop: require(bool,string)(! userConfig.isUsingAsCollateral(reserve.id) || reserve.configuration.getLtv() == 0 || amount > IERC20(reserve.aTokenAddress).balanceOf(userAddress),Errors.VL_COLLATERAL_SAME_AS_BORROWING_CURRENCY) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#198-203)
ValidationLogic.validateBorrow(address,DataTypes.ReserveData,address,uint256,uint256,uint256,uint256,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#120-213) has external calls inside a loop: vars.availableLiquidity = IERC20(asset).balanceOf(reserve.aTokenAddress) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#205)
ReserveLogic.updateInterestRates(DataTypes.ReserveData,address,address,uint256,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#198-249) has external calls inside a loop: (vars.totalStableDebt,vars.avgStableRate) = IStableDebtToken(vars.stableDebtTokenAddress).getTotalSupplyAndAvgRate() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#209-210)
ReserveLogic.updateInterestRates(DataTypes.ReserveData,address,address,uint256,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#198-249) has external calls inside a loop: vars.totalVariableDebt = IVariableDebtToken(reserve.variableDebtTokenAddress).scaledTotalSupply().rayMul(reserve.variableBorrowIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#215-217)
ReserveLogic.updateInterestRates(DataTypes.ReserveData,address,address,uint256,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#198-249) has external calls inside a loop: vars.availableLiquidity = IERC20(reserveAddress).balanceOf(aTokenAddress) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#219)
GenericLogic.calculateUserAccountData(address,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#150-235) has external calls inside a loop: vars.reserveUnitPrice = IPriceOracleGetter(oracle).getAssetPrice(vars.currentReserveAddress) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#186)
GenericLogic.calculateUserAccountData(address,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#150-235) has external calls inside a loop: vars.compoundedLiquidityBalance = IERC20(currentReserve.aTokenAddress).balanceOf(user) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#189)
GenericLogic.calculateUserAccountData(address,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#150-235) has external calls inside a loop: vars.compoundedBorrowBalance = IERC20(currentReserve.stableDebtTokenAddress).balanceOf(user) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#203-205)
GenericLogic.calculateUserAccountData(address,mapping(address => DataTypes.ReserveData),DataTypes.UserConfigurationMap,mapping(uint256 => address),uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#150-235) has external calls inside a loop: vars.compoundedBorrowBalance = vars.compoundedBorrowBalance.add(IERC20(currentReserve.variableDebtTokenAddress).balanceOf(user)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#206-208)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
INFO:Detectors:
Reentrancy in LendingPool._executeBorrow(LendingPool.ExecuteBorrowParams) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#855-930):
	External calls:
	- reserve.updateState() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#881)
	- isFirstBorrowing = IStableDebtToken(reserve.stableDebtTokenAddress).mint(vars.user,vars.onBehalfOf,vars.amount,currentStableRate) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#889-894)
	- isFirstBorrowing = IVariableDebtToken(reserve.variableDebtTokenAddress).mint(vars.user,vars.onBehalfOf,vars.amount,reserve.variableBorrowIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#896-901)
	- IAToken(vars.aTokenAddress).transferUnderlyingTo(vars.user,vars.amount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#916)
	Event emitted after the call(s):
	- Borrow(vars.asset,vars.user,vars.onBehalfOf,vars.amount,vars.interestRateMode,currentStableRate,vars.referralCode) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#919-929)
	- Borrow(vars.asset,vars.user,vars.onBehalfOf,vars.amount,vars.interestRateMode,reserve.currentVariableBorrowRate,vars.referralCode) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#919-929)
Reentrancy in LendingPool.deposit(address,uint256,address,uint16) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#117-142):
	External calls:
	- reserve.updateState() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#129)
	- IERC20(asset).safeTransferFrom(msg.sender,aToken,amount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#132)
	- isFirstDeposit = IAToken(aToken).mint(onBehalfOf,amount,reserve.liquidityIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#134)
	Event emitted after the call(s):
	- Deposit(asset,msg.sender,onBehalfOf,amount,referralCode) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#141)
	- ReserveUsedAsCollateralEnabled(asset,onBehalfOf) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#138)
Reentrancy in LendingPool.flashLoan(address,address[],uint256[],uint256[],address,bytes,uint16) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#493-574):
	External calls:
	- IAToken(aTokenAddresses[vars.i]).transferUnderlyingTo(receiverAddress,amounts[vars.i]) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#516)
	- require(bool,string)(vars.receiver.executeOperation(assets,amounts,premiums,msg.sender,params),Errors.LP_INVALID_FLASH_LOAN_EXECUTOR_RETURN) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#519-522)
	- _reserves[vars.currentAsset].updateState() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#532)
	- IERC20(vars.currentAsset).safeTransferFrom(receiverAddress,vars.currentATokenAddress,vars.currentAmountPlusPremium) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#544-548)
	- _executeBorrow(ExecuteBorrowParams(vars.currentAsset,msg.sender,onBehalfOf,vars.currentAmount,modes[vars.i],vars.currentATokenAddress,referralCode,false)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#552-563)
		- reserve.updateState() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#881)
		- isFirstBorrowing = IStableDebtToken(reserve.stableDebtTokenAddress).mint(vars.user,vars.onBehalfOf,vars.amount,currentStableRate) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#889-894)
		- isFirstBorrowing = IVariableDebtToken(reserve.variableDebtTokenAddress).mint(vars.user,vars.onBehalfOf,vars.amount,reserve.variableBorrowIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#896-901)
		- IAToken(reserve.aTokenAddress).mintToTreasury(vars.amountToMint,newLiquidityIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#323)
		- IAToken(vars.aTokenAddress).transferUnderlyingTo(vars.user,vars.amount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#916)
	Event emitted after the call(s):
	- Borrow(vars.asset,vars.user,vars.onBehalfOf,vars.amount,vars.interestRateMode,currentStableRate,vars.referralCode) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#919-929)
		- _executeBorrow(ExecuteBorrowParams(vars.currentAsset,msg.sender,onBehalfOf,vars.currentAmount,modes[vars.i],vars.currentATokenAddress,referralCode,false)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#552-563)
	- Borrow(vars.asset,vars.user,vars.onBehalfOf,vars.amount,vars.interestRateMode,reserve.currentVariableBorrowRate,vars.referralCode) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#919-929)
		- _executeBorrow(ExecuteBorrowParams(vars.currentAsset,msg.sender,onBehalfOf,vars.currentAmount,modes[vars.i],vars.currentATokenAddress,referralCode,false)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#552-563)
	- FlashLoan(receiverAddress,msg.sender,vars.currentAsset,vars.currentAmount,vars.currentPremium,referralCode) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#565-572)
	- ReserveDataUpdated(reserveAddress,vars.newLiquidityRate,vars.newStableRate,vars.newVariableRate,reserve.liquidityIndex,reserve.variableBorrowIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#241-248)
		- _executeBorrow(ExecuteBorrowParams(vars.currentAsset,msg.sender,onBehalfOf,vars.currentAmount,modes[vars.i],vars.currentATokenAddress,referralCode,false)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#552-563)
Reentrancy in LendingPool.rebalanceStableBorrowRate(address,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#361-391):
	External calls:
	- reserve.updateState() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#378)
	- IStableDebtToken(address(stableDebtToken)).burn(user,stableDebt) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#380)
	- IStableDebtToken(address(stableDebtToken)).mint(user,user,stableDebt,reserve.currentStableBorrowRate) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#381-386)
	Event emitted after the call(s):
	- RebalanceStableBorrowRate(asset,user) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#390)
Reentrancy in LendingPool.repay(address,uint256,uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#249-301):
	External calls:
	- reserve.updateState() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#277)
	- IStableDebtToken(reserve.stableDebtTokenAddress).burn(onBehalfOf,paybackAmount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#280)
	- IVariableDebtToken(reserve.variableDebtTokenAddress).burn(onBehalfOf,paybackAmount,reserve.variableBorrowIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#282-286)
	- IERC20(asset).safeTransferFrom(msg.sender,aToken,paybackAmount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#296)
	Event emitted after the call(s):
	- Repay(asset,onBehalfOf,msg.sender,paybackAmount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#298)
Reentrancy in LendingPool.rescueTokens(address,address,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#582-585):
	External calls:
	- IERC20(token).safeTransfer(to,amount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#583)
	Event emitted after the call(s):
	- TokensRescued(token,to,amount) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#584)
Reentrancy in LendingPool.swapBorrowRateMode(address,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#308-350):
	External calls:
	- reserve.updateState() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#323)
	- IStableDebtToken(reserve.stableDebtTokenAddress).burn(msg.sender,stableDebt) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#326)
	- IVariableDebtToken(reserve.variableDebtTokenAddress).mint(msg.sender,msg.sender,stableDebt,reserve.variableBorrowIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#327-332)
	- IVariableDebtToken(reserve.variableDebtTokenAddress).burn(msg.sender,variableDebt,reserve.variableBorrowIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#334-338)
	- IStableDebtToken(reserve.stableDebtTokenAddress).mint(msg.sender,msg.sender,variableDebt,reserve.currentStableBorrowRate) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#339-344)
	Event emitted after the call(s):
	- Swap(asset,msg.sender,rateMode) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#349)
Reentrancy in LendingPool.withdraw(address,uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#155-197):
	External calls:
	- reserve.updateState() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#183)
	Event emitted after the call(s):
	- ReserveUsedAsCollateralDisabled(asset,msg.sender) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#189)
Reentrancy in LendingPool.withdraw(address,uint256,address) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#155-197):
	External calls:
	- reserve.updateState() (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#183)
	- IAToken(aToken).burn(msg.sender,to,amountToWithdraw,reserve.liquidityIndex) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#192)
	Event emitted after the call(s):
	- Withdraw(asset,msg.sender,to,amountToWithdraw) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#194)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
ReserveLogic.getNormalizedIncome(DataTypes.ReserveData) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#57-76) uses timestamp for comparisons
	Dangerous comparisons:
	- timestamp == uint40(block.timestamp) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#65)
ReserveLogic.getNormalizedDebt(DataTypes.ReserveData) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#85-104) uses timestamp for comparisons
	Dangerous comparisons:
	- timestamp == uint40(block.timestamp) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ReserveLogic.sol#93)
MathUtils.calculateCompoundedInterest(uint256,uint40,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/MathUtils.sol#45-70) uses timestamp for comparisons
	Dangerous comparisons:
	- exp == 0 (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/MathUtils.sol#53)
	- exp > 2 (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/MathUtils.sol#59)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
Address.isContract(address) (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/Address.sol#25-36) uses assembly
	- INLINE ASM (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/Address.sol#32-34)
VersionedInitializable.isConstructor() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#61-73) uses assembly
	- INLINE ASM (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#69-71)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.sendValue(address,uint256) (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/Address.sol#54-60) is never used and should be removed
Helpers.getUserCurrentDebtMemory(address,DataTypes.ReserveData) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/helpers/Helpers.sol#29-38) is never used and should be removed
ReserveConfiguration.getBorrowingEnabled(DataTypes.ReserveConfigurationMap) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#190-192) is never used and should be removed
ReserveConfiguration.getFlagsMemory(DataTypes.ReserveConfigurationMap) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#328-344) is never used and should be removed
ReserveConfiguration.getFrozen(DataTypes.ReserveConfigurationMap) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#170-172) is never used and should be removed
ReserveConfiguration.getLiquidationBonus(DataTypes.ReserveConfigurationMap) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#106-112) is never used and should be removed
ReserveConfiguration.getLiquidationThreshold(DataTypes.ReserveConfigurationMap) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#80-86) is never used and should be removed
ReserveConfiguration.getParamsMemory(DataTypes.ReserveConfigurationMap) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#303-321) is never used and should be removed
ReserveConfiguration.getStableRateBorrowingEnabled(DataTypes.ReserveConfigurationMap) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#213-219) is never used and should be removed
ReserveConfiguration.setActive(DataTypes.ReserveConfigurationMap,bool) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#139-143) is never used and should be removed
ReserveConfiguration.setBorrowingEnabled(DataTypes.ReserveConfigurationMap,bool) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#179-183) is never used and should be removed
ReserveConfiguration.setDecimals(DataTypes.ReserveConfigurationMap,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#119-123) is never used and should be removed
ReserveConfiguration.setFrozen(DataTypes.ReserveConfigurationMap,bool) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#159-163) is never used and should be removed
ReserveConfiguration.setLiquidationBonus(DataTypes.ReserveConfigurationMap,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#93-99) is never used and should be removed
ReserveConfiguration.setLiquidationThreshold(DataTypes.ReserveConfigurationMap,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#64-73) is never used and should be removed
ReserveConfiguration.setLtv(DataTypes.ReserveConfigurationMap,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#44-48) is never used and should be removed
ReserveConfiguration.setReserveFactor(DataTypes.ReserveConfigurationMap,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#226-235) is never used and should be removed
ReserveConfiguration.setStableRateBorrowingEnabled(DataTypes.ReserveConfigurationMap,bool) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/configuration/ReserveConfiguration.sol#199-206) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#39-49) is never used and should be removed
SafeMath.mod(uint256,uint256) (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/SafeMath.sol#140-142) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/SafeMath.sol#155-162) is never used and should be removed
ValidationLogic.validateLiquidationCall(DataTypes.ReserveData,DataTypes.ReserveData,DataTypes.UserConfigurationMap,uint256,uint256,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/ValidationLogic.sol#392-436) is never used and should be removed
WadRayMath.halfRay() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/WadRayMath.sol#39-41) is never used and should be removed
WadRayMath.halfWad() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/WadRayMath.sol#46-48) is never used and should be removed
WadRayMath.rayToWad(uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/WadRayMath.sol#117-123) is never used and should be removed
WadRayMath.wad() (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/WadRayMath.sol#32-34) is never used and should be removed
WadRayMath.wadMul(uint256,uint256) (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/WadRayMath.sol#56-64) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/Address.sol#54-60):
	- (success) = recipient.call{value: amount}() (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/Address.sol#58)
Low level call in SafeERC20.callOptionalReturn(IERC20,bytes) (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#51-63):
	- (success,returndata) = address(token).call(data) (src/contracts/v2EthPool/LendingPool/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#55)
Low level call in LendingPool.liquidationCall(address,address,address,uint256,bool) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#436-462):
	- (success,result) = collateralManager.delegatecall(abi.encodeWithSignature(liquidationCall(address,address,address,uint256,bool),collateralAsset,debtAsset,user,debtToCover,receiveAToken)) (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPool.sol#446-456)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Function IFlashLoanReceiver.ADDRESSES_PROVIDER() (src/contracts/v2EthPool/LendingPool/contracts/flashloan/interfaces/IFlashLoanReceiver.sol#22) is not in mixedCase
Function IFlashLoanReceiver.LENDING_POOL() (src/contracts/v2EthPool/LendingPool/contracts/flashloan/interfaces/IFlashLoanReceiver.sol#24) is not in mixedCase
Variable LendingPoolStorage._addressesProvider (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPoolStorage.sol#15) is not in mixedCase
Variable LendingPoolStorage._reserves (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPoolStorage.sol#17) is not in mixedCase
Variable LendingPoolStorage._usersConfig (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPoolStorage.sol#18) is not in mixedCase
Variable LendingPoolStorage._reservesList (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPoolStorage.sol#21) is not in mixedCase
Variable LendingPoolStorage._reservesCount (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPoolStorage.sol#23) is not in mixedCase
Variable LendingPoolStorage._paused (src/contracts/v2EthPool/LendingPool/contracts/protocol/lendingpool/LendingPoolStorage.sol#25) is not in mixedCase
Variable VersionedInitializable.______gap (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#76) is not in mixedCase
Struct GenericLogic.balanceDecreaseAllowedLocalVars (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/logic/GenericLogic.sol#30-41) is not in CapWords
Constant WadRayMath.halfWAD (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/WadRayMath.sol#14) is not in UPPER_CASE_WITH_UNDERSCORES
Constant WadRayMath.halfRAY (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/math/WadRayMath.sol#17) is not in UPPER_CASE_WITH_UNDERSCORES
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Variable Errors.LP_INCONSISTENT_FLASHLOAN_PARAMS (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/helpers/Errors.sol#55) is too similar to Errors.VL_INCONSISTENT_FLASHLOAN_PARAMS (src/contracts/v2EthPool/LendingPool/contracts/protocol/libraries/helpers/Errors.sol#100)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar
INFO:Slither:0x085e34722e04567df9e6d2c32e82fd74f3342e79 analyzed (28 contracts with 82 detectors), 111 result(s) found
Slither report for EACAggregatorProxy at `0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:283:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:273:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:284:7: Warning: This declaration shadows an existing declaration.
      int256 answer,
      ^-----------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:274:7: The shadowed declaration is here:
      int256 answer,
      ^-----------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:285:7: Warning: This declaration shadows an existing declaration.
      uint256 startedAt,
      ^---------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:275:7: The shadowed declaration is here:
      uint256 startedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:286:7: Warning: This declaration shadows an existing declaration.
      uint256 updatedAt,
      ^---------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:276:7: The shadowed declaration is here:
      uint256 updatedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:331:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:321:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:332:7: Warning: This declaration shadows an existing declaration.
      int256 answer,
      ^-----------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:322:7: The shadowed declaration is here:
      int256 answer,
      ^-----------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:333:7: Warning: This declaration shadows an existing declaration.
      uint256 startedAt,
      ^---------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:323:7: The shadowed declaration is here:
      uint256 startedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:334:7: Warning: This declaration shadows an existing declaration.
      uint256 updatedAt,
      ^---------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:324:7: The shadowed declaration is here:
      uint256 updatedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:513:5: Warning: This declaration shadows an existing declaration.
    uint16 phaseId = uint16(_roundId >> PHASE_OFFSET);
    ^------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:410:3: The shadowed declaration is here:
  function phaseId()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:525:7: Warning: This declaration shadows an existing declaration.
      uint16 phaseId
      ^------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:410:3: The shadowed declaration is here:
  function phaseId()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:495:3: Warning: Function state mutability can be restricted to pure
  function addPhase(
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:506:3: Warning: Function state mutability can be restricted to pure
  function parseIds(
  ^ (Relevant source part starts here and spans across multiple lines).


INFO:Detectors:
AggregatorProxy.proposedGetRoundData(uint80) (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#353-367) ignores return value by proposedAggregator.getRoundData(_roundId) (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#366)
AggregatorProxy.proposedLatestRoundData() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#380-394) ignores return value by proposedAggregator.latestRoundData() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#393)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
AggregatorProxy.getAnswer(uint256).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#189) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getAnswer(uint256).aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#190) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getTimestamp(uint256).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#214) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getTimestamp(uint256).aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#215) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getRoundData(uint80).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#280) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getRoundData(uint80).roundId_scope_0 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#283) shadows:
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
AggregatorProxy.getRoundData(uint80).answer_scope_1 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#284) shadows:
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
AggregatorProxy.getRoundData(uint80).startedAt_scope_2 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#285) shadows:
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
AggregatorProxy.getRoundData(uint80).updatedAt_scope_3 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#286) shadows:
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
AggregatorProxy.latestRoundData().roundId_scope_0 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#331) shadows:
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
AggregatorProxy.latestRoundData().answer_scope_1 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#332) shadows:
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
AggregatorProxy.latestRoundData().startedAt_scope_2 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#333) shadows:
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
AggregatorProxy.latestRoundData().updatedAt_scope_3 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#334) shadows:
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
AggregatorProxy.parseIds(uint256).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#513) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.addPhaseIds(uint80,int256,uint256,uint256,uint80,uint16).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#525) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#30) lacks a zero-check on :
		- pendingOwner = _to (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Parameter Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#30) is not in mixedCase
Parameter AggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#180) is not in mixedCase
Parameter AggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#205) is not in mixedCase
Parameter AggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#267) is not in mixedCase
Parameter AggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#353) is not in mixedCase
Parameter AggregatorProxy.proposeAggregator(address)._aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#459) is not in mixedCase
Parameter AggregatorProxy.confirmAggregator(address)._aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#473) is not in mixedCase
Parameter AggregatorProxy.setAggregator(address)._aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#487) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._phase (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#496) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._originalId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#497) is not in mixedCase
Parameter AggregatorProxy.parseIds(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#507) is not in mixedCase
Parameter EACAggregatorProxy.setController(address)._accessController (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#582) is not in mixedCase
Parameter EACAggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#638) is not in mixedCase
Parameter EACAggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#658) is not in mixedCase
Parameter EACAggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#710) is not in mixedCase
Parameter EACAggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#776) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x169e633a2d1e6c10dd91238ba11c4a708dfef37c analyzed (7 contracts with 82 detectors), 34 result(s) found
Slither report for InitializableImmutableAdminUpgradeabilityProxy at `0x311Bb771e4F8952E6Da169b425E7e92d6Ac45756` with implementation LendingPoolConfigurator at `0x3a95Ee42f080ff7289C8B4a14EB483a8644d7521`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x311bb771e4f8952e6da169b425e7e92d6ac45756-InitializableImmutableAdminUpgradeabilityProxy' running
Warning: contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol:16:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableImmutableAdminUpgradeabilityProxy is
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).


INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20-28) uses delegatecall to a input-controlled function id
	- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#controlled-delegatecall
INFO:Detectors:
BaseImmutableAdminUpgradeabilityProxy.constructor(address).admin (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#19) shadows:
	- BaseImmutableAdminUpgradeabilityProxy.admin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#34-36) (function)
InitializableImmutableAdminUpgradeabilityProxy.constructor(address).admin (contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol#15) shadows:
	- BaseImmutableAdminUpgradeabilityProxy.admin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#34-36) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) lacks a zero-check on :
		- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
BaseImmutableAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes).newImplementation (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#63) lacks a zero-check on :
		- (success) = newImplementation.delegatecall(data) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#69)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Modifier BaseImmutableAdminUpgradeabilityProxy.ifAdmin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#23-29) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Address.isContract(address) (contracts/dependencies/openzeppelin/contracts/Address.sol#25-36) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/contracts/Address.sol#32-34)
BaseUpgradeabilityProxy._implementation() (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#31-37) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#34-36)
BaseUpgradeabilityProxy._setImplementation(address) (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#52-64) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#61-63)
Proxy._delegate(address) (contracts/dependencies/openzeppelin/upgradeability/Proxy.sol#31-55) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/Proxy.sol#33-54)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60):
	- (success) = recipient.call{value: amount}() (contracts/dependencies/openzeppelin/contracts/Address.sol#58)
Low level call in InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20-28):
	- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
Low level call in BaseImmutableAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#63-71):
	- (success) = newImplementation.delegatecall(data) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#69)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._data (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Variable BaseImmutableAdminUpgradeabilityProxy.ADMIN (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#17) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x311bb771e4f8952e6da169b425e7e92d6ac45756 analyzed (6 contracts with 82 detectors), 17 result(s) found
Slither report for LendingPoolConfigurator at `0x3a95Ee42f080ff7289C8B4a14EB483a8644d7521`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x3a95ee42f080ff7289c8b4a14eb483a8644d7521-LendingPoolConfigurator' running
Warning: contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol:16:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableImmutableAdminUpgradeabilityProxy is
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).


INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20-28) uses delegatecall to a input-controlled function id
	- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#controlled-delegatecall
INFO:Detectors:
LendingPoolConfigurator._checkNoLiquidity(address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#552-561) uses a dangerous strict equality:
	- require(bool,string)(availableLiquidity == 0 && reserveData.currentLiquidityRate == 0,Errors.LPC_RESERVE_LIQUIDITY_NOT_0) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#557-560)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
INFO:Detectors:
LendingPoolConfigurator._upgradeTokenImplementation(address,address,address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#529-550) ignores return value by (decimals) = configuration.getParamsMemory() (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#539)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
BaseImmutableAdminUpgradeabilityProxy.constructor(address).admin (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#19) shadows:
	- BaseImmutableAdminUpgradeabilityProxy.admin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#34-36) (function)
InitializableImmutableAdminUpgradeabilityProxy.constructor(address).admin (contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol#15) shadows:
	- BaseImmutableAdminUpgradeabilityProxy.admin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#34-36) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) lacks a zero-check on :
		- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
BaseImmutableAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes).newImplementation (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#63) lacks a zero-check on :
		- (success) = newImplementation.delegatecall(data) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#69)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Modifier BaseImmutableAdminUpgradeabilityProxy.ifAdmin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#23-29) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Reentrancy in LendingPoolConfigurator.activateReserve(address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#421-429):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#426)
	Event emitted after the call(s):
	- ReserveActivated(asset) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#428)
Reentrancy in LendingPoolConfigurator.configureReserveAsCollateral(address,uint256,uint256,uint256) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#345-387):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#384)
	Event emitted after the call(s):
	- CollateralConfigurationChanged(asset,ltv,liquidationThreshold,liquidationBonus) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#386)
Reentrancy in LendingPoolConfigurator.deactivateReserve(address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#435-445):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#442)
	Event emitted after the call(s):
	- ReserveDeactivated(asset) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#444)
Reentrancy in LendingPoolConfigurator.disableBorrowingOnReserve(address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#327-334):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#332)
	Event emitted after the call(s):
	- BorrowingDisabledOnReserve(asset) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#333)
Reentrancy in LendingPoolConfigurator.disableReserveStableRate(address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#407-415):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#412)
	Event emitted after the call(s):
	- StableRateDisabledOnReserve(asset) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#414)
Reentrancy in LendingPoolConfigurator.enableBorrowingOnReserve(address,bool) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#309-321):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#318)
	Event emitted after the call(s):
	- BorrowingEnabledOnReserve(asset,stableBorrowRateEnabled) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#320)
Reentrancy in LendingPoolConfigurator.enableReserveStableRate(address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#393-401):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#398)
	Event emitted after the call(s):
	- StableRateEnabledOnReserve(asset) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#400)
Reentrancy in LendingPoolConfigurator.freezeReserve(address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#452-460):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#457)
	Event emitted after the call(s):
	- ReserveFrozen(asset) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#459)
Reentrancy in LendingPoolConfigurator.initReserve(address,address,address,uint8,address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#201-263):
	External calls:
	- aTokenProxyAddress = _initTokenWithProxy(aTokenImpl,underlyingAssetDecimals) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#231)
		- proxy.initialize(implementation,params) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#524)
	- stableDebtTokenProxyAddress = _initTokenWithProxy(stableDebtTokenImpl,underlyingAssetDecimals) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#233-234)
		- proxy.initialize(implementation,params) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#524)
	- variableDebtTokenProxyAddress = _initTokenWithProxy(variableDebtTokenImpl,underlyingAssetDecimals) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#236-237)
		- proxy.initialize(implementation,params) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#524)
	- pool.initReserve(asset,aTokenProxyAddress,stableDebtTokenProxyAddress,variableDebtTokenProxyAddress,interestRateStrategyAddress) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#239-245)
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#254)
	Event emitted after the call(s):
	- ReserveInitialized(asset,aTokenProxyAddress,stableDebtTokenProxyAddress,variableDebtTokenProxyAddress,interestRateStrategyAddress) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#256-262)
Reentrancy in LendingPoolConfigurator.setReserveFactor(address,uint256) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#481-489):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#486)
	Event emitted after the call(s):
	- ReserveFactorChanged(asset,reserveFactor) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#488)
Reentrancy in LendingPoolConfigurator.setReserveInterestRateStrategyAddress(address,address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#496-502):
	External calls:
	- pool.setReserveInterestRateStrategyAddress(asset,rateStrategyAddress) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#500)
	Event emitted after the call(s):
	- ReserveInterestRateStrategyChanged(asset,rateStrategyAddress) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#501)
Reentrancy in LendingPoolConfigurator.unfreezeReserve(address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#466-474):
	External calls:
	- pool.setConfiguration(asset,currentConfig.data) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#471)
	Event emitted after the call(s):
	- ReserveUnfrozen(asset) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#473)
Reentrancy in LendingPoolConfigurator.updateAToken(address,address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#270-276):
	External calls:
	- _upgradeTokenImplementation(asset,reserveData.aTokenAddress,implementation) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#273)
		- proxy.upgradeToAndCall(implementation,params) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#549)
	Event emitted after the call(s):
	- ATokenUpgraded(asset,reserveData.aTokenAddress,implementation) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#275)
Reentrancy in LendingPoolConfigurator.updateStableDebtToken(address,address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#283-289):
	External calls:
	- _upgradeTokenImplementation(asset,reserveData.stableDebtTokenAddress,implementation) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#286)
		- proxy.upgradeToAndCall(implementation,params) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#549)
	Event emitted after the call(s):
	- StableDebtTokenUpgraded(asset,reserveData.stableDebtTokenAddress,implementation) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#288)
Reentrancy in LendingPoolConfigurator.updateVariableDebtToken(address,address) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#296-302):
	External calls:
	- _upgradeTokenImplementation(asset,reserveData.variableDebtTokenAddress,implementation) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#299)
		- proxy.upgradeToAndCall(implementation,params) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#549)
	Event emitted after the call(s):
	- VariableDebtTokenUpgraded(asset,reserveData.variableDebtTokenAddress,implementation) (contracts/protocol/lendingpool/LendingPoolConfigurator.sol#301)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
Address.isContract(address) (contracts/dependencies/openzeppelin/contracts/Address.sol#25-36) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/contracts/Address.sol#32-34)
BaseUpgradeabilityProxy._implementation() (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#31-37) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#34-36)
BaseUpgradeabilityProxy._setImplementation(address) (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#52-64) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#61-63)
Proxy._delegate(address) (contracts/dependencies/openzeppelin/upgradeability/Proxy.sol#31-55) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/Proxy.sol#33-54)
VersionedInitializable.isConstructor() (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#61-73) uses assembly
	- INLINE ASM (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#69-71)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60) is never used and should be removed
PercentageMath.percentDiv(uint256,uint256) (contracts/protocol/libraries/math/PercentageMath.sol#43-53) is never used and should be removed
ReserveConfiguration.getActive(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#150-152) is never used and should be removed
ReserveConfiguration.getBorrowingEnabled(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#190-192) is never used and should be removed
ReserveConfiguration.getDecimals(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#130-132) is never used and should be removed
ReserveConfiguration.getFlags(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#251-269) is never used and should be removed
ReserveConfiguration.getFlagsMemory(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#328-344) is never used and should be removed
ReserveConfiguration.getFrozen(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#170-172) is never used and should be removed
ReserveConfiguration.getLiquidationBonus(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#106-112) is never used and should be removed
ReserveConfiguration.getLiquidationThreshold(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#80-86) is never used and should be removed
ReserveConfiguration.getLtv(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#55-57) is never used and should be removed
ReserveConfiguration.getParams(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#276-296) is never used and should be removed
ReserveConfiguration.getReserveFactor(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#242-244) is never used and should be removed
ReserveConfiguration.getStableRateBorrowingEnabled(DataTypes.ReserveConfigurationMap) (contracts/protocol/libraries/configuration/ReserveConfiguration.sol#213-219) is never used and should be removed
SafeMath.add(uint256,uint256) (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#27-32) is never used and should be removed
SafeMath.div(uint256,uint256) (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#101-103) is never used and should be removed
SafeMath.div(uint256,uint256,string) (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#116-127) is never used and should be removed
SafeMath.mod(uint256,uint256) (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#140-142) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#155-162) is never used and should be removed
SafeMath.mul(uint256,uint256) (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#76-88) is never used and should be removed
SafeMath.sub(uint256,uint256) (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#43-45) is never used and should be removed
SafeMath.sub(uint256,uint256,string) (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#56-65) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60):
	- (success) = recipient.call{value: amount}() (contracts/dependencies/openzeppelin/contracts/Address.sol#58)
Low level call in InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20-28):
	- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
Low level call in BaseImmutableAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#63-71):
	- (success) = newImplementation.delegatecall(data) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#69)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._data (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Function ITokenConfiguration.UNDERLYING_ASSET_ADDRESS() (contracts/interfaces/ITokenConfiguration.sol#11) is not in mixedCase
Function ITokenConfiguration.POOL() (contracts/interfaces/ITokenConfiguration.sol#13) is not in mixedCase
Variable BaseImmutableAdminUpgradeabilityProxy.ADMIN (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#17) is not in mixedCase
Variable VersionedInitializable.______gap (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#76) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Variable Errors.LP_INCONSISTENT_FLASHLOAN_PARAMS (contracts/protocol/libraries/helpers/Errors.sol#55) is too similar to Errors.VL_INCONSISTENT_FLASHLOAN_PARAMS (contracts/protocol/libraries/helpers/Errors.sol#100)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar
INFO:Slither:0x3a95ee42f080ff7289c8b4a14eb483a8644d7521 analyzed (18 contracts with 82 detectors), 60 result(s) found
Slither report for AccessControlledOffchainAggregator at `0x785433d8b06D77D68dF6be63944742130A4530d1`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x785433d8b06d77d68df6be63944742130a4530d1-AccessControlledOffchainAggregator' running
Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: OffchainAggregator.sol:462:7: Warning: This declaration shadows an existing declaration.
      uint64 latestTimestamp
      ^--------------------^
OffchainAggregator.sol:666:3: The shadowed declaration is here:
  function latestTimestamp()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: AccessControlledOffchainAggregator.sol:25:5: Warning: This declaration shadows an existing declaration.
    string memory description
    ^-----------------------^
AccessControlledOffchainAggregator.sol:108:3: The shadowed declaration is here:
  function description()
  ^ (Relevant source part starts here and spans across multiple lines).


INFO:Detectors:
OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623) passes array OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) by reference to OffchainAggregatorBilling.oracleRewards(bytes,uint16[31]) (OffchainAggregatorBilling.sol#392-406) which only takes arrays by value
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#modifying-storage-array-by-value
INFO:Detectors:
Reentrancy in OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei[oracle.index] = 1 (OffchainAggregatorBilling.sol#355)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts[oracle.index] = 1 (OffchainAggregatorBilling.sol#354)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei = gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#389)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts = observationsCounts (OffchainAggregatorBilling.sol#388)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#213-228):
	External calls:
	- payOracles() (OffchainAggregatorBilling.sol#225)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- setBillingInternal(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#226-227)
		- s_billing = Billing(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#198-199)
	OffchainAggregatorBilling.s_billing (OffchainAggregatorBilling.sol#66) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.getBilling() (OffchainAggregatorBilling.sol#238-257)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#189-202)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- delete s_oracles[signer] (OffchainAggregator.sol#165)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- delete s_oracles[transmitter] (OffchainAggregator.sol#166)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_signers[i]] = Oracle(uint8(i),Role.Signer) (OffchainAggregator.sol#176)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_transmitters[i]] = Oracle(uint8(i),Role.Transmitter) (OffchainAggregator.sol#182)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_signers.pop() (OffchainAggregator.sol#167)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_signers.push(_signers[i]) (OffchainAggregator.sol#183)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_transmitters.pop() (OffchainAggregator.sol#168)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
	- s_transmitters.push(_transmitters[i]) (OffchainAggregator.sol#184)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
Reentrancy in OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644):
	External calls:
	- validateAnswer(r.hotVars.latestAggregatorRoundId,median) (OffchainAggregator.sol#639)
		- av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
	State variables written after the call(s):
	- s_hotVars = r.hotVars (OffchainAggregator.sol#641)
	OffchainAggregator.s_hotVars (OffchainAggregator.sol#39) can be used in cross function reentrancies:
	- OffchainAggregator.latestAnswer() (OffchainAggregator.sol#653-661)
	- OffchainAggregator.latestConfigDetails() (OffchainAggregator.sol#235-245)
	- OffchainAggregator.latestRound() (OffchainAggregator.sol#679-687)
	- OffchainAggregator.latestRoundData() (OffchainAggregator.sol#791-817)
	- OffchainAggregator.latestTimestamp() (OffchainAggregator.sol#666-674)
	- OffchainAggregator.latestTransmissionDetails() (OffchainAggregator.sol#454-473)
	- OffchainAggregator.requestNewRound() (OffchainAggregator.sol#385-398)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
INFO:Detectors:
OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32).r (OffchainAggregator.sol#526) is a local variable never initialized
OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface).gas (OffchainAggregatorBilling.sol#163) is a local variable never initialized
OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface).counts (OffchainAggregatorBilling.sol#162) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
OffchainAggregator.validateAnswer(uint32,int256) (OffchainAggregator.sol#309-328) ignores return value by av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
AccessControlledOffchainAggregator.constructor(uint32,uint32,uint32,uint32,uint32,address,address,int192,int192,AccessControllerInterface,AccessControllerInterface,uint8,string).description (AccessControlledOffchainAggregator.sol#25) shadows:
	- AccessControlledOffchainAggregator.description() (AccessControlledOffchainAggregator.sol#108-116) (function)
	- OffchainAggregator.description() (OffchainAggregator.sol#740-748) (function)
	- AggregatorV3Interface.description() (AggregatorV3Interface.sol#7) (function)
OffchainAggregator.latestTransmissionDetails().latestAnswer (OffchainAggregator.sol#461) shadows:
	- OffchainAggregator.latestAnswer() (OffchainAggregator.sol#653-661) (function)
	- AggregatorInterface.latestAnswer() (AggregatorInterface.sol#5) (function)
OffchainAggregator.latestTransmissionDetails().latestTimestamp (OffchainAggregator.sol#462) shadows:
	- OffchainAggregator.latestTimestamp() (OffchainAggregator.sol#666-674) (function)
	- AggregatorInterface.latestTimestamp() (AggregatorInterface.sol#6) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (Owned.sol#30) lacks a zero-check on :
		- pendingOwner = _to (Owned.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358) has external calls inside a loop: require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
INFO:Detectors:
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- s_configCount += 1 (OffchainAggregator.sol#189)
	- s_hotVars.threshold = _threshold (OffchainAggregator.sol#186)
	- s_hotVars.latestConfigDigest = configDigestFromConfigData(address(this),configCount,_signers,_transmitters,_threshold,_encodedConfigVersion,_encoded) (OffchainAggregator.sol#192-200)
	- s_hotVars.latestEpochAndRound = 0 (OffchainAggregator.sol#201)
	- s_latestConfigBlockNumber = uint32(block.number) (OffchainAggregator.sol#188)
Reentrancy in OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644):
	External calls:
	- validateAnswer(r.hotVars.latestAggregatorRoundId,median) (OffchainAggregator.sol#639)
		- av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
	State variables written after the call(s):
	- reimburseAndRewardOracles(uint32(initialGas),r.observers) (OffchainAggregator.sol#643)
		- s_gasReimbursementsLinkWei[txOracle.index] = s_gasReimbursementsLinkWei[txOracle.index] + gasCostLinkWei + uint256(billing.linkGweiPerTransmission) * (1000000000) (OffchainAggregatorBilling.sol#615-617)
	- reimburseAndRewardOracles(uint32(initialGas),r.observers) (OffchainAggregator.sol#643)
		- s_oracleObservationsCounts = oracleRewards(observers,s_oracleObservationsCounts) (OffchainAggregatorBilling.sol#580-581)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2
INFO:Detectors:
Reentrancy in OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	Event emitted after the call(s):
	- OraclePaid(_transmitter,payee,linkWeiAmount) (OffchainAggregatorBilling.sol#356)
Reentrancy in OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	Event emitted after the call(s):
	- OraclePaid(transmitters[transmitteridx],payee,linkWeiAmount) (OffchainAggregatorBilling.sol#384)
Reentrancy in OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#213-228):
	External calls:
	- payOracles() (OffchainAggregatorBilling.sol#225)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	Event emitted after the call(s):
	- BillingSet(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#200-201)
		- setBillingInternal(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#226-227)
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	Event emitted after the call(s):
	- ConfigSet(previousConfigBlockNumber,configCount,_signers,_transmitters,_threshold,_encodedConfigVersion,_encoded) (OffchainAggregator.sol#203-211)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- delete s_oracles[signer] (OffchainAggregator.sol#165)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- delete s_oracles[transmitter] (OffchainAggregator.sol#166)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- s_signers.pop() (OffchainAggregator.sol#167)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- s_transmitters.pop() (OffchainAggregator.sol#168)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop
INFO:Detectors:
OffchainAggregator.decodeReport(bytes) (OffchainAggregator.sol#423-434) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Parameter AccessControlledOffchainAggregator.getAnswer(uint256)._roundId (AccessControlledOffchainAggregator.sol#82) is not in mixedCase
Parameter AccessControlledOffchainAggregator.getTimestamp(uint256)._roundId (AccessControlledOffchainAggregator.sol#93) is not in mixedCase
Parameter AccessControlledOffchainAggregator.getRoundData(uint80)._roundId (AccessControlledOffchainAggregator.sol#119) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._signers (OffchainAggregator.sol#150) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._transmitters (OffchainAggregator.sol#151) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._threshold (OffchainAggregator.sol#152) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._encodedConfigVersion (OffchainAggregator.sol#153) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._encoded (OffchainAggregator.sol#154) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._contractAddress (OffchainAggregator.sol#215) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._configCount (OffchainAggregator.sol#216) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._signers (OffchainAggregator.sol#217) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._transmitters (OffchainAggregator.sol#218) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._threshold (OffchainAggregator.sol#219) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._encodedConfigVersion (OffchainAggregator.sol#220) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._encodedConfig (OffchainAggregator.sol#221) is not in mixedCase
Parameter OffchainAggregator.setValidator(address)._newValidator (OffchainAggregator.sol#296) is not in mixedCase
Parameter OffchainAggregator.validateAnswer(uint32,int256)._aggregatorRoundId (OffchainAggregator.sol#310) is not in mixedCase
Parameter OffchainAggregator.validateAnswer(uint32,int256)._answer (OffchainAggregator.sol#311) is not in mixedCase
Parameter OffchainAggregator.setRequesterAccessController(AccessControllerInterface)._requesterAccessController (OffchainAggregator.sol#368) is not in mixedCase
Parameter OffchainAggregator.decodeReport(bytes)._report (OffchainAggregator.sol#423) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._report (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._rs (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._ss (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._report (OffchainAggregator.sol#511) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._rs (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._ss (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._rawVs (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.getAnswer(uint256)._roundId (OffchainAggregator.sol#693) is not in mixedCase
Parameter OffchainAggregator.getTimestamp(uint256)._roundId (OffchainAggregator.sol#708) is not in mixedCase
Parameter OffchainAggregator.getRoundData(uint80)._roundId (OffchainAggregator.sol#759) is not in mixedCase
Constant OffchainAggregator.maxUint32 (OffchainAggregator.sol#19) is not in UPPER_CASE_WITH_UNDERSCORES
Variable OffchainAggregator.s_hotVars (OffchainAggregator.sol#39) is not in mixedCase
Variable OffchainAggregator.s_transmissions (OffchainAggregator.sol#47) is not in mixedCase
Variable OffchainAggregator.s_configCount (OffchainAggregator.sol#51) is not in mixedCase
Variable OffchainAggregator.s_latestConfigBlockNumber (OffchainAggregator.sol#52) is not in mixedCase
Variable OffchainAggregator.s_validator (OffchainAggregator.sol#268) is not in mixedCase
Variable OffchainAggregator.s_requesterAccessController (OffchainAggregator.sol#334) is not in mixedCase
Variable OffchainAggregator.s_description (OffchainAggregator.sol#735) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._maximumGasPrice (OffchainAggregatorBilling.sol#190) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._reasonableGasPrice (OffchainAggregatorBilling.sol#191) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._microLinkPerEth (OffchainAggregatorBilling.sol#192) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._linkGweiPerObservation (OffchainAggregatorBilling.sol#193) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._linkGweiPerTransmission (OffchainAggregatorBilling.sol#194) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._maximumGasPrice (OffchainAggregatorBilling.sol#214) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._reasonableGasPrice (OffchainAggregatorBilling.sol#215) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._microLinkPerEth (OffchainAggregatorBilling.sol#216) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._linkGweiPerObservation (OffchainAggregatorBilling.sol#217) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._linkGweiPerTransmission (OffchainAggregatorBilling.sol#218) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingAccessControllerInternal(AccessControllerInterface)._billingAccessController (OffchainAggregatorBilling.sol#266) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingAccessController(AccessControllerInterface)._billingAccessController (OffchainAggregatorBilling.sol#284) is not in mixedCase
Parameter OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is not in mixedCase
Parameter OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is not in mixedCase
Parameter OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is not in mixedCase
Parameter OffchainAggregatorBilling.withdrawFunds(address,uint256)._recipient (OffchainAggregatorBilling.sol#496) is not in mixedCase
Parameter OffchainAggregatorBilling.withdrawFunds(address,uint256)._amount (OffchainAggregatorBilling.sol#496) is not in mixedCase
Parameter OffchainAggregatorBilling.oracleObservationCount(address)._signerOrTransmitter (OffchainAggregatorBilling.sol#559) is not in mixedCase
Parameter OffchainAggregatorBilling.setPayees(address[],address[])._transmitters (OffchainAggregatorBilling.sol#660) is not in mixedCase
Parameter OffchainAggregatorBilling.setPayees(address[],address[])._payees (OffchainAggregatorBilling.sol#661) is not in mixedCase
Parameter OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) is not in mixedCase
Parameter OffchainAggregatorBilling.transferPayeeship(address,address)._proposed (OffchainAggregatorBilling.sol#690) is not in mixedCase
Parameter OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is not in mixedCase
Parameter OffchainAggregatorBilling.saturatingAddUint16(uint16,uint16)._x (OffchainAggregatorBilling.sol#728) is not in mixedCase
Parameter OffchainAggregatorBilling.saturatingAddUint16(uint16,uint16)._y (OffchainAggregatorBilling.sol#728) is not in mixedCase
Constant OffchainAggregatorBilling.maxNumOracles (OffchainAggregatorBilling.sol#45) is not in UPPER_CASE_WITH_UNDERSCORES
Variable OffchainAggregatorBilling.s_billing (OffchainAggregatorBilling.sol#66) is not in mixedCase
Variable OffchainAggregatorBilling.LINK (OffchainAggregatorBilling.sol#71) is not in mixedCase
Variable OffchainAggregatorBilling.s_billingAccessController (OffchainAggregatorBilling.sol#73) is not in mixedCase
Variable OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) is not in mixedCase
Variable OffchainAggregatorBilling.s_payees (OffchainAggregatorBilling.sol#87-89) is not in mixedCase
Variable OffchainAggregatorBilling.s_proposedPayees (OffchainAggregatorBilling.sol#92-94) is not in mixedCase
Variable OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) is not in mixedCase
Variable OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) is not in mixedCase
Variable OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) is not in mixedCase
Variable OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) is not in mixedCase
Constant OffchainAggregatorBilling.maxUint16 (OffchainAggregatorBilling.sol#145) is not in UPPER_CASE_WITH_UNDERSCORES
Constant OffchainAggregatorBilling.maxUint128 (OffchainAggregatorBilling.sol#146) is not in UPPER_CASE_WITH_UNDERSCORES
Constant OffchainAggregatorBilling.accountingGasCost (OffchainAggregatorBilling.sol#435) is not in UPPER_CASE_WITH_UNDERSCORES
Parameter Owned.transferOwnership(address)._to (Owned.sol#30) is not in mixedCase
Parameter SimpleReadAccessController.hasAccess(address,bytes)._user (SimpleReadAccessController.sol#24) is not in mixedCase
Parameter SimpleReadAccessController.hasAccess(address,bytes)._calldata (SimpleReadAccessController.sol#25) is not in mixedCase
Parameter SimpleWriteAccessController.hasAccess(address,bytes)._user (SimpleWriteAccessController.sol#34) is not in mixedCase
Parameter SimpleWriteAccessController.addAccess(address)._user (SimpleWriteAccessController.sol#50) is not in mixedCase
Parameter SimpleWriteAccessController.addAccessInternal(address)._user (SimpleWriteAccessController.sol#54) is not in mixedCase
Parameter SimpleWriteAccessController.removeAccess(address)._user (SimpleWriteAccessController.sol#65) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Variable OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar
INFO:Slither:0x785433d8b06d77d68df6be63944742130a4530d1 analyzed (12 contracts with 82 detectors), 120 result(s) found
Slither report for InitializableImmutableAdminUpgradeabilityProxy at `0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9` with implementation LendingPool at `0x085E34722e04567Df9E6d2c32e82fd74f3342e79`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x7d2768de32b0b80b7a3454c06bdac94a69ddc7a9-InitializableImmutableAdminUpgradeabilityProxy' running
Warning: contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol:16:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableImmutableAdminUpgradeabilityProxy is
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).


INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20-28) uses delegatecall to a input-controlled function id
	- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#controlled-delegatecall
INFO:Detectors:
BaseImmutableAdminUpgradeabilityProxy.constructor(address).admin (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#19) shadows:
	- BaseImmutableAdminUpgradeabilityProxy.admin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#34-36) (function)
InitializableImmutableAdminUpgradeabilityProxy.constructor(address).admin (contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol#15) shadows:
	- BaseImmutableAdminUpgradeabilityProxy.admin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#34-36) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) lacks a zero-check on :
		- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
BaseImmutableAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes).newImplementation (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#63) lacks a zero-check on :
		- (success) = newImplementation.delegatecall(data) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#69)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Modifier BaseImmutableAdminUpgradeabilityProxy.ifAdmin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#23-29) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Address.isContract(address) (contracts/dependencies/openzeppelin/contracts/Address.sol#25-36) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/contracts/Address.sol#32-34)
BaseUpgradeabilityProxy._implementation() (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#31-37) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#34-36)
BaseUpgradeabilityProxy._setImplementation(address) (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#52-64) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#61-63)
Proxy._delegate(address) (contracts/dependencies/openzeppelin/upgradeability/Proxy.sol#31-55) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/Proxy.sol#33-54)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60):
	- (success) = recipient.call{value: amount}() (contracts/dependencies/openzeppelin/contracts/Address.sol#58)
Low level call in InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20-28):
	- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
Low level call in BaseImmutableAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#63-71):
	- (success) = newImplementation.delegatecall(data) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#69)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._data (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Variable BaseImmutableAdminUpgradeabilityProxy.ADMIN (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#17) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x7d2768de32b0b80b7a3454c06bdac94a69ddc7a9 analyzed (6 contracts with 82 detectors), 17 result(s) found
Slither report for InitializableAdminUpgradeabilityProxy (Aave) at `0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9` with implementation AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9-InitializableAdminUpgradeabilityProxy' running
Warning: contracts/open-zeppelin/Address.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/BaseUpgradeabilityProxy.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/Proxy.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/SafeMath.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/UpgradeabilityProxy.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

Warning: contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol:13:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/open-zeppelin/Proxy.sol:15:3: The payable fallback function is defined here.
  fallback () payable external {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/open-zeppelin/Proxy.sol:15:3: The payable fallback function is defined here.
  fallback () payable external {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/open-zeppelin/InitializableAdminUpgradeabilityProxy.sol:12:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableAdminUpgradeabilityProxy is BaseAdminUpgradeabilityProxy, InitializableUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/open-zeppelin/Proxy.sol:15:3: The payable fallback function is defined here.
  fallback () payable external {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/utils/MockTransferHook.sol:9:25: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function onTransfer(address from, address to, uint256 amount) external override {
                        ^----------^

Warning: contracts/utils/MockTransferHook.sol:9:39: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function onTransfer(address from, address to, uint256 amount) external override {
                                      ^--------^

Warning: contracts/utils/MockTransferHook.sol:9:51: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    function onTransfer(address from, address to, uint256 amount) external override {
                                                  ^------------^


INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#20-28) uses delegatecall to a input-controlled function id
	- (success) = _logic.delegatecall(_data) (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#25)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#controlled-delegatecall
INFO:Detectors:
LendToAaveMigrator.migrateFromLEND(uint256) (contracts/token/LendToAaveMigrator.sol#61-68) ignores return value by LEND.transferFrom(msg.sender,address(this),amount) (contracts/token/LendToAaveMigrator.sol#65)
LendToAaveMigrator.migrateFromLEND(uint256) (contracts/token/LendToAaveMigrator.sol#61-68) ignores return value by AAVE.transfer(msg.sender,amount.div(LEND_AAVE_RATIO)) (contracts/token/LendToAaveMigrator.sol#66)
DoubleTransferHelper.doubleSend(address,uint256,uint256) (contracts/utils/DoubleTransferHelper.sol#14-17) ignores return value by AAVE.transfer(to,amount1) (contracts/utils/DoubleTransferHelper.sol#15)
DoubleTransferHelper.doubleSend(address,uint256,uint256) (contracts/utils/DoubleTransferHelper.sol#14-17) ignores return value by AAVE.transfer(to,amount2) (contracts/utils/DoubleTransferHelper.sol#16)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unchecked-transfer
INFO:Detectors:
AaveToken._writeSnapshot(address,uint128,uint128) (contracts/token/AaveToken.sol#138-153) uses a dangerous strict equality:
	- ownerCountOfSnapshots != 0 && snapshotsOwner[ownerCountOfSnapshots.sub(1)].blockNumber == currentBlock (contracts/token/AaveToken.sol#145)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
INFO:Detectors:
Reentrancy in AaveToken.initialize(address,address,ITransferHook) (contracts/token/AaveToken.sol#59-85):
	External calls:
	- _mint(migrator,MIGRATION_AMOUNT) (contracts/token/AaveToken.sol#83)
		- aaveGovernance.onTransfer(from,to,amount) (contracts/token/AaveToken.sol#181)
	- _mint(distributor,DISTRIBUTION_AMOUNT) (contracts/token/AaveToken.sol#84)
		- aaveGovernance.onTransfer(from,to,amount) (contracts/token/AaveToken.sol#181)
	State variables written after the call(s):
	- _mint(distributor,DISTRIBUTION_AMOUNT) (contracts/token/AaveToken.sol#84)
		- _balances[account] = _balances[account].add(amount) (contracts/open-zeppelin/ERC20.sol#235)
	ERC20._balances (contracts/open-zeppelin/ERC20.sol#38) can be used in cross function reentrancies:
	- ERC20._mint(address,uint256) (contracts/open-zeppelin/ERC20.sol#229-237)
	- ERC20._transfer(address,address,uint256) (contracts/open-zeppelin/ERC20.sol#209-218)
	- ERC20.balanceOf(address) (contracts/open-zeppelin/ERC20.sol#105-107)
	- _mint(distributor,DISTRIBUTION_AMOUNT) (contracts/token/AaveToken.sol#84)
		- _countsSnapshots[owner] = ownerCountOfSnapshots.add(1) (contracts/token/AaveToken.sol#149)
	AaveToken._countsSnapshots (contracts/token/AaveToken.sol#38) can be used in cross function reentrancies:
	- AaveToken._countsSnapshots (contracts/token/AaveToken.sol#38)
	- AaveToken._writeSnapshot(address,uint128,uint128) (contracts/token/AaveToken.sol#138-153)
	- _mint(distributor,DISTRIBUTION_AMOUNT) (contracts/token/AaveToken.sol#84)
		- snapshotsOwner[ownerCountOfSnapshots.sub(1)].value = newValue (contracts/token/AaveToken.sol#146)
		- snapshotsOwner[ownerCountOfSnapshots] = Snapshot(currentBlock,newValue) (contracts/token/AaveToken.sol#148)
	AaveToken._snapshots (contracts/token/AaveToken.sol#36) can be used in cross function reentrancies:
	- AaveToken._snapshots (contracts/token/AaveToken.sol#36)
	- AaveToken._writeSnapshot(address,uint128,uint128) (contracts/token/AaveToken.sol#138-153)
	- _mint(distributor,DISTRIBUTION_AMOUNT) (contracts/token/AaveToken.sol#84)
		- _totalSupply = _totalSupply.add(amount) (contracts/open-zeppelin/ERC20.sol#234)
	ERC20._totalSupply (contracts/open-zeppelin/ERC20.sol#42) can be used in cross function reentrancies:
	- ERC20._mint(address,uint256) (contracts/open-zeppelin/ERC20.sol#229-237)
	- ERC20.totalSupply() (contracts/open-zeppelin/ERC20.sol#98-100)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
INFO:Detectors:
ERC20.constructor(string,string).name (contracts/open-zeppelin/ERC20.sol#57) shadows:
	- ERC20.name() (contracts/open-zeppelin/ERC20.sol#66-68) (function)
ERC20.constructor(string,string).symbol (contracts/open-zeppelin/ERC20.sol#57) shadows:
	- ERC20.symbol() (contracts/open-zeppelin/ERC20.sol#74-76) (function)
InitializableAdminUpgradeabilityProxy.initialize(address,address,bytes)._admin (contracts/open-zeppelin/InitializableAdminUpgradeabilityProxy.sol#22) shadows:
	- BaseAdminUpgradeabilityProxy._admin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#94-99) (function)
MintableErc20.constructor(string,string,uint8).name (contracts/utils/MintableErc20.sol#11) shadows:
	- ERC20.name() (contracts/open-zeppelin/ERC20.sol#66-68) (function)
MintableErc20.constructor(string,string,uint8).symbol (contracts/utils/MintableErc20.sol#11) shadows:
	- ERC20.symbol() (contracts/open-zeppelin/ERC20.sol#74-76) (function)
MintableErc20.constructor(string,string,uint8).decimals (contracts/utils/MintableErc20.sol#11) shadows:
	- ERC20.decimals() (contracts/open-zeppelin/ERC20.sol#91-93) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#20) lacks a zero-check on :
		- (success) = _logic.delegatecall(_data) (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#25)
BaseAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes).newImplementation (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#85) lacks a zero-check on :
		- (success) = newImplementation.delegatecall(data) (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#87)
UpgradeabilityProxy.constructor(address,bytes)._logic (contracts/open-zeppelin/UpgradeabilityProxy.sol#19) lacks a zero-check on :
		- (success) = _logic.delegatecall(_data) (contracts/open-zeppelin/UpgradeabilityProxy.sol#23)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Modifier BaseAdminUpgradeabilityProxy.ifAdmin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#34-40) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Reentrancy in AaveToken.initialize(address,address,ITransferHook) (contracts/token/AaveToken.sol#59-85):
	External calls:
	- _mint(migrator,MIGRATION_AMOUNT) (contracts/token/AaveToken.sol#83)
		- aaveGovernance.onTransfer(from,to,amount) (contracts/token/AaveToken.sol#181)
	- _mint(distributor,DISTRIBUTION_AMOUNT) (contracts/token/AaveToken.sol#84)
		- aaveGovernance.onTransfer(from,to,amount) (contracts/token/AaveToken.sol#181)
	Event emitted after the call(s):
	- SnapshotDone(owner,oldValue,newValue) (contracts/token/AaveToken.sol#152)
		- _mint(distributor,DISTRIBUTION_AMOUNT) (contracts/token/AaveToken.sol#84)
	- Transfer(address(0),account,amount) (contracts/open-zeppelin/ERC20.sol#236)
		- _mint(distributor,DISTRIBUTION_AMOUNT) (contracts/token/AaveToken.sol#84)
Reentrancy in LendToAaveMigrator.migrateFromLEND(uint256) (contracts/token/LendToAaveMigrator.sol#61-68):
	External calls:
	- LEND.transferFrom(msg.sender,address(this),amount) (contracts/token/LendToAaveMigrator.sol#65)
	- AAVE.transfer(msg.sender,amount.div(LEND_AAVE_RATIO)) (contracts/token/LendToAaveMigrator.sol#66)
	Event emitted after the call(s):
	- LendMigrated(msg.sender,amount) (contracts/token/LendToAaveMigrator.sol#67)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
AaveToken.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/token/AaveToken.sol#98-123) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp <= deadline,INVALID_EXPIRATION) (contracts/token/AaveToken.sol#109)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
Address.isContract(address) (contracts/open-zeppelin/Address.sol#24-33) uses assembly
	- INLINE ASM (contracts/open-zeppelin/Address.sol#31)
BaseAdminUpgradeabilityProxy._admin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#94-99) uses assembly
	- INLINE ASM (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#96-98)
BaseAdminUpgradeabilityProxy._setAdmin(address) (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#105-111) uses assembly
	- INLINE ASM (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#108-110)
BaseUpgradeabilityProxy._implementation() (contracts/open-zeppelin/BaseUpgradeabilityProxy.sol#30-35) uses assembly
	- INLINE ASM (contracts/open-zeppelin/BaseUpgradeabilityProxy.sol#32-34)
BaseUpgradeabilityProxy._setImplementation(address) (contracts/open-zeppelin/BaseUpgradeabilityProxy.sol#50-58) uses assembly
	- INLINE ASM (contracts/open-zeppelin/BaseUpgradeabilityProxy.sol#55-57)
Proxy._delegate(address) (contracts/open-zeppelin/Proxy.sol#30-49) uses assembly
	- INLINE ASM (contracts/open-zeppelin/Proxy.sol#31-48)
AaveToken.initialize(address,address,ITransferHook) (contracts/token/AaveToken.sol#59-85) uses assembly
	- INLINE ASM (contracts/token/AaveToken.sol#68-70)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.sendValue(address,uint256) (contracts/open-zeppelin/Address.sol#51-57) is never used and should be removed
Context._msgData() (contracts/open-zeppelin/Context.sol#20-23) is never used and should be removed
ERC20._burn(address,uint256) (contracts/open-zeppelin/ERC20.sol#250-258) is never used and should be removed
SafeMath.mod(uint256,uint256) (contracts/open-zeppelin/SafeMath.sol#131-133) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (contracts/open-zeppelin/SafeMath.sol#146-149) is never used and should be removed
SafeMath.mul(uint256,uint256) (contracts/open-zeppelin/SafeMath.sol#71-83) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (contracts/open-zeppelin/Address.sol#51-57):
	- (success) = recipient.call{value: amount}() (contracts/open-zeppelin/Address.sol#55)
Low level call in BaseAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#85-89):
	- (success) = newImplementation.delegatecall(data) (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#87)
Low level call in InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#20-28):
	- (success) = _logic.delegatecall(_data) (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#25)
Low level call in UpgradeabilityProxy.constructor(address,bytes) (contracts/open-zeppelin/UpgradeabilityProxy.sol#19-26):
	- (success) = _logic.delegatecall(_data) (contracts/open-zeppelin/UpgradeabilityProxy.sol#23)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
DoubleTransferHelper (contracts/utils/DoubleTransferHelper.sol#6-19) should inherit from VersionedInitializable (contracts/utils/VersionedInitializable.sol#18-44)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-inheritance
INFO:Detectors:
Variable ERC20._name (contracts/open-zeppelin/ERC20.sol#44) is not in mixedCase
Variable ERC20._symbol (contracts/open-zeppelin/ERC20.sol#45) is not in mixedCase
Parameter InitializableAdminUpgradeabilityProxy.initialize(address,address,bytes)._logic (contracts/open-zeppelin/InitializableAdminUpgradeabilityProxy.sol#22) is not in mixedCase
Parameter InitializableAdminUpgradeabilityProxy.initialize(address,address,bytes)._admin (contracts/open-zeppelin/InitializableAdminUpgradeabilityProxy.sol#22) is not in mixedCase
Parameter InitializableAdminUpgradeabilityProxy.initialize(address,address,bytes)._data (contracts/open-zeppelin/InitializableAdminUpgradeabilityProxy.sol#22) is not in mixedCase
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._data (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Variable AaveToken._nonces (contracts/token/AaveToken.sol#34) is not in mixedCase
Variable AaveToken._snapshots (contracts/token/AaveToken.sol#36) is not in mixedCase
Variable AaveToken._countsSnapshots (contracts/token/AaveToken.sol#38) is not in mixedCase
Variable AaveToken._aaveGovernance (contracts/token/AaveToken.sol#43) is not in mixedCase
Variable AaveToken.DOMAIN_SEPARATOR (contracts/token/AaveToken.sol#45) is not in mixedCase
Variable LendToAaveMigrator.AAVE (contracts/token/LendToAaveMigrator.sol#17) is not in mixedCase
Variable LendToAaveMigrator.LEND (contracts/token/LendToAaveMigrator.sol#18) is not in mixedCase
Variable LendToAaveMigrator.LEND_AAVE_RATIO (contracts/token/LendToAaveMigrator.sol#19) is not in mixedCase
Variable LendToAaveMigrator._totalLendMigrated (contracts/token/LendToAaveMigrator.sol#22) is not in mixedCase
Variable DoubleTransferHelper.AAVE (contracts/utils/DoubleTransferHelper.sol#8) is not in mixedCase
Variable VersionedInitializable.______gap (contracts/utils/VersionedInitializable.sol#43) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Redundant expression "this (contracts/open-zeppelin/Context.sol#21)" inContext (contracts/open-zeppelin/Context.sol#15-25)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements
INFO:Slither:0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9 analyzed (19 contracts with 82 detectors), 57 result(s) found
Slither report for AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x96f68837877fd0414b55050c9e794aecdbcfca59-AaveTokenV2' running
Warning: src/contracts/AaveTokenV2.sol:453:18: Warning: This declaration shadows an existing declaration.
    constructor (string memory name, string memory symbol) public {
                 ^----------------^
src/contracts/AaveTokenV2.sol:462:5: The shadowed declaration is here:
    function name() public view returns (string memory) {
    ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:453:38: Warning: This declaration shadows an existing declaration.
    constructor (string memory name, string memory symbol) public {
                                     ^------------------^
src/contracts/AaveTokenV2.sol:470:5: The shadowed declaration is here:
    function symbol() public view returns (string memory) {
    ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:35:3: Warning: Interface functions are implicitly "virtual"
  function delegateByType(address delegatee, DelegationType delegationType) external virtual;
  ^-----------------------------------------------------------------------------------------^

Warning: src/contracts/AaveTokenV2.sol:40:3: Warning: Interface functions are implicitly "virtual"
  function delegate(address delegatee) external virtual;
  ^----------------------------------------------------^

Warning: src/contracts/AaveTokenV2.sol:45:3: Warning: Interface functions are implicitly "virtual"
  function getDelegateeByType(address delegator, DelegationType delegationType)
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:56:3: Warning: Interface functions are implicitly "virtual"
  function getPowerCurrent(address user, DelegationType delegationType)
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:66:3: Warning: Interface functions are implicitly "virtual"
  function getPowerAtBlock(
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:75:3: Warning: Interface functions are implicitly "virtual"
  function totalSupplyAt(uint256 blockNumber) external virtual view returns (uint256);
  ^----------------------------------------------------------------------------------^

Warning: src/contracts/AaveTokenV2.sol:453:5: Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it "abstract" is sufficient.
    constructor (string memory name, string memory symbol) public {
    ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:1164:3: Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it "abstract" is sufficient.
  constructor() ERC20(NAME, SYMBOL) public {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: src/contracts/AaveTokenV2.sol:913:26: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
  function totalSupplyAt(uint256 blockNumber) external override view returns (uint256) {
                         ^-----------------^

Warning: src/contracts/AaveTokenV2.sol:1079:5: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
    uint128 oldValue,
    ^--------------^


INFO:Detectors:
AaveTokenV2._votingSnapshots (src/contracts/AaveTokenV2.sol#1137) is never initialized. It is used in:
	- AaveTokenV2._getDelegationDataByType(IGovernancePowerDelegationToken.DelegationType) (src/contracts/AaveTokenV2.sol#1268-1287)
AaveTokenV2._votingSnapshotsCounts (src/contracts/AaveTokenV2.sol#1139) is never initialized. It is used in:
	- AaveTokenV2._getDelegationDataByType(IGovernancePowerDelegationToken.DelegationType) (src/contracts/AaveTokenV2.sol#1268-1287)
AaveTokenV2._aaveGovernance (src/contracts/AaveTokenV2.sol#1144) is never initialized. It is used in:
	- AaveTokenV2._beforeTokenTransfer(address,address,uint256) (src/contracts/AaveTokenV2.sol#1236-1266)
AaveTokenV2.DOMAIN_SEPARATOR (src/contracts/AaveTokenV2.sol#1146) is never initialized. It is used in:
	- AaveTokenV2.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1194-1218)
	- AaveTokenV2.delegateByTypeBySig(address,IGovernancePowerDelegationToken.DelegationType,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1299-1317)
	- AaveTokenV2.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1328-1344)
AaveTokenV2._propositionPowerSnapshots (src/contracts/AaveTokenV2.sol#1157) is never initialized. It is used in:
	- AaveTokenV2._getDelegationDataByType(IGovernancePowerDelegationToken.DelegationType) (src/contracts/AaveTokenV2.sol#1268-1287)
AaveTokenV2._propositionPowerSnapshotsCounts (src/contracts/AaveTokenV2.sol#1158) is never initialized. It is used in:
	- AaveTokenV2._getDelegationDataByType(IGovernancePowerDelegationToken.DelegationType) (src/contracts/AaveTokenV2.sol#1268-1287)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-state-variables
INFO:Detectors:
GovernancePowerDelegationERC20._searchByBlockNumber(mapping(address => mapping(uint256 => GovernancePowerDelegationERC20.Snapshot)),mapping(address => uint256),address,uint256) (src/contracts/AaveTokenV2.sol#1012-1050) uses a dangerous strict equality:
	- snapshot.blockNumber == blockNumber (src/contracts/AaveTokenV2.sol#1041)
GovernancePowerDelegationERC20._writeSnapshot(mapping(address => mapping(uint256 => GovernancePowerDelegationERC20.Snapshot)),mapping(address => uint256),address,uint128,uint128) (src/contracts/AaveTokenV2.sol#1075-1097) uses a dangerous strict equality:
	- ownerSnapshotsCount != 0 && snapshotsOwner[ownerSnapshotsCount - 1].blockNumber == currentBlock (src/contracts/AaveTokenV2.sol#1089-1090)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
INFO:Detectors:
ERC20.constructor(string,string).name (src/contracts/AaveTokenV2.sol#453) shadows:
	- ERC20.name() (src/contracts/AaveTokenV2.sol#462-464) (function)
ERC20.constructor(string,string).symbol (src/contracts/AaveTokenV2.sol#453) shadows:
	- ERC20.symbol() (src/contracts/AaveTokenV2.sol#470-472) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Reentrancy in AaveTokenV2.initialize(address[],uint256[],address,address,uint256) (src/contracts/AaveTokenV2.sol#1171-1181):
	External calls:
	- IERC20(tokens[i]).safeTransfer(aaveMerkleDistributor,amounts[i]) (src/contracts/AaveTokenV2.sol#1175)
	Event emitted after the call(s):
	- TokensRescued(tokens[i],aaveMerkleDistributor,amounts[i]) (src/contracts/AaveTokenV2.sol#1177)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
AaveTokenV2.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1194-1218) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp <= deadline,INVALID_EXPIRATION) (src/contracts/AaveTokenV2.sol#1205)
AaveTokenV2.delegateByTypeBySig(address,IGovernancePowerDelegationToken.DelegationType,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1299-1317) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp <= expiry,INVALID_EXPIRATION) (src/contracts/AaveTokenV2.sol#1315)
AaveTokenV2.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1328-1344) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp <= expiry,INVALID_EXPIRATION) (src/contracts/AaveTokenV2.sol#1341)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
Address.isContract(address) (src/contracts/AaveTokenV2.sol#368-379) uses assembly
	- INLINE ASM (src/contracts/AaveTokenV2.sol#375-377)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.sendValue(address,uint256) (src/contracts/AaveTokenV2.sol#397-403) is never used and should be removed
Context._msgData() (src/contracts/AaveTokenV2.sol#94-97) is never used and should be removed
ERC20._beforeTokenTransfer(address,address,uint256) (src/contracts/AaveTokenV2.sol#702) is never used and should be removed
ERC20._burn(address,uint256) (src/contracts/AaveTokenV2.sol#646-654) is never used and should be removed
ERC20._mint(address,uint256) (src/contracts/AaveTokenV2.sol#625-633) is never used and should be removed
ERC20._setupDecimals(uint8) (src/contracts/AaveTokenV2.sol#684-686) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (src/contracts/AaveTokenV2.sol#745-755) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (src/contracts/AaveTokenV2.sol#736-743) is never used and should be removed
SafeMath.div(uint256,uint256) (src/contracts/AaveTokenV2.sol#280-282) is never used and should be removed
SafeMath.div(uint256,uint256,string) (src/contracts/AaveTokenV2.sol#295-306) is never used and should be removed
SafeMath.mod(uint256,uint256) (src/contracts/AaveTokenV2.sol#319-321) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (src/contracts/AaveTokenV2.sol#334-341) is never used and should be removed
SafeMath.mul(uint256,uint256) (src/contracts/AaveTokenV2.sol#255-267) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (src/contracts/AaveTokenV2.sol#397-403):
	- (success) = recipient.call{value: amount}() (src/contracts/AaveTokenV2.sol#401)
Low level call in SafeERC20.callOptionalReturn(IERC20,bytes) (src/contracts/AaveTokenV2.sol#757-769):
	- (success,returndata) = address(token).call(data) (src/contracts/AaveTokenV2.sol#761)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Variable ERC20._name (src/contracts/AaveTokenV2.sol#440) is not in mixedCase
Variable ERC20._symbol (src/contracts/AaveTokenV2.sol#441) is not in mixedCase
Variable VersionedInitializable.______gap (src/contracts/AaveTokenV2.sol#809) is not in mixedCase
Variable AaveTokenV2._nonces (src/contracts/AaveTokenV2.sol#1135) is not in mixedCase
Variable AaveTokenV2._votingSnapshots (src/contracts/AaveTokenV2.sol#1137) is not in mixedCase
Variable AaveTokenV2._votingSnapshotsCounts (src/contracts/AaveTokenV2.sol#1139) is not in mixedCase
Variable AaveTokenV2._aaveGovernance (src/contracts/AaveTokenV2.sol#1144) is not in mixedCase
Variable AaveTokenV2.DOMAIN_SEPARATOR (src/contracts/AaveTokenV2.sol#1146) is not in mixedCase
Variable AaveTokenV2._votingDelegates (src/contracts/AaveTokenV2.sol#1155) is not in mixedCase
Variable AaveTokenV2._propositionPowerSnapshots (src/contracts/AaveTokenV2.sol#1157) is not in mixedCase
Variable AaveTokenV2._propositionPowerSnapshotsCounts (src/contracts/AaveTokenV2.sol#1158) is not in mixedCase
Variable AaveTokenV2._propositionPowerDelegates (src/contracts/AaveTokenV2.sol#1160) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Redundant expression "this (src/contracts/AaveTokenV2.sol#95)" inContext (src/contracts/AaveTokenV2.sol#89-98)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements
INFO:Detectors:
AaveTokenV2.DECIMALS (src/contracts/AaveTokenV2.sol#1130) is never used in AaveTokenV2 (src/contracts/AaveTokenV2.sol#1124-1346)
AaveTokenV2.EIP712_DOMAIN (src/contracts/AaveTokenV2.sol#1148-1150) is never used in AaveTokenV2 (src/contracts/AaveTokenV2.sol#1124-1346)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable
INFO:Slither:0x96f68837877fd0414b55050c9e794aecdbcfca59 analyzed (11 contracts with 82 detectors), 45 result(s) found
Slither report for EthRobotKeeper at `0x9EEa1Ba822d204077e9f90a92D30432417184587`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x9eea1ba822d204077e9f90a92d30432417184587-EthRobotKeeper' running
INFO:Detectors:
EthRobotKeeper._squeezeAndShuffleActions(IEthRobotKeeper.ActionWithId[],uint256) (src/contracts/EthRobotKeeper.sol#242-264) uses a weak PRNG: "n = i + (randomNumber % (actions.length - i)) (src/contracts/EthRobotKeeper.sol#257)"
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#weak-PRNG
INFO:Detectors:
EthRobotKeeper.performUpkeep(bytes).isActionPerformed (src/contracts/EthRobotKeeper.sol#117) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
EthRobotKeeper.constructor(address).governanceV2 (src/contracts/EthRobotKeeper.sol#34) lacks a zero-check on :
		- GOVERNANCE_V2 = governanceV2 (src/contracts/EthRobotKeeper.sol#35)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
EthRobotKeeper.checkUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#42-108) has external calls inside a loop: proposalState = IAaveGovernanceV2(GOVERNANCE_V2).getProposalState(proposalId) (src/contracts/EthRobotKeeper.sol#57-58)
EthRobotKeeper.checkUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#42-108) has external calls inside a loop: proposal = IAaveGovernanceV2(GOVERNANCE_V2).getProposalById(proposalId) (src/contracts/EthRobotKeeper.sol#59-60)
EthRobotKeeper._canProposalBeCancelled(IAaveGovernanceV2.ProposalState,IAaveGovernanceV2.ProposalWithoutVotes) (src/contracts/EthRobotKeeper.sol#216-234) has external calls inside a loop: proposalValidator.validateProposalCancellation(IAaveGovernanceV2(GOVERNANCE_V2),proposal.creator,block.number - 1) (src/contracts/EthRobotKeeper.sol#228-233)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: proposal = IAaveGovernanceV2(GOVERNANCE_V2).getProposalById(proposalId) (src/contracts/EthRobotKeeper.sol#124-125)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: proposalState = IAaveGovernanceV2(GOVERNANCE_V2).getProposalState(proposalId) (src/contracts/EthRobotKeeper.sol#126-127)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: IAaveGovernanceV2(GOVERNANCE_V2).cancel(proposalId) (src/contracts/EthRobotKeeper.sol#132)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: IAaveGovernanceV2(GOVERNANCE_V2).queue(proposalId) (src/contracts/EthRobotKeeper.sol#136)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: IAaveGovernanceV2(GOVERNANCE_V2).execute(proposalId) (src/contracts/EthRobotKeeper.sol#142)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
INFO:Detectors:
Reentrancy in EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149):
	External calls:
	- IAaveGovernanceV2(GOVERNANCE_V2).cancel(proposalId) (src/contracts/EthRobotKeeper.sol#132)
	- IAaveGovernanceV2(GOVERNANCE_V2).queue(proposalId) (src/contracts/EthRobotKeeper.sol#136)
	- IAaveGovernanceV2(GOVERNANCE_V2).execute(proposalId) (src/contracts/EthRobotKeeper.sol#142)
	Event emitted after the call(s):
	- ActionSucceeded(proposalId,action) (src/contracts/EthRobotKeeper.sol#134)
	- ActionSucceeded(proposalId,action) (src/contracts/EthRobotKeeper.sol#138)
	- ActionSucceeded(proposalId,action) (src/contracts/EthRobotKeeper.sol#144)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
EthRobotKeeper._canProposalBeExecuted(IAaveGovernanceV2.ProposalState,IAaveGovernanceV2.ProposalWithoutVotes) (src/contracts/EthRobotKeeper.sol#197-208) uses timestamp for comparisons
	Dangerous comparisons:
	- proposalState == IAaveGovernanceV2.ProposalState.Queued && block.timestamp >= proposal.executionTime (src/contracts/EthRobotKeeper.sol#202-203)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
EthRobotKeeper.checkUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#42-108) uses assembly
	- INLINE ASM (src/contracts/EthRobotKeeper.sol#92-94)
	- INLINE ASM (src/contracts/EthRobotKeeper.sol#101-103)
EthRobotKeeper._squeezeAndShuffleActions(IEthRobotKeeper.ActionWithId[],uint256) (src/contracts/EthRobotKeeper.sol#242-264) uses assembly
	- INLINE ASM (src/contracts/EthRobotKeeper.sol#248-250)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Context._msgData() (lib/solidity-utils/src/contracts/oz-common/Context.sol#22-24) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Function IExecutorWithTimelock.GRACE_PERIOD() (lib/aave-address-book/src/AaveGovernanceV2.sol#159) is not in mixedCase
Function IExecutorWithTimelock.MINIMUM_DELAY() (lib/aave-address-book/src/AaveGovernanceV2.sol#165) is not in mixedCase
Function IExecutorWithTimelock.MAXIMUM_DELAY() (lib/aave-address-book/src/AaveGovernanceV2.sol#171) is not in mixedCase
Function IAaveGovernanceV2.__abdicate() (lib/aave-address-book/src/AaveGovernanceV2.sol#444) is not in mixedCase
Variable EthRobotKeeper.GOVERNANCE_V2 (src/contracts/EthRobotKeeper.sol#19) is not in mixedCase
Variable EthRobotKeeper._disabledProposals (src/contracts/EthRobotKeeper.sol#27) is not in mixedCase
Function IAaveCLRobotOperator.LINK_TOKEN() (src/interfaces/IAaveCLRobotOperator.sol#133) is not in mixedCase
Function IAaveCLRobotOperator.KEEPER_REGISTRY() (src/interfaces/IAaveCLRobotOperator.sol#139) is not in mixedCase
Function IAaveCLRobotOperator.KEEPER_REGISTRAR() (src/interfaces/IAaveCLRobotOperator.sol#145) is not in mixedCase
Function IEthRobotKeeper.GOVERNANCE_V2() (src/interfaces/IEthRobotKeeper.sol#58) is not in mixedCase
Function IEthRobotKeeper.MAX_ACTIONS() (src/interfaces/IEthRobotKeeper.sol#65) is not in mixedCase
Function IEthRobotKeeper.MAX_SKIP() (src/interfaces/IEthRobotKeeper.sol#71) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x9eea1ba822d204077e9f90a92d30432417184587 analyzed (11 contracts with 82 detectors), 28 result(s) found
Slither report for LendingPoolAddressesProvider at `0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xb53c1a33016b2dc2ff3653530bff1848a515c8c5-LendingPoolAddressesProvider' running
Warning: contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol:16:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol:11:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableImmutableAdminUpgradeabilityProxy is
^ (Relevant source part starts here and spans across multiple lines).
contracts/dependencies/openzeppelin/upgradeability/Proxy.sol:16:3: The payable fallback function is defined here.
  fallback() external payable {
  ^ (Relevant source part starts here and spans across multiple lines).


INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20-28) uses delegatecall to a input-controlled function id
	- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#controlled-delegatecall
INFO:Detectors:
Reentrancy in LendingPoolAddressesProvider._updateImpl(bytes32,address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#194-209):
	External calls:
	- proxy.initialize(newAddress,params) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#203)
	State variables written after the call(s):
	- _addresses[id] = address(proxy) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#204)
	LendingPoolAddressesProvider._addresses (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#21) can be used in cross function reentrancies:
	- LendingPoolAddressesProvider._updateImpl(bytes32,address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#194-209)
	- LendingPoolAddressesProvider.getAddress(bytes32) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#84-86)
	- LendingPoolAddressesProvider.setAddress(bytes32,address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#75-78)
	- LendingPoolAddressesProvider.setEmergencyAdmin(address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#162-165)
	- LendingPoolAddressesProvider.setLendingPoolCollateralManager(address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#139-142)
	- LendingPoolAddressesProvider.setLendingRateOracle(address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#180-183)
	- LendingPoolAddressesProvider.setPoolAdmin(address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#153-156)
	- LendingPoolAddressesProvider.setPriceOracle(address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#171-174)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
INFO:Detectors:
BaseImmutableAdminUpgradeabilityProxy.constructor(address).admin (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#19) shadows:
	- BaseImmutableAdminUpgradeabilityProxy.admin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#34-36) (function)
InitializableImmutableAdminUpgradeabilityProxy.constructor(address).admin (contracts/protocol/libraries/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol#15) shadows:
	- BaseImmutableAdminUpgradeabilityProxy.admin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#34-36) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) lacks a zero-check on :
		- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
BaseImmutableAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes).newImplementation (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#63) lacks a zero-check on :
		- (success) = newImplementation.delegatecall(data) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#69)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Modifier BaseImmutableAdminUpgradeabilityProxy.ifAdmin() (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#23-29) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Reentrancy in LendingPoolAddressesProvider._updateImpl(bytes32,address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#194-209):
	External calls:
	- proxy.initialize(newAddress,params) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#203)
	Event emitted after the call(s):
	- ProxyCreated(id,address(proxy)) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#205)
Reentrancy in LendingPoolAddressesProvider.setAddressAsProxy(bytes32,address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#60-67):
	External calls:
	- _updateImpl(id,implementationAddress) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#65)
		- proxy.initialize(newAddress,params) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#203)
		- proxy.upgradeToAndCall(newAddress,params) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#207)
	Event emitted after the call(s):
	- AddressSet(id,implementationAddress,true) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#66)
Reentrancy in LendingPoolAddressesProvider.setLendingPoolConfiguratorImpl(address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#119-122):
	External calls:
	- _updateImpl(LENDING_POOL_CONFIGURATOR,configurator) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#120)
		- proxy.initialize(newAddress,params) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#203)
		- proxy.upgradeToAndCall(newAddress,params) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#207)
	Event emitted after the call(s):
	- LendingPoolConfiguratorUpdated(configurator) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#121)
Reentrancy in LendingPoolAddressesProvider.setLendingPoolImpl(address) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#101-104):
	External calls:
	- _updateImpl(LENDING_POOL,pool) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#102)
		- proxy.initialize(newAddress,params) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#203)
		- proxy.upgradeToAndCall(newAddress,params) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#207)
	Event emitted after the call(s):
	- LendingPoolUpdated(pool) (contracts/protocol/configuration/LendingPoolAddressesProvider.sol#103)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
Address.isContract(address) (contracts/dependencies/openzeppelin/contracts/Address.sol#25-36) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/contracts/Address.sol#32-34)
BaseUpgradeabilityProxy._implementation() (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#31-37) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#34-36)
BaseUpgradeabilityProxy._setImplementation(address) (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#52-64) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol#61-63)
Proxy._delegate(address) (contracts/dependencies/openzeppelin/upgradeability/Proxy.sol#31-55) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/upgradeability/Proxy.sol#33-54)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60) is never used and should be removed
Context._msgData() (contracts/dependencies/openzeppelin/contracts/Context.sol#19-22) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60):
	- (success) = recipient.call{value: amount}() (contracts/dependencies/openzeppelin/contracts/Address.sol#58)
Low level call in InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20-28):
	- (success) = _logic.delegatecall(_data) (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#25)
Low level call in BaseImmutableAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#63-71):
	- (success) = newImplementation.delegatecall(data) (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#69)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._logic (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Parameter InitializableUpgradeabilityProxy.initialize(address,bytes)._data (contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol#20) is not in mixedCase
Variable BaseImmutableAdminUpgradeabilityProxy.ADMIN (contracts/protocol/libraries/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol#17) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Redundant expression "this (contracts/dependencies/openzeppelin/contracts/Context.sol#20)" inContext (contracts/dependencies/openzeppelin/contracts/Context.sol#14-23)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements
INFO:Slither:0xb53c1a33016b2dc2ff3653530bff1848a515c8c5 analyzed (10 contracts with 82 detectors), 24 result(s) found
Slither report for GovernanceStrategy at `0xb7e383ef9B1E9189Fc0F71fb30af8aa14377429e`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
INFO:Detectors:
GovernanceStrategy.constructor(address,address).aave (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#78) lacks a zero-check on :
		- AAVE = aave (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#79)
GovernanceStrategy.constructor(address,address).stkAave (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#78) lacks a zero-check on :
		- STK_AAVE = stkAave (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#80)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Variable GovernanceStrategy.AAVE (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#70) is not in mixedCase
Variable GovernanceStrategy.STK_AAVE (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#71) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e analyzed (4 contracts with 82 detectors), 4 result(s) found
Slither report for AccessControlledOffchainAggregator at `0xbba12740DE905707251525477bAD74985DeC46D2`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xbba12740de905707251525477bad74985dec46d2-AccessControlledOffchainAggregator' running
Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: OffchainAggregator.sol:462:7: Warning: This declaration shadows an existing declaration.
      uint64 latestTimestamp
      ^--------------------^
OffchainAggregator.sol:666:3: The shadowed declaration is here:
  function latestTimestamp()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: AccessControlledOffchainAggregator.sol:25:5: Warning: This declaration shadows an existing declaration.
    string memory description
    ^-----------------------^
AccessControlledOffchainAggregator.sol:108:3: The shadowed declaration is here:
  function description()
  ^ (Relevant source part starts here and spans across multiple lines).


INFO:Detectors:
OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623) passes array OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) by reference to OffchainAggregatorBilling.oracleRewards(bytes,uint16[31]) (OffchainAggregatorBilling.sol#392-406) which only takes arrays by value
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#modifying-storage-array-by-value
INFO:Detectors:
Reentrancy in OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei[oracle.index] = 1 (OffchainAggregatorBilling.sol#355)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts[oracle.index] = 1 (OffchainAggregatorBilling.sol#354)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei = gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#389)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts = observationsCounts (OffchainAggregatorBilling.sol#388)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#213-228):
	External calls:
	- payOracles() (OffchainAggregatorBilling.sol#225)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- setBillingInternal(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#226-227)
		- s_billing = Billing(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#198-199)
	OffchainAggregatorBilling.s_billing (OffchainAggregatorBilling.sol#66) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.getBilling() (OffchainAggregatorBilling.sol#238-257)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#189-202)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- delete s_oracles[signer] (OffchainAggregator.sol#165)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- delete s_oracles[transmitter] (OffchainAggregator.sol#166)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_signers[i]] = Oracle(uint8(i),Role.Signer) (OffchainAggregator.sol#176)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_transmitters[i]] = Oracle(uint8(i),Role.Transmitter) (OffchainAggregator.sol#182)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_signers.pop() (OffchainAggregator.sol#167)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_signers.push(_signers[i]) (OffchainAggregator.sol#183)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_transmitters.pop() (OffchainAggregator.sol#168)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
	- s_transmitters.push(_transmitters[i]) (OffchainAggregator.sol#184)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
Reentrancy in OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644):
	External calls:
	- validateAnswer(r.hotVars.latestAggregatorRoundId,median) (OffchainAggregator.sol#639)
		- av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
	State variables written after the call(s):
	- s_hotVars = r.hotVars (OffchainAggregator.sol#641)
	OffchainAggregator.s_hotVars (OffchainAggregator.sol#39) can be used in cross function reentrancies:
	- OffchainAggregator.latestAnswer() (OffchainAggregator.sol#653-661)
	- OffchainAggregator.latestConfigDetails() (OffchainAggregator.sol#235-245)
	- OffchainAggregator.latestRound() (OffchainAggregator.sol#679-687)
	- OffchainAggregator.latestRoundData() (OffchainAggregator.sol#791-817)
	- OffchainAggregator.latestTimestamp() (OffchainAggregator.sol#666-674)
	- OffchainAggregator.latestTransmissionDetails() (OffchainAggregator.sol#454-473)
	- OffchainAggregator.requestNewRound() (OffchainAggregator.sol#385-398)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
INFO:Detectors:
OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface).counts (OffchainAggregatorBilling.sol#162) is a local variable never initialized
OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface).gas (OffchainAggregatorBilling.sol#163) is a local variable never initialized
OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32).r (OffchainAggregator.sol#526) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
OffchainAggregator.validateAnswer(uint32,int256) (OffchainAggregator.sol#309-328) ignores return value by av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
AccessControlledOffchainAggregator.constructor(uint32,uint32,uint32,uint32,uint32,address,address,int192,int192,AccessControllerInterface,AccessControllerInterface,uint8,string).description (AccessControlledOffchainAggregator.sol#25) shadows:
	- AccessControlledOffchainAggregator.description() (AccessControlledOffchainAggregator.sol#108-116) (function)
	- OffchainAggregator.description() (OffchainAggregator.sol#740-748) (function)
	- AggregatorV3Interface.description() (AggregatorV3Interface.sol#7) (function)
OffchainAggregator.latestTransmissionDetails().latestAnswer (OffchainAggregator.sol#461) shadows:
	- OffchainAggregator.latestAnswer() (OffchainAggregator.sol#653-661) (function)
	- AggregatorInterface.latestAnswer() (AggregatorInterface.sol#5) (function)
OffchainAggregator.latestTransmissionDetails().latestTimestamp (OffchainAggregator.sol#462) shadows:
	- OffchainAggregator.latestTimestamp() (OffchainAggregator.sol#666-674) (function)
	- AggregatorInterface.latestTimestamp() (AggregatorInterface.sol#6) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (Owned.sol#30) lacks a zero-check on :
		- pendingOwner = _to (Owned.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358) has external calls inside a loop: require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
INFO:Detectors:
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- s_configCount += 1 (OffchainAggregator.sol#189)
	- s_hotVars.threshold = _threshold (OffchainAggregator.sol#186)
	- s_hotVars.latestConfigDigest = configDigestFromConfigData(address(this),configCount,_signers,_transmitters,_threshold,_encodedConfigVersion,_encoded) (OffchainAggregator.sol#192-200)
	- s_hotVars.latestEpochAndRound = 0 (OffchainAggregator.sol#201)
	- s_latestConfigBlockNumber = uint32(block.number) (OffchainAggregator.sol#188)
Reentrancy in OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644):
	External calls:
	- validateAnswer(r.hotVars.latestAggregatorRoundId,median) (OffchainAggregator.sol#639)
		- av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
	State variables written after the call(s):
	- reimburseAndRewardOracles(uint32(initialGas),r.observers) (OffchainAggregator.sol#643)
		- s_gasReimbursementsLinkWei[txOracle.index] = s_gasReimbursementsLinkWei[txOracle.index] + gasCostLinkWei + uint256(billing.linkGweiPerTransmission) * (1000000000) (OffchainAggregatorBilling.sol#615-617)
	- reimburseAndRewardOracles(uint32(initialGas),r.observers) (OffchainAggregator.sol#643)
		- s_oracleObservationsCounts = oracleRewards(observers,s_oracleObservationsCounts) (OffchainAggregatorBilling.sol#580-581)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2
INFO:Detectors:
Reentrancy in OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	Event emitted after the call(s):
	- OraclePaid(_transmitter,payee,linkWeiAmount) (OffchainAggregatorBilling.sol#356)
Reentrancy in OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	Event emitted after the call(s):
	- OraclePaid(transmitters[transmitteridx],payee,linkWeiAmount) (OffchainAggregatorBilling.sol#384)
Reentrancy in OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#213-228):
	External calls:
	- payOracles() (OffchainAggregatorBilling.sol#225)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	Event emitted after the call(s):
	- BillingSet(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#200-201)
		- setBillingInternal(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#226-227)
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	Event emitted after the call(s):
	- ConfigSet(previousConfigBlockNumber,configCount,_signers,_transmitters,_threshold,_encodedConfigVersion,_encoded) (OffchainAggregator.sol#203-211)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- delete s_oracles[signer] (OffchainAggregator.sol#165)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- delete s_oracles[transmitter] (OffchainAggregator.sol#166)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- s_signers.pop() (OffchainAggregator.sol#167)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- s_transmitters.pop() (OffchainAggregator.sol#168)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop
INFO:Detectors:
OffchainAggregator.decodeReport(bytes) (OffchainAggregator.sol#423-434) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Parameter AccessControlledOffchainAggregator.getAnswer(uint256)._roundId (AccessControlledOffchainAggregator.sol#82) is not in mixedCase
Parameter AccessControlledOffchainAggregator.getTimestamp(uint256)._roundId (AccessControlledOffchainAggregator.sol#93) is not in mixedCase
Parameter AccessControlledOffchainAggregator.getRoundData(uint80)._roundId (AccessControlledOffchainAggregator.sol#119) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._signers (OffchainAggregator.sol#150) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._transmitters (OffchainAggregator.sol#151) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._threshold (OffchainAggregator.sol#152) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._encodedConfigVersion (OffchainAggregator.sol#153) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._encoded (OffchainAggregator.sol#154) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._contractAddress (OffchainAggregator.sol#215) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._configCount (OffchainAggregator.sol#216) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._signers (OffchainAggregator.sol#217) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._transmitters (OffchainAggregator.sol#218) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._threshold (OffchainAggregator.sol#219) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._encodedConfigVersion (OffchainAggregator.sol#220) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._encodedConfig (OffchainAggregator.sol#221) is not in mixedCase
Parameter OffchainAggregator.setValidator(address)._newValidator (OffchainAggregator.sol#296) is not in mixedCase
Parameter OffchainAggregator.validateAnswer(uint32,int256)._aggregatorRoundId (OffchainAggregator.sol#310) is not in mixedCase
Parameter OffchainAggregator.validateAnswer(uint32,int256)._answer (OffchainAggregator.sol#311) is not in mixedCase
Parameter OffchainAggregator.setRequesterAccessController(AccessControllerInterface)._requesterAccessController (OffchainAggregator.sol#368) is not in mixedCase
Parameter OffchainAggregator.decodeReport(bytes)._report (OffchainAggregator.sol#423) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._report (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._rs (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._ss (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._report (OffchainAggregator.sol#511) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._rs (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._ss (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._rawVs (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.getAnswer(uint256)._roundId (OffchainAggregator.sol#693) is not in mixedCase
Parameter OffchainAggregator.getTimestamp(uint256)._roundId (OffchainAggregator.sol#708) is not in mixedCase
Parameter OffchainAggregator.getRoundData(uint80)._roundId (OffchainAggregator.sol#759) is not in mixedCase
Constant OffchainAggregator.maxUint32 (OffchainAggregator.sol#19) is not in UPPER_CASE_WITH_UNDERSCORES
Variable OffchainAggregator.s_hotVars (OffchainAggregator.sol#39) is not in mixedCase
Variable OffchainAggregator.s_transmissions (OffchainAggregator.sol#47) is not in mixedCase
Variable OffchainAggregator.s_configCount (OffchainAggregator.sol#51) is not in mixedCase
Variable OffchainAggregator.s_latestConfigBlockNumber (OffchainAggregator.sol#52) is not in mixedCase
Variable OffchainAggregator.s_validator (OffchainAggregator.sol#268) is not in mixedCase
Variable OffchainAggregator.s_requesterAccessController (OffchainAggregator.sol#334) is not in mixedCase
Variable OffchainAggregator.s_description (OffchainAggregator.sol#735) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._maximumGasPrice (OffchainAggregatorBilling.sol#190) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._reasonableGasPrice (OffchainAggregatorBilling.sol#191) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._microLinkPerEth (OffchainAggregatorBilling.sol#192) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._linkGweiPerObservation (OffchainAggregatorBilling.sol#193) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._linkGweiPerTransmission (OffchainAggregatorBilling.sol#194) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._maximumGasPrice (OffchainAggregatorBilling.sol#214) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._reasonableGasPrice (OffchainAggregatorBilling.sol#215) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._microLinkPerEth (OffchainAggregatorBilling.sol#216) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._linkGweiPerObservation (OffchainAggregatorBilling.sol#217) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._linkGweiPerTransmission (OffchainAggregatorBilling.sol#218) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingAccessControllerInternal(AccessControllerInterface)._billingAccessController (OffchainAggregatorBilling.sol#266) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingAccessController(AccessControllerInterface)._billingAccessController (OffchainAggregatorBilling.sol#284) is not in mixedCase
Parameter OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is not in mixedCase
Parameter OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is not in mixedCase
Parameter OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is not in mixedCase
Parameter OffchainAggregatorBilling.withdrawFunds(address,uint256)._recipient (OffchainAggregatorBilling.sol#496) is not in mixedCase
Parameter OffchainAggregatorBilling.withdrawFunds(address,uint256)._amount (OffchainAggregatorBilling.sol#496) is not in mixedCase
Parameter OffchainAggregatorBilling.oracleObservationCount(address)._signerOrTransmitter (OffchainAggregatorBilling.sol#559) is not in mixedCase
Parameter OffchainAggregatorBilling.setPayees(address[],address[])._transmitters (OffchainAggregatorBilling.sol#660) is not in mixedCase
Parameter OffchainAggregatorBilling.setPayees(address[],address[])._payees (OffchainAggregatorBilling.sol#661) is not in mixedCase
Parameter OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) is not in mixedCase
Parameter OffchainAggregatorBilling.transferPayeeship(address,address)._proposed (OffchainAggregatorBilling.sol#690) is not in mixedCase
Parameter OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is not in mixedCase
Parameter OffchainAggregatorBilling.saturatingAddUint16(uint16,uint16)._x (OffchainAggregatorBilling.sol#728) is not in mixedCase
Parameter OffchainAggregatorBilling.saturatingAddUint16(uint16,uint16)._y (OffchainAggregatorBilling.sol#728) is not in mixedCase
Constant OffchainAggregatorBilling.maxNumOracles (OffchainAggregatorBilling.sol#45) is not in UPPER_CASE_WITH_UNDERSCORES
Variable OffchainAggregatorBilling.s_billing (OffchainAggregatorBilling.sol#66) is not in mixedCase
Variable OffchainAggregatorBilling.LINK (OffchainAggregatorBilling.sol#71) is not in mixedCase
Variable OffchainAggregatorBilling.s_billingAccessController (OffchainAggregatorBilling.sol#73) is not in mixedCase
Variable OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) is not in mixedCase
Variable OffchainAggregatorBilling.s_payees (OffchainAggregatorBilling.sol#87-89) is not in mixedCase
Variable OffchainAggregatorBilling.s_proposedPayees (OffchainAggregatorBilling.sol#92-94) is not in mixedCase
Variable OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) is not in mixedCase
Variable OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) is not in mixedCase
Variable OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) is not in mixedCase
Variable OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) is not in mixedCase
Constant OffchainAggregatorBilling.maxUint16 (OffchainAggregatorBilling.sol#145) is not in UPPER_CASE_WITH_UNDERSCORES
Constant OffchainAggregatorBilling.maxUint128 (OffchainAggregatorBilling.sol#146) is not in UPPER_CASE_WITH_UNDERSCORES
Constant OffchainAggregatorBilling.accountingGasCost (OffchainAggregatorBilling.sol#435) is not in UPPER_CASE_WITH_UNDERSCORES
Parameter Owned.transferOwnership(address)._to (Owned.sol#30) is not in mixedCase
Parameter SimpleReadAccessController.hasAccess(address,bytes)._user (SimpleReadAccessController.sol#24) is not in mixedCase
Parameter SimpleReadAccessController.hasAccess(address,bytes)._calldata (SimpleReadAccessController.sol#25) is not in mixedCase
Parameter SimpleWriteAccessController.hasAccess(address,bytes)._user (SimpleWriteAccessController.sol#34) is not in mixedCase
Parameter SimpleWriteAccessController.addAccess(address)._user (SimpleWriteAccessController.sol#50) is not in mixedCase
Parameter SimpleWriteAccessController.addAccessInternal(address)._user (SimpleWriteAccessController.sol#54) is not in mixedCase
Parameter SimpleWriteAccessController.removeAccess(address)._user (SimpleWriteAccessController.sol#65) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Variable OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar
INFO:Slither:0xbba12740de905707251525477bad74985dec46d2 analyzed (12 contracts with 82 detectors), 120 result(s) found
Slither report for EACAggregatorProxy at `0xDC530D9457755926550b59e8ECcdaE7624181557`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:283:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:273:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:284:7: Warning: This declaration shadows an existing declaration.
      int256 answer,
      ^-----------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:274:7: The shadowed declaration is here:
      int256 answer,
      ^-----------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:285:7: Warning: This declaration shadows an existing declaration.
      uint256 startedAt,
      ^---------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:275:7: The shadowed declaration is here:
      uint256 startedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:286:7: Warning: This declaration shadows an existing declaration.
      uint256 updatedAt,
      ^---------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:276:7: The shadowed declaration is here:
      uint256 updatedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:331:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:321:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:332:7: Warning: This declaration shadows an existing declaration.
      int256 answer,
      ^-----------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:322:7: The shadowed declaration is here:
      int256 answer,
      ^-----------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:333:7: Warning: This declaration shadows an existing declaration.
      uint256 startedAt,
      ^---------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:323:7: The shadowed declaration is here:
      uint256 startedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:334:7: Warning: This declaration shadows an existing declaration.
      uint256 updatedAt,
      ^---------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:324:7: The shadowed declaration is here:
      uint256 updatedAt,
      ^---------------^

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:513:5: Warning: This declaration shadows an existing declaration.
    uint16 phaseId = uint16(_roundId >> PHASE_OFFSET);
    ^------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:410:3: The shadowed declaration is here:
  function phaseId()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:525:7: Warning: This declaration shadows an existing declaration.
      uint16 phaseId
      ^------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:410:3: The shadowed declaration is here:
  function phaseId()
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:495:3: Warning: Function state mutability can be restricted to pure
  function addPhase(
  ^ (Relevant source part starts here and spans across multiple lines).

Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:506:3: Warning: Function state mutability can be restricted to pure
  function parseIds(
  ^ (Relevant source part starts here and spans across multiple lines).


INFO:Detectors:
AggregatorProxy.proposedGetRoundData(uint80) (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#353-367) ignores return value by proposedAggregator.getRoundData(_roundId) (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#366)
AggregatorProxy.proposedLatestRoundData() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#380-394) ignores return value by proposedAggregator.latestRoundData() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#393)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
AggregatorProxy.getAnswer(uint256).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#189) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getAnswer(uint256).aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#190) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getTimestamp(uint256).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#214) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getTimestamp(uint256).aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#215) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getRoundData(uint80).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#280) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getRoundData(uint80).roundId_scope_0 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#283) shadows:
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
AggregatorProxy.getRoundData(uint80).answer_scope_1 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#284) shadows:
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
AggregatorProxy.getRoundData(uint80).startedAt_scope_2 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#285) shadows:
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
AggregatorProxy.getRoundData(uint80).updatedAt_scope_3 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#286) shadows:
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
AggregatorProxy.latestRoundData().roundId_scope_0 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#331) shadows:
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
AggregatorProxy.latestRoundData().answer_scope_1 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#332) shadows:
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
AggregatorProxy.latestRoundData().startedAt_scope_2 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#333) shadows:
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
AggregatorProxy.latestRoundData().updatedAt_scope_3 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#334) shadows:
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
AggregatorProxy.parseIds(uint256).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#513) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.addPhaseIds(uint80,int256,uint256,uint256,uint80,uint16).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#525) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#30) lacks a zero-check on :
		- pendingOwner = _to (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Parameter Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#30) is not in mixedCase
Parameter AggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#180) is not in mixedCase
Parameter AggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#205) is not in mixedCase
Parameter AggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#267) is not in mixedCase
Parameter AggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#353) is not in mixedCase
Parameter AggregatorProxy.proposeAggregator(address)._aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#459) is not in mixedCase
Parameter AggregatorProxy.confirmAggregator(address)._aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#473) is not in mixedCase
Parameter AggregatorProxy.setAggregator(address)._aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#487) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._phase (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#496) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._originalId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#497) is not in mixedCase
Parameter AggregatorProxy.parseIds(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#507) is not in mixedCase
Parameter EACAggregatorProxy.setController(address)._accessController (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#582) is not in mixedCase
Parameter EACAggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#638) is not in mixedCase
Parameter EACAggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#658) is not in mixedCase
Parameter EACAggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#710) is not in mixedCase
Parameter EACAggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#776) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0xdc530d9457755926550b59e8eccdae7624181557 analyzed (7 contracts with 82 detectors), 34 result(s) found
Slither report for AaveV2EthereumUpdate20231009Payload at `0xff374aD1be52fF54Cf576586253a113d3F48D4B7`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xff374ad1be52ff54cf576586253a113d3f48d4b7-AaveV2EthereumUpdate20231009Payload' running
INFO:Detectors:
AaveV2PayloadBase.execute() (lib/aave-helpers/src/v2-config-engine/AaveV2PayloadBase.sol#34-46) ignores return value by address(LISTING_ENGINE).functionDelegateCall(abi.encodeWithSelector(LISTING_ENGINE.updateRateStrategies.selector,rates)) (lib/aave-helpers/src/v2-config-engine/AaveV2PayloadBase.sol#40-42)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
IAaveIncentivesController.configureAssets(address[],uint256[]).assets (lib/aave-address-book/src/AaveV2.sol#1088) shadows:
	- IAaveIncentivesController.assets(address) (lib/aave-address-book/src/AaveV2.sol#1066) (function)
IAaveIncentivesController.getRewardsBalance(address[],address).assets (lib/aave-address-book/src/AaveV2.sol#1106) shadows:
	- IAaveIncentivesController.assets(address) (lib/aave-address-book/src/AaveV2.sol#1066) (function)
IAaveIncentivesController.claimRewards(address[],uint256,address).assets (lib/aave-address-book/src/AaveV2.sol#1117) shadows:
	- IAaveIncentivesController.assets(address) (lib/aave-address-book/src/AaveV2.sol#1066) (function)
IAaveIncentivesController.claimRewardsOnBehalf(address[],uint256,address,address).assets (lib/aave-address-book/src/AaveV2.sol#1131) shadows:
	- IAaveIncentivesController.assets(address) (lib/aave-address-book/src/AaveV2.sol#1066) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
WadRayMath.wadMul(uint256,uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#29-38) uses assembly
	- INLINE ASM (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#31-37)
WadRayMath.wadDiv(uint256,uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#47-56) uses assembly
	- INLINE ASM (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#49-55)
WadRayMath.rayMul(uint256,uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#65-74) uses assembly
	- INLINE ASM (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#67-73)
WadRayMath.rayDiv(uint256,uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#83-92) uses assembly
	- INLINE ASM (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#85-91)
WadRayMath.rayToWad(uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#100-108) uses assembly
	- INLINE ASM (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#101-107)
WadRayMath.wadToRay(uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#116-125) uses assembly
	- INLINE ASM (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#118-124)
Address._revert(bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#235-247) uses assembly
	- INLINE ASM (lib/solidity-utils/src/contracts/oz-common/Address.sol#240-243)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
AaveV2PayloadBase._bpsToRay(uint256) (lib/aave-helpers/src/v2-config-engine/AaveV2PayloadBase.sol#51-53) is never used and should be removed
AaveV2PayloadBase._postExecute() (lib/aave-helpers/src/v2-config-engine/AaveV2PayloadBase.sol#32) is never used and should be removed
Address.functionCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#86-88) is never used and should be removed
Address.functionCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#96-102) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#115-121) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#129-138) is never used and should be removed
Address.functionStaticCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#146-151) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#159-166) is never used and should be removed
Address.sendValue(address,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#61-66) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#223-233) is never used and should be removed
EngineFlags.fromBool(bool) (lib/aave-helpers/src/v3-config-engine/EngineFlags.sol#22-24) is never used and should be removed
EngineFlags.toBool(uint256) (lib/aave-helpers/src/v3-config-engine/EngineFlags.sol#16-19) is never used and should be removed
WadRayMath.rayDiv(uint256,uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#83-92) is never used and should be removed
WadRayMath.rayMul(uint256,uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#65-74) is never used and should be removed
WadRayMath.rayToWad(uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#100-108) is never used and should be removed
WadRayMath.wadDiv(uint256,uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#47-56) is never used and should be removed
WadRayMath.wadMul(uint256,uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#29-38) is never used and should be removed
WadRayMath.wadToRay(uint256) (lib/aave-address-book/lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol#116-125) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#61-66):
	- (success) = recipient.call{value: amount}() (lib/solidity-utils/src/contracts/oz-common/Address.sol#64)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#129-138):
	- (success,returndata) = target.call{value: value}(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#136)
Low level call in Address.functionStaticCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#159-166):
	- (success,returndata) = target.staticcall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#184-191):
	- (success,returndata) = target.delegatecall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#189)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Function IAaveOracle.WETH() (lib/aave-address-book/src/AaveV2.sol#818) is not in mixedCase
Function IDefaultInterestRateStrategy.EXCESS_UTILIZATION_RATE() (lib/aave-address-book/src/AaveV2.sol#918) is not in mixedCase
Function IDefaultInterestRateStrategy.OPTIMAL_UTILIZATION_RATE() (lib/aave-address-book/src/AaveV2.sol#920) is not in mixedCase
Function IATokenV2._nonces(address) (lib/aave-address-book/src/AaveV2.sol#1026) is not in mixedCase
Function IATokenV2.UNDERLYING_ASSET_ADDRESS() (lib/aave-address-book/src/AaveV2.sol#1036) is not in mixedCase
Function IAaveIncentivesController.REWARD_TOKEN() (lib/aave-address-book/src/AaveV2.sol#1155) is not in mixedCase
Function IAaveIncentivesController.PRECISION() (lib/aave-address-book/src/AaveV2.sol#1160) is not in mixedCase
Function IAaveIncentivesController.DISTRIBUTION_END() (lib/aave-address-book/src/AaveV2.sol#1165) is not in mixedCase
Constant AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#432) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#434) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#446) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#449-450) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#556) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#558) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#561) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#564) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#567) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#570) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#573-574) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#577) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#579) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#582) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#585) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#588) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#591) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#594-595) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#721) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#723) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#726) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#729) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#732) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#735) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#738-739) is not in UPPER_CASE_WITH_UNDERSCORES
Function ICollector.ETH_MOCK_ADDRESS() (lib/aave-address-book/src/common/ICollector.sol#73) is not in mixedCase
Variable AaveV2PayloadBase.LISTING_ENGINE (lib/aave-helpers/src/v2-config-engine/AaveV2PayloadBase.sol#22) is not in mixedCase
Function IAaveV2ConfigEngine.RATE_STRATEGIES_FACTORY() (lib/aave-helpers/src/v2-config-engine/IAaveV2ConfigEngine.sol#49) is not in mixedCase
Function IAaveV2ConfigEngine.POOL_CONFIGURATOR() (lib/aave-helpers/src/v2-config-engine/IAaveV2ConfigEngine.sol#51) is not in mixedCase
Function IV2RateStrategyFactory.ADDRESSES_PROVIDER() (lib/aave-helpers/src/v2-config-engine/IV2RateStrategyFactory.sol#72) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Variable AaveV2EthereumAssets.AAVE_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#213) is too similar to AaveV2EthereumAssets.AAVE_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219)
Variable AaveV2EthereumAssets.AAVE_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#213) is too similar to AaveV2EthereumAssets.AAVE_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#216)
Variable AaveV2EthereumAssets.AAVE_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219) is too similar to AaveV2EthereumAssets.AAVE_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#216)
Variable AaveV2EthereumAssets.AMPL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#623) is too similar to AaveV2EthereumAssets.AMPL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#629)
Variable AaveV2EthereumAssets.AMPL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#623) is too similar to AaveV2EthereumAssets.AMPL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#626)
Variable AaveV2EthereumAssets.AMPL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#629) is too similar to AaveV2EthereumAssets.AMPL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#626)
Variable AaveV2EthereumAssets.BAL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#541) is too similar to AaveV2EthereumAssets.BAL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#547)
Variable AaveV2EthereumAssets.BAL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#541) is too similar to AaveV2EthereumAssets.BAL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#544)
Variable AaveV2EthereumAssets.BAL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#541) is too similar to AaveV2EthereumAssets.BAT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#234)
Variable AaveV2EthereumAssets.BAL_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#538) is too similar to AaveV2EthereumAssets.BAT_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#231)
Variable AaveV2EthereumAssets.BAL_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#553) is too similar to AaveV2EthereumAssets.BAT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#246)
Variable AaveV2EthereumAssets.BAL_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#553) is too similar to AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#287)
Variable AaveV2EthereumAssets.BAL_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#553) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615)
Variable AaveV2EthereumAssets.BAL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#547) is too similar to AaveV2EthereumAssets.BAT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#240)
Variable AaveV2EthereumAssets.BAL_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#536) is too similar to AaveV2EthereumAssets.BAT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#229)
Variable AaveV2EthereumAssets.BAL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#547) is too similar to AaveV2EthereumAssets.BAL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#544)
Variable AaveV2EthereumAssets.BAL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#544) is too similar to AaveV2EthereumAssets.BAT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#237)
Variable AaveV2EthereumAssets.BAT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#234) is too similar to AaveV2EthereumAssets.BAT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#240)
Variable AaveV2EthereumAssets.BAT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#234) is too similar to AaveV2EthereumAssets.BAT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#237)
Variable AaveV2EthereumAssets.BAT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#246) is too similar to AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#287)
Variable AaveV2EthereumAssets.BAT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#246) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615)
Variable AaveV2EthereumAssets.BAT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#246) is too similar to AaveV2EthereumAssets.UST_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#779)
Variable AaveV2EthereumAssets.BAT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#240) is too similar to AaveV2EthereumAssets.BAT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#237)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#254) is too similar to AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#260)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#254) is too similar to AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#254) is too similar to AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#520)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#254) is too similar to AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#828)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#254) is too similar to AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#458)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#254) is too similar to AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#479)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#254) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#644)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#254) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#90)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#254) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437)
Variable AaveV2EthereumAssets.BUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#251) is too similar to AaveV2EthereumAssets.GUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#517)
Variable AaveV2EthereumAssets.BUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#251) is too similar to AaveV2EthereumAssets.LUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#825)
Variable AaveV2EthereumAssets.BUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#251) is too similar to AaveV2EthereumAssets.TUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#455)
Variable AaveV2EthereumAssets.BUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#251) is too similar to AaveV2EthereumAssets.USDC_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#476)
Variable AaveV2EthereumAssets.BUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#251) is too similar to AaveV2EthereumAssets.USDP_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#641)
Variable AaveV2EthereumAssets.BUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#251) is too similar to AaveV2EthereumAssets.USDT_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#87)
Variable AaveV2EthereumAssets.BUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#251) is too similar to AaveV2EthereumAssets.sUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#434)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#266-267) is too similar to AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#840-841)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#266-267) is too similar to AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#470-471)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#266-267) is too similar to AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#491-492)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#266-267) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#656-657)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#266-267) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#102-103)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#266-267) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#449-450)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#263) is too similar to AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#837)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#263) is too similar to AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#467)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#263) is too similar to AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#488)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#263) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#653)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#263) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#99)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#263) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#446)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#260) is too similar to AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#834)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#260) is too similar to AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#464)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#260) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#485)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#260) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#650)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#260) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#260) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#249) is too similar to AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#515)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#249) is too similar to AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#823)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#249) is too similar to AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#453)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#249) is too similar to AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#474)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#249) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#639)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#249) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#85)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#249) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#432)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#260) is too similar to AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257) is too similar to AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#523)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257) is too similar to AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#831)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#461)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#482)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#647)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440)
Variable AaveV2EthereumAssets.CRV_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#500) is too similar to AaveV2EthereumAssets.CRV_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#506)
Variable AaveV2EthereumAssets.CRV_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#500) is too similar to AaveV2EthereumAssets.CRV_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#503)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#512) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#185)
Variable AaveV2EthereumAssets.CRV_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#506) is too similar to AaveV2EthereumAssets.CRV_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#503)
Variable AaveV2EthereumAssets.CRV_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#500) is too similar to AaveV2EthereumAssets.CVX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#787)
Variable AaveV2EthereumAssets.CVX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#787) is too similar to AaveV2EthereumAssets.CVX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#793)
Variable AaveV2EthereumAssets.CVX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#787) is too similar to AaveV2EthereumAssets.CVX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#790)
Variable AaveV2EthereumAssets.CRV_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#497) is too similar to AaveV2EthereumAssets.CVX_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#784)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#512) is too similar to AaveV2EthereumAssets.CVX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#799)
Variable AaveV2EthereumAssets.CVX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#799) is too similar to AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#327)
Variable AaveV2EthereumAssets.CVX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#799) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#185)
Variable AaveV2EthereumAssets.CRV_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#506) is too similar to AaveV2EthereumAssets.CVX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#793)
Variable AaveV2EthereumAssets.CRV_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#495) is too similar to AaveV2EthereumAssets.CVX_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#782)
Variable AaveV2EthereumAssets.CRV_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#503) is too similar to AaveV2EthereumAssets.CVX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#790)
Variable AaveV2EthereumAssets.CVX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#793) is too similar to AaveV2EthereumAssets.CVX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#790)
Variable AaveV2EthereumAssets.DAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#275) is too similar to AaveV2EthereumAssets.DAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#281)
Variable AaveV2EthereumAssets.DAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#275) is too similar to AaveV2EthereumAssets.DAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#278)
Variable AaveV2EthereumAssets.DAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#275) is too similar to AaveV2EthereumAssets.DPI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#665)
Variable AaveV2EthereumAssets.DAI_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#272) is too similar to AaveV2EthereumAssets.DPI_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#662)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#287) is too similar to AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#677)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#287) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#165)
Variable AaveV2EthereumAssets.DAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#281) is too similar to AaveV2EthereumAssets.DPI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#671)
Variable AaveV2EthereumAssets.DAI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#270) is too similar to AaveV2EthereumAssets.DPI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#660)
Variable AaveV2EthereumAssets.DAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#281) is too similar to AaveV2EthereumAssets.DAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#278)
Variable AaveV2EthereumAssets.DAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#278) is too similar to AaveV2EthereumAssets.DPI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#668)
Variable AaveV2EthereumAssets.DPI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#665) is too similar to AaveV2EthereumAssets.DPI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#671)
Variable AaveV2EthereumAssets.DPI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#665) is too similar to AaveV2EthereumAssets.DPI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#668)
Variable AaveV2EthereumAssets.DPI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#671) is too similar to AaveV2EthereumAssets.DPI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#668)
Variable AaveV2EthereumAssets.ENJ_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#295) is too similar to AaveV2EthereumAssets.ENJ_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#301)
Variable AaveV2EthereumAssets.ENJ_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#295) is too similar to AaveV2EthereumAssets.ENJ_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#298)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#307) is too similar to AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#327)
Variable AaveV2EthereumAssets.ENJ_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#301) is too similar to AaveV2EthereumAssets.ENJ_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#298)
Variable AaveV2EthereumAssets.ENJ_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#295) is too similar to AaveV2EthereumAssets.ENS_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#747)
Variable AaveV2EthereumAssets.ENS_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#747) is too similar to AaveV2EthereumAssets.ENS_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#753)
Variable AaveV2EthereumAssets.ENS_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#747) is too similar to AaveV2EthereumAssets.ENS_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#750)
Variable AaveV2EthereumAssets.ENJ_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#292) is too similar to AaveV2EthereumAssets.ENS_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#744)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#307) is too similar to AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#759)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#759) is too similar to AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#327)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#759) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#429)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#759) is too similar to AaveV2EthereumAssets.UST_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#779)
Variable AaveV2EthereumAssets.ENJ_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#301) is too similar to AaveV2EthereumAssets.ENS_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#753)
Variable AaveV2EthereumAssets.ENJ_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#290) is too similar to AaveV2EthereumAssets.ENS_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#742)
Variable AaveV2EthereumAssets.ENJ_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#298) is too similar to AaveV2EthereumAssets.ENS_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#750)
Variable AaveV2EthereumAssets.ENS_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#753) is too similar to AaveV2EthereumAssets.ENS_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#750)
Variable AaveV2EthereumAssets.FEI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#706) is too similar to AaveV2EthereumAssets.FEI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#712)
Variable AaveV2EthereumAssets.FEI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#706) is too similar to AaveV2EthereumAssets.FEI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#709)
Variable AaveV2EthereumAssets.FEI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#706) is too similar to AaveV2EthereumAssets.YFI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#153)
Variable AaveV2EthereumAssets.FEI_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#703) is too similar to AaveV2EthereumAssets.YFI_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#150)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#287) is too similar to AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#718)
Variable AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#677) is too similar to AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#718)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#307) is too similar to AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#718)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#759) is too similar to AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#718)
Variable AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#718) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615)
Variable AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#718) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409)
Variable AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#718) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#165)
Variable AaveV2EthereumAssets.FEI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#712) is too similar to AaveV2EthereumAssets.YFI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#159)
Variable AaveV2EthereumAssets.FEI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#701) is too similar to AaveV2EthereumAssets.YFI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#148)
Variable AaveV2EthereumAssets.FEI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#712) is too similar to AaveV2EthereumAssets.FEI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#709)
Variable AaveV2EthereumAssets.FEI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#709) is too similar to AaveV2EthereumAssets.YFI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#156)
Variable AaveV2EthereumAssets.FRAX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#685) is too similar to AaveV2EthereumAssets.FRAX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#691)
Variable AaveV2EthereumAssets.FRAX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#685) is too similar to AaveV2EthereumAssets.FRAX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#688)
Variable AaveV2EthereumAssets.FRAX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#691) is too similar to AaveV2EthereumAssets.FRAX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#688)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#520) is too similar to AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#523)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#266-267) is too similar to AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#532-533)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#532-533) is too similar to AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#840-841)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#532-533) is too similar to AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#470-471)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#532-533) is too similar to AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#491-492)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#532-533) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#656-657)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#532-533) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#102-103)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#532-533) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#449-450)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#263) is too similar to AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#529)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#529) is too similar to AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#837)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#529) is too similar to AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#467)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#529) is too similar to AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#488)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#529) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#653)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#529) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#99)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#529) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#446)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#260) is too similar to AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#526)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#520) is too similar to AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#526)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#526) is too similar to AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#523)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#526) is too similar to AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#834)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#526) is too similar to AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#464)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#526) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#485)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#526) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#650)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#526) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#526) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443)
Variable AaveV2EthereumAssets.KNC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#315) is too similar to AaveV2EthereumAssets.KNC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#321)
Variable AaveV2EthereumAssets.KNC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#315) is too similar to AaveV2EthereumAssets.KNC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#318)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#512) is too similar to AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#327)
Variable AaveV2EthereumAssets.KNC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#321) is too similar to AaveV2EthereumAssets.KNC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#318)
Variable AaveV2EthereumAssets.LINK_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#335) is too similar to AaveV2EthereumAssets.LINK_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#341)
Variable AaveV2EthereumAssets.LINK_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#335) is too similar to AaveV2EthereumAssets.LINK_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#338)
Variable AaveV2EthereumAssets.LINK_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#341) is too similar to AaveV2EthereumAssets.LINK_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#338)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#520) is too similar to AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#828)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#828) is too similar to AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#834)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#828) is too similar to AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#831)
Variable AaveV2EthereumAssets.GUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#517) is too similar to AaveV2EthereumAssets.LUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#825)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#515) is too similar to AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#823)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#523) is too similar to AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#831)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#834) is too similar to AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#831)
Variable AaveV2EthereumAssets.MANA_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#356) is too similar to AaveV2EthereumAssets.MANA_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#359)
Variable AaveV2EthereumAssets.AAVE_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#225-226) is too similar to AaveV2EthereumAssets.MANA_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#368-369)
Variable AaveV2EthereumAssets.MANA_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#356) is too similar to AaveV2EthereumAssets.MANA_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#362)
Variable AaveV2EthereumAssets.MANA_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#362) is too similar to AaveV2EthereumAssets.MANA_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#359)
Variable AaveV2EthereumAssets.MKR_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#377) is too similar to AaveV2EthereumAssets.MKR_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#383)
Variable AaveV2EthereumAssets.MKR_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#377) is too similar to AaveV2EthereumAssets.MKR_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#380)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#512) is too similar to AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#389)
Variable AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#327) is too similar to AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#389)
Variable AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#389) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615)
Variable AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#389) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409)
Variable AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#389) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#185)
Variable AaveV2EthereumAssets.MKR_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#383) is too similar to AaveV2EthereumAssets.MKR_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#380)
Variable AaveV2EthereumAssets.ONE_INCH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#807) is too similar to AaveV2EthereumAssets.ONE_INCH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#813)
Variable AaveV2EthereumAssets.ONE_INCH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#807) is too similar to AaveV2EthereumAssets.ONE_INCH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#810)
Variable AaveV2EthereumAssets.ONE_INCH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#813) is too similar to AaveV2EthereumAssets.ONE_INCH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#810)
Variable AaveV2EthereumAssets.DAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#275) is too similar to AaveV2EthereumAssets.RAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#603)
Variable AaveV2EthereumAssets.RAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#603) is too similar to AaveV2EthereumAssets.RAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#609)
Variable AaveV2EthereumAssets.RAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#603) is too similar to AaveV2EthereumAssets.RAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#606)
Variable AaveV2EthereumAssets.DAI_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#272) is too similar to AaveV2EthereumAssets.RAI_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#600)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#512) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#287) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615)
Variable AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#677) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615)
Variable AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#165)
Variable AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#185)
Variable AaveV2EthereumAssets.DAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#281) is too similar to AaveV2EthereumAssets.RAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#609)
Variable AaveV2EthereumAssets.DAI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#270) is too similar to AaveV2EthereumAssets.RAI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#598)
Variable AaveV2EthereumAssets.DAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#278) is too similar to AaveV2EthereumAssets.RAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#606)
Variable AaveV2EthereumAssets.RAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#609) is too similar to AaveV2EthereumAssets.RAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#606)
Variable AaveV2EthereumAssets.ENJ_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#295) is too similar to AaveV2EthereumAssets.REN_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#397)
Variable AaveV2EthereumAssets.ENS_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#747) is too similar to AaveV2EthereumAssets.REN_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#397)
Variable AaveV2EthereumAssets.REN_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#397) is too similar to AaveV2EthereumAssets.REN_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#403)
Variable AaveV2EthereumAssets.REN_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#397) is too similar to AaveV2EthereumAssets.REN_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#400)
Variable AaveV2EthereumAssets.ENJ_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#292) is too similar to AaveV2EthereumAssets.REN_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#394)
Variable AaveV2EthereumAssets.ENS_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#744) is too similar to AaveV2EthereumAssets.REN_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#394)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#512) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#307) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#759) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409)
Variable AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#327) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409)
Variable AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409)
Variable AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#429)
Variable AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#185)
Variable AaveV2EthereumAssets.ENJ_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#301) is too similar to AaveV2EthereumAssets.REN_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#403)
Variable AaveV2EthereumAssets.ENS_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#753) is too similar to AaveV2EthereumAssets.REN_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#403)
Variable AaveV2EthereumAssets.ENJ_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#290) is too similar to AaveV2EthereumAssets.REN_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#392)
Variable AaveV2EthereumAssets.ENS_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#742) is too similar to AaveV2EthereumAssets.REN_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#392)
Variable AaveV2EthereumAssets.ENJ_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#298) is too similar to AaveV2EthereumAssets.REN_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#400)
Variable AaveV2EthereumAssets.ENS_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#750) is too similar to AaveV2EthereumAssets.REN_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#400)
Variable AaveV2EthereumAssets.REN_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#403) is too similar to AaveV2EthereumAssets.REN_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#400)
Variable AaveV2EthereumAssets.SNX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#417) is too similar to AaveV2EthereumAssets.SNX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#423)
Variable AaveV2EthereumAssets.SNX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#417) is too similar to AaveV2EthereumAssets.SNX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#420)
Variable AaveV2EthereumAssets.CVX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#799) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#429)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#307) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#429)
Variable AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#327) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#429)
Variable AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#429) is too similar to AaveV2EthereumAssets.UST_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#779)
Variable AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#429) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#185)
Variable AaveV2EthereumAssets.SNX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#423) is too similar to AaveV2EthereumAssets.SNX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#420)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#520) is too similar to AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#458)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#828) is too similar to AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#458)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#458) is too similar to AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#464)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#458) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#461)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#458) is too similar to AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#479)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#458) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#644)
Variable AaveV2EthereumAssets.GUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#517) is too similar to AaveV2EthereumAssets.TUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#455)
Variable AaveV2EthereumAssets.LUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#825) is too similar to AaveV2EthereumAssets.TUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#455)
Variable AaveV2EthereumAssets.TUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#455) is too similar to AaveV2EthereumAssets.USDC_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#476)
Variable AaveV2EthereumAssets.TUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#455) is too similar to AaveV2EthereumAssets.USDP_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#641)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#840-841) is too similar to AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#470-471)
Variable AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#470-471) is too similar to AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#491-492)
Variable AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#470-471) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#656-657)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#837) is too similar to AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#467)
Variable AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#467) is too similar to AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#488)
Variable AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#467) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#653)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#834) is too similar to AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#464)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#464) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#485)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#464) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#650)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#515) is too similar to AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#453)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#823) is too similar to AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#453)
Variable AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#453) is too similar to AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#474)
Variable AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#453) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#639)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#523) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#461)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#831) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#461)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#464) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#461)
Variable AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#461) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#482)
Variable AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#461) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#647)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#287) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#677) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#307) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#759) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#718) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#327) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#615) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#409) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#429) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205) is too similar to AaveV2EthereumAssets.UST_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#779)
Variable AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#205) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#165)
Variable AaveV2EthereumAssets.UNI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#193) is too similar to AaveV2EthereumAssets.UNI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#199)
Variable AaveV2EthereumAssets.UNI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#193) is too similar to AaveV2EthereumAssets.UNI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196)
Variable AaveV2EthereumAssets.UNI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#199) is too similar to AaveV2EthereumAssets.UNI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#520) is too similar to AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#479)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#828) is too similar to AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#479)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#479) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#485)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#479) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#482)
Variable AaveV2EthereumAssets.GUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#517) is too similar to AaveV2EthereumAssets.USDC_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#476)
Variable AaveV2EthereumAssets.LUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#825) is too similar to AaveV2EthereumAssets.USDC_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#476)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#840-841) is too similar to AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#491-492)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#837) is too similar to AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#488)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#834) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#485)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#515) is too similar to AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#474)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#823) is too similar to AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#474)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#523) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#482)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#831) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#482)
Variable AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#485) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#482)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#520) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#644)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#828) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#644)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#479) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#644)
Variable AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#644) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#650)
Variable AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#644) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#647)
Variable AaveV2EthereumAssets.GUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#517) is too similar to AaveV2EthereumAssets.USDP_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#641)
Variable AaveV2EthereumAssets.LUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#825) is too similar to AaveV2EthereumAssets.USDP_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#641)
Variable AaveV2EthereumAssets.USDC_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#476) is too similar to AaveV2EthereumAssets.USDP_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#641)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#840-841) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#656-657)
Variable AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#491-492) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#656-657)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#837) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#653)
Variable AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#488) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#653)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#834) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#650)
Variable AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#485) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#650)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#515) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#639)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#823) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#639)
Variable AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#474) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#639)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#523) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#647)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#831) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#647)
Variable AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#482) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#647)
Variable AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#650) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#647)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#520) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#90)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#828) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#90)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#458) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#90)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#479) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#90)
Variable AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#644) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#90)
Variable AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#90) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#90) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#90) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437)
Variable AaveV2EthereumAssets.GUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#517) is too similar to AaveV2EthereumAssets.USDT_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#87)
Variable AaveV2EthereumAssets.LUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#825) is too similar to AaveV2EthereumAssets.USDT_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#87)
Variable AaveV2EthereumAssets.TUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#455) is too similar to AaveV2EthereumAssets.USDT_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#87)
Variable AaveV2EthereumAssets.USDC_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#476) is too similar to AaveV2EthereumAssets.USDT_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#87)
Variable AaveV2EthereumAssets.USDP_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#641) is too similar to AaveV2EthereumAssets.USDT_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#87)
Variable AaveV2EthereumAssets.USDT_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#87) is too similar to AaveV2EthereumAssets.sUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#434)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#840-841) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#102-103)
Variable AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#470-471) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#102-103)
Variable AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#491-492) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#102-103)
Variable AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#656-657) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#102-103)
Variable AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#102-103) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#449-450)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#837) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#99)
Variable AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#467) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#99)
Variable AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#488) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#99)
Variable AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#653) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#99)
Variable AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#99) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#446)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#834) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#464) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#485) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#650) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#96) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#515) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#85)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#823) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#85)
Variable AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#453) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#85)
Variable AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#474) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#85)
Variable AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#639) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#85)
Variable AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#85) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#432)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#523) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#831) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#461) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#482) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#647) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#96) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440)
Variable AaveV2EthereumAssets.UST_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#767) is too similar to AaveV2EthereumAssets.UST_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#773)
Variable AaveV2EthereumAssets.UST_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#767) is too similar to AaveV2EthereumAssets.UST_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#770)
Variable AaveV2EthereumAssets.UST_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#773) is too similar to AaveV2EthereumAssets.UST_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#770)
Variable AaveV2EthereumAssets.WBTC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#111) is too similar to AaveV2EthereumAssets.WBTC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#117)
Variable AaveV2EthereumAssets.WBTC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#111) is too similar to AaveV2EthereumAssets.WBTC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#114)
Variable AaveV2EthereumAssets.WBTC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#123-124) is too similar to AaveV2EthereumAssets.WETH_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#144-145)
Variable AaveV2EthereumAssets.WBTC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#117) is too similar to AaveV2EthereumAssets.WBTC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#114)
Variable AaveV2EthereumAssets.WETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#132) is too similar to AaveV2EthereumAssets.WETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#138)
Variable AaveV2EthereumAssets.WETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#132) is too similar to AaveV2EthereumAssets.WETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#135)
Variable AaveV2EthereumAssets.WETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#138) is too similar to AaveV2EthereumAssets.WETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#135)
Variable AaveV2EthereumAssets.YFI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#153) is too similar to AaveV2EthereumAssets.YFI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#159)
Variable AaveV2EthereumAssets.YFI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#153) is too similar to AaveV2EthereumAssets.YFI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#156)
Variable AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#677) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#165)
Variable AaveV2EthereumAssets.YFI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#159) is too similar to AaveV2EthereumAssets.YFI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#156)
Variable AaveV2EthereumAssets.ZRX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#173) is too similar to AaveV2EthereumAssets.ZRX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#179)
Variable AaveV2EthereumAssets.ZRX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#173) is too similar to AaveV2EthereumAssets.ZRX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#176)
Variable AaveV2EthereumAssets.ZRX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#179) is too similar to AaveV2EthereumAssets.ZRX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#176)
Variable AaveV2EthereumAssets.renFIL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#582) is too similar to AaveV2EthereumAssets.renFIL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#588)
Variable AaveV2EthereumAssets.renFIL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#582) is too similar to AaveV2EthereumAssets.renFIL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#585)
Variable AaveV2EthereumAssets.renFIL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#588) is too similar to AaveV2EthereumAssets.renFIL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#585)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#520) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#828) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#458) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#479) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437)
Variable AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#644) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437)
Variable AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443)
Variable AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#437) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440)
Variable AaveV2EthereumAssets.GUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#517) is too similar to AaveV2EthereumAssets.sUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#434)
Variable AaveV2EthereumAssets.LUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#825) is too similar to AaveV2EthereumAssets.sUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#434)
Variable AaveV2EthereumAssets.TUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#455) is too similar to AaveV2EthereumAssets.sUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#434)
Variable AaveV2EthereumAssets.USDC_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#476) is too similar to AaveV2EthereumAssets.sUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#434)
Variable AaveV2EthereumAssets.USDP_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#641) is too similar to AaveV2EthereumAssets.sUSD_DECIMALS (lib/aave-address-book/src/AaveV2Ethereum.sol#434)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#840-841) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#449-450)
Variable AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#470-471) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#449-450)
Variable AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#491-492) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#449-450)
Variable AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#656-657) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#449-450)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#837) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#446)
Variable AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#467) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#446)
Variable AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#488) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#446)
Variable AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#653) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#446)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#834) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#464) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443)
Variable AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#485) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443)
Variable AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#650) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#515) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#432)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#823) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#432)
Variable AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#453) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#432)
Variable AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#474) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#432)
Variable AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#639) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#432)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#523) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#831) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440)
Variable AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#461) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440)
Variable AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#482) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440)
Variable AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#647) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440)
Variable AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#443) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#440)
Variable AaveV2EthereumAssets.stETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#726) is too similar to AaveV2EthereumAssets.stETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#732)
Variable AaveV2EthereumAssets.stETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#726) is too similar to AaveV2EthereumAssets.stETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#729)
Variable AaveV2EthereumAssets.stETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#732) is too similar to AaveV2EthereumAssets.stETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#729)
Variable AaveV2EthereumAssets.xSUSHI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#561) is too similar to AaveV2EthereumAssets.xSUSHI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#567)
Variable AaveV2EthereumAssets.xSUSHI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#561) is too similar to AaveV2EthereumAssets.xSUSHI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#564)
Variable AaveV2EthereumAssets.xSUSHI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#567) is too similar to AaveV2EthereumAssets.xSUSHI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#564)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar
INFO:Detectors:
EngineFlags.KEEP_CURRENT (lib/aave-helpers/src/v3-config-engine/EngineFlags.sol#7) is never used in EngineFlags (lib/aave-helpers/src/v3-config-engine/EngineFlags.sol#4-25)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable
INFO:Slither:0xff374ad1be52ff54cf576586253a113d3f48d4b7 analyzed (23 contracts with 82 detectors), 484 result(s) found