- ID: 263
- Proposer: 0x329c54289Ff5D6B7b7daE13592C6B1EDA1543eD4
- Targets: 0x5a1C6E2c7E7B309E6E39FdCd88D6d96E783cf5eE
- Executor: 0xEE56e2B3D491590B5b31738cC34d5232F378a8D5 (Short executor)
- Simulation: https://dashboard.tenderly.co/me/simulator/61452a93-6e2b-4ff0-9796-baafb14e9b7e
Proposal text
This AIP propose to repay gas fees to recognized delegates who vote on-chain & deploy AIPs on Aave.
As Ethereum gas fees continue to rise, the cost of on-chain governance for delegates has proportionally increased.
This AIP proposes to repay gas fees to recognized delegates who vote on-chain & deploy AIPs on Aave.
Rebating delegates for their participation offers several benefits:
- Encourages more active engagement from the delegate community by eliminating the disincentive to vote, leading to better decision-making for Aave.
- Fosters a more diverse voter base, including student organizations, by reducing the barrier to entry for voting. This creates a more open and collaborative delegate ecosystem, driving participation.
- Helps retain top delegates to foster the growth of the Aave ecosystem. Aave should remain competitive with its peers (e.g., Maker) to attract and retain the best delegate talent. The fundamental cost of being an excellent Aave delegate should not result in a net cost to the delegate due to ever-increasing gas costs.
- Can be achieved at a relatively low cost. coverage of gas cost represent a small fraction of Aave protocol revenue.
this AIP call transfer()
on the Aave collector contract to transfer the gas fees to the delegate addresses.
while not complex this proposal payload is lenghty and to favor readability of this document, we invite the community willing to verify the payload code to refers to the references section link.
Copyright and related rights waived via CC0.
Info:
- State changes:
# WETH9 (Wrapped Ether) at `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`
@@ `balanceOf` key `0x13bdae8c5f0fc40231f0e6a4ad70196f59138548` @@
- 0
+ 210000000000000000
@@ `balanceOf` key `0x1855f41b8a86e701e33199de7c25d3e3830698ba` @@
- 0
+ 160000000000000000
@@ `balanceOf` key `0x329c54289ff5d6b7b7dae13592c6b1eda1543ed4` @@
- 144342988005184827
+ 1094342988005184827
@@ `balanceOf` key `0x3cbded22f878afc8d39dcd744d3fe62086b76193` @@
- 0
+ 330000000000000000
@@ `balanceOf` key `0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c` @@
- 20240221969534450944
+ 17260221969534450944
@@ `balanceOf` key `0x62a43123fe71f9764f26554b3f5017627996816a` @@
- 0
+ 380000000000000000
@@ `balanceOf` key `0xa06c2e5bb33cd6718b08ec9335081cbba62861f7` @@
- 0
+ 210000000000000000
@@ `balanceOf` key `0xb83b3e9c8e3393889afb272d354a7a3bd1fbcf5c` @@
- 0
+ 260000000000000000
@@ `balanceOf` key `0xb933aee47c438f22de0747d57fc239fe37878dd1` @@
- 0
+ 190000000000000000
@@ `balanceOf` key `0xea172676e4105e92cc52dbf45fd93b274ec96676` @@
- 0
+ 290000000000000000
Info:
- There is no SELFDESTRUCT inside of delegated call
Info:
- Events Emitted:
- WETH9 (Wrapped Ether) at
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Transfer(from: 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c, to: 0x329c54289ff5d6b7b7dae13592c6b1eda1543ed4, value: 950000000000000000)
Transfer(from: 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c, to: 0x3cbded22f878afc8d39dcd744d3fe62086b76193, value: 330000000000000000)
Transfer(from: 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c, to: 0x62a43123fe71f9764f26554b3f5017627996816a, value: 380000000000000000)
Transfer(from: 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c, to: 0xa06c2e5bb33cd6718b08ec9335081cbba62861f7, value: 210000000000000000)
Transfer(from: 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c, to: 0x13bdae8c5f0fc40231f0e6a4ad70196f59138548, value: 210000000000000000)
Transfer(from: 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c, to: 0xb83b3e9c8e3393889afb272d354a7a3bd1fbcf5c, value: 260000000000000000)
Transfer(from: 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c, to: 0xb933aee47c438f22de0747d57fc239fe37878dd1, value: 190000000000000000)
Transfer(from: 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c, to: 0x1855f41b8a86e701e33199de7c25d3e3830698ba, value: 160000000000000000)
Transfer(from: 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c, to: 0xea172676e4105e92cc52dbf45fd93b274ec96676, value: 290000000000000000)
- WETH9 (Wrapped Ether) at
Info:
- Targets:
- 0x5a1C6E2c7E7B309E6E39FdCd88D6d96E783cf5eE: Contract (not verified)
Info:
- Touched address:
- 0x3cbded22f878afc8d39dcd744d3fe62086b76193: EOA (verification not applicable)
- 0xec568fffba86c094cf06b22134b23074dfe2252c: Contract (verified) (AaveGovernanceV2)
- 0xee56e2b3d491590b5b31738cc34d5232f378a8d5: Contract (verified) (Executor)
- 0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e: Contract (verified) (GovernanceStrategy)
- 0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9: Contract (verified) (InitializableAdminUpgradeabilityProxy)
- 0x96f68837877fd0414b55050c9e794aecdbcfca59: Contract (verified) (AaveTokenV2)
- 0x5a1c6e2c7e7b309e6e39fdcd88d6d96e783cf5ee: Contract (verified) (AaveV2DelegatesGasRebate_20230703)
- 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c: Contract (verified) (InitializableAdminUpgradeabilityProxy)
- 0x80f2c02224a2e548fc67c0bf705ebfa825dd5439: Contract (verified) (Collector)
- 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2: Contract (verified) (WETH9)
Info:
View Details
View warnings for InitializableAdminUpgradeabilityProxy at `0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c` with implementation Collector at `0x80f2c02224a2E548FC67c0bF705eBFA825dd5439`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
WARNING:CryticCompile:Warning: crytic-export/etherscan-contracts/0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c-InitializableAdminUpgradeabilityProxy.sol:200: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).
crytic-export/etherscan-contracts/0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c-InitializableAdminUpgradeabilityProxy.sol:76:3: The payable fallback function is defined here.
fallback() external payable {
^ (Relevant source part starts here and spans across multiple lines).
Warning: crytic-export/etherscan-contracts/0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c-InitializableAdminUpgradeabilityProxy.sol:228: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).
crytic-export/etherscan-contracts/0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c-InitializableAdminUpgradeabilityProxy.sol:76:3: The payable fallback function is defined here.
fallback() external payable {
^ (Relevant source part starts here and spans across multiple lines).
Warning: crytic-export/etherscan-contracts/0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c-InitializableAdminUpgradeabilityProxy.sol:347:1: Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
contract InitializableAdminUpgradeabilityProxy is
^ (Relevant source part starts here and spans across multiple lines).
crytic-export/etherscan-contracts/0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c-InitializableAdminUpgradeabilityProxy.sol:76:3: The payable fallback function is defined here.
fallback() external payable {
^ (Relevant source part starts here and spans across multiple lines).
View warnings for AaveV2DelegatesGasRebate_20230703 at `0x5a1C6E2c7E7B309E6E39FdCd88D6d96E783cf5eE`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x5a1c6e2c7e7b309e6e39fdcd88d6d96e783cf5ee-AaveV2DelegatesGasRebate_20230703' running
View warnings for InitializableAdminUpgradeabilityProxy 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 Collector at `0x80f2c02224a2E548FC67c0bF705eBFA825dd5439`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x80f2c02224a2e548fc67c0bf705ebfa825dd5439-Collector' running
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 GovernanceStrategy at `0xb7e383ef9B1E9189Fc0F71fb30af8aa14377429e`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
View warnings for WETH9 (Wrapped Ether) at `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
Info:
View Details
Slither report for InitializableAdminUpgradeabilityProxy at `0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c` with implementation Collector at `0x80f2c02224a2E548FC67c0bF705eBFA825dd5439`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
Traceback (most recent call last):
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 180, in run_solc_standard_json
solc_json_output = json.loads(stdout)
File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 814, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 91, in process_all
compilations = compile_all(target, **vars(args))
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 646, in compile_all
compilations.append(CryticCompile(target, **kwargs))
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 131, in __init__
self._compile(**kwargs)
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 553, in _compile
self._platform.compile(self, **kwargs)
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/etherscan.py", line 385, in compile
solc_standard_json.standalone_compile(
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 79, in standalone_compile
targets_json = run_solc_standard_json(
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 210, in run_solc_standard_json
raise InvalidCompilation(f"Invalid solc compilation {stderr}")
crytic_compile.platform.exceptions.InvalidCompilation: Invalid solc compilation Traceback (most recent call last):
File "/home/runner/.local/bin/solc", line 8, in <module>
sys.exit(solc())
File "/home/runner/.local/lib/python3.10/site-packages/solc_select/__main__.py", line 94, in solc
subprocess.run(
File "/usr/lib/python3.10/subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.10/subprocess.py", line 969, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: '/home/runner/.solc-select/artifacts/solc-0.6.12/solc-0.6.12'
ERROR:root:Error in 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c
ERROR:root:Traceback (most recent call last):
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 180, in run_solc_standard_json
solc_json_output = json.loads(stdout)
File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 814, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 91, in process_all
compilations = compile_all(target, **vars(args))
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 646, in compile_all
compilations.append(CryticCompile(target, **kwargs))
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 131, in __init__
self._compile(**kwargs)
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 553, in _compile
self._platform.compile(self, **kwargs)
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/etherscan.py", line 385, in compile
solc_standard_json.standalone_compile(
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 79, in standalone_compile
targets_json = run_solc_standard_json(
File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 210, in run_solc_standard_json
raise InvalidCompilation(f"Invalid solc compilation {stderr}")
crytic_compile.platform.exceptions.InvalidCompilation: Invalid solc compilation Traceback (most recent call last):
File "/home/runner/.local/bin/solc", line 8, in <module>
sys.exit(solc())
File "/home/runner/.local/lib/python3.10/site-packages/solc_select/__main__.py", line 94, in solc
subprocess.run(
File "/usr/lib/python3.10/subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.10/subprocess.py", line 969, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: '/home/runner/.solc-select/artifacts/solc-0.6.12/solc-0.6.12'
Slither report for AaveV2DelegatesGasRebate_20230703 at `0x5a1C6E2c7E7B309E6E39FdCd88D6d96E783cf5eE`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x5a1c6e2c7e7b309e6e39fdcd88d6d96e783cf5ee-AaveV2DelegatesGasRebate_20230703' running
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
Constant AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#186) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#190) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#191-192) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#232) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#233) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#234) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#235) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#236) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.xSUSHI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#237-238) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#240) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#241) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#242) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#243) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#244) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.renFIL_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#245-246) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#293) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#294) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#295) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#296) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#297) is not in UPPER_CASE_WITH_UNDERSCORES
Constant AaveV2EthereumAssets.stETH_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#298-299) 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
Contract AaveV2DelegatesGasRebate_20230703 (src/AaveV2DelegatesGasRebate_20230703/AaveV2DelegatesGasRebate_20230703.sol#14-73) is not in CapWords
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#106) is too similar to AaveV2EthereumAssets.AAVE_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#108)
Variable AaveV2EthereumAssets.AAVE_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#106) is too similar to AaveV2EthereumAssets.AAVE_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#107)
Variable AaveV2EthereumAssets.AAVE_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#108) is too similar to AaveV2EthereumAssets.AAVE_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#107)
Variable AaveV2EthereumAssets.AMPL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#256) is too similar to AaveV2EthereumAssets.AMPL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#258)
Variable AaveV2EthereumAssets.AMPL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#256) is too similar to AaveV2EthereumAssets.AMPL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257)
Variable AaveV2EthereumAssets.AMPL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#258) is too similar to AaveV2EthereumAssets.AMPL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#257)
Variable AaveV2EthereumAssets.BAL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#226) is too similar to AaveV2EthereumAssets.BAL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#228)
Variable AaveV2EthereumAssets.BAL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#226) is too similar to AaveV2EthereumAssets.BAL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#227)
Variable AaveV2EthereumAssets.BAL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#226) is too similar to AaveV2EthereumAssets.BAT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#114)
Variable AaveV2EthereumAssets.BAL_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#230) is too similar to AaveV2EthereumAssets.BAT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#118)
Variable AaveV2EthereumAssets.BAL_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#230) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253)
Variable AaveV2EthereumAssets.BAL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#228) is too similar to AaveV2EthereumAssets.BAT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#116)
Variable AaveV2EthereumAssets.BAL_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#225) is too similar to AaveV2EthereumAssets.BAT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#113)
Variable AaveV2EthereumAssets.BAL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#228) is too similar to AaveV2EthereumAssets.BAL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#227)
Variable AaveV2EthereumAssets.BAL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#227) is too similar to AaveV2EthereumAssets.BAT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#115)
Variable AaveV2EthereumAssets.BAT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#114) is too similar to AaveV2EthereumAssets.BAT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#116)
Variable AaveV2EthereumAssets.BAT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#114) is too similar to AaveV2EthereumAssets.BAT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#115)
Variable AaveV2EthereumAssets.BAT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#116) is too similar to AaveV2EthereumAssets.BAT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#115)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#121) is too similar to AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#123)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#121) is too similar to AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#122)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#121) is too similar to AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#218)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#121) is too similar to AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#331)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#121) is too similar to AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#195)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#121) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#264)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#121) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#61)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#121) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#125-126) is too similar to AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#222-223)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#125-126) is too similar to AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#335-336)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#125-126) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#268-269)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#125-126) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#65-66)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#125-126) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#191-192)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#124) is too similar to AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#334)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#124) is too similar to AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#198)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#124) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#267)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#124) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#190)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#123) is too similar to AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#122)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#123) is too similar to AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#220)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#123) is too similar to AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#333)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#123) is too similar to AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#197)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#123) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#266)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#123) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#63)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#123) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#120) is too similar to AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#217)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#120) is too similar to AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#330)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#120) is too similar to AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#194)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#120) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#263)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#120) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#60)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#120) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#186)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#122) is too similar to AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#332)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#122) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#122) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#265)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#122) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188)
Variable AaveV2EthereumAssets.CRV_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#211) is too similar to AaveV2EthereumAssets.CRV_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#213)
Variable AaveV2EthereumAssets.CRV_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#211) is too similar to AaveV2EthereumAssets.CRV_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#212)
Variable AaveV2EthereumAssets.CRV_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#211) is too similar to AaveV2EthereumAssets.CVX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#316)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#215) is too similar to AaveV2EthereumAssets.CVX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#320)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#215) is too similar to AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#147)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#215) is too similar to AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#170)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#215) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#215) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177)
Variable AaveV2EthereumAssets.CRV_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#215) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.CRV_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#213) is too similar to AaveV2EthereumAssets.CVX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#318)
Variable AaveV2EthereumAssets.CRV_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#210) is too similar to AaveV2EthereumAssets.CVX_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#315)
Variable AaveV2EthereumAssets.CRV_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#213) is too similar to AaveV2EthereumAssets.CRV_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#212)
Variable AaveV2EthereumAssets.CRV_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#212) is too similar to AaveV2EthereumAssets.CVX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#317)
Variable AaveV2EthereumAssets.CVX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#316) is too similar to AaveV2EthereumAssets.CVX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#318)
Variable AaveV2EthereumAssets.CVX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#316) is too similar to AaveV2EthereumAssets.CVX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#317)
Variable AaveV2EthereumAssets.CVX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#320) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#184)
Variable AaveV2EthereumAssets.CVX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#318) is too similar to AaveV2EthereumAssets.CVX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#317)
Variable AaveV2EthereumAssets.DAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#129) is too similar to AaveV2EthereumAssets.DAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#131)
Variable AaveV2EthereumAssets.DAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#129) is too similar to AaveV2EthereumAssets.DAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#130)
Variable AaveV2EthereumAssets.DAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#129) is too similar to AaveV2EthereumAssets.DPI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#272)
Variable AaveV2EthereumAssets.DAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#129) is too similar to AaveV2EthereumAssets.RAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#249)
Variable AaveV2EthereumAssets.BAL_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#230) is too similar to AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#133)
Variable AaveV2EthereumAssets.BAT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#118) is too similar to AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#133)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#133) is too similar to AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#291)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#133) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#133) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103)
Variable AaveV2EthereumAssets.DAI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#128) is too similar to AaveV2EthereumAssets.DPI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#271)
Variable AaveV2EthereumAssets.DAI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#128) is too similar to AaveV2EthereumAssets.RAI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#248)
Variable AaveV2EthereumAssets.DAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#131) is too similar to AaveV2EthereumAssets.DAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#130)
Variable AaveV2EthereumAssets.DAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#130) is too similar to AaveV2EthereumAssets.RAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#250)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#133) is too similar to AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#276)
Variable AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#276) is too similar to AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#291)
Variable AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#276) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253)
Variable AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#276) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103)
Variable AaveV2EthereumAssets.DAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#131) is too similar to AaveV2EthereumAssets.DPI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#274)
Variable AaveV2EthereumAssets.DPI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#272) is too similar to AaveV2EthereumAssets.DPI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#274)
Variable AaveV2EthereumAssets.DAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#130) is too similar to AaveV2EthereumAssets.DPI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#273)
Variable AaveV2EthereumAssets.DPI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#272) is too similar to AaveV2EthereumAssets.DPI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#273)
Variable AaveV2EthereumAssets.DPI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#274) is too similar to AaveV2EthereumAssets.DPI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#273)
Variable AaveV2EthereumAssets.ENJ_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#136) is too similar to AaveV2EthereumAssets.ENJ_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#138)
Variable AaveV2EthereumAssets.ENJ_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#136) is too similar to AaveV2EthereumAssets.ENJ_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#137)
Variable AaveV2EthereumAssets.ENJ_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#136) is too similar to AaveV2EthereumAssets.ENS_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#302)
Variable AaveV2EthereumAssets.ENJ_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#136) is too similar to AaveV2EthereumAssets.REN_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#173)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#140) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#140) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#184)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#140) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103)
Variable AaveV2EthereumAssets.ENJ_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#138) is too similar to AaveV2EthereumAssets.REN_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#175)
Variable AaveV2EthereumAssets.ENJ_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#138) is too similar to AaveV2EthereumAssets.ENJ_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#137)
Variable AaveV2EthereumAssets.ENJ_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#137) is too similar to AaveV2EthereumAssets.ENS_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#303)
Variable AaveV2EthereumAssets.ENS_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#302) is too similar to AaveV2EthereumAssets.ENS_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#304)
Variable AaveV2EthereumAssets.ENS_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#302) is too similar to AaveV2EthereumAssets.ENS_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#303)
Variable AaveV2EthereumAssets.ENS_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#302) is too similar to AaveV2EthereumAssets.REN_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#173)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#140) is too similar to AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#306)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#306) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#306) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#184)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#306) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#306) is too similar to AaveV2EthereumAssets.UST_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#313)
Variable AaveV2EthereumAssets.ENJ_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#138) is too similar to AaveV2EthereumAssets.ENS_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#304)
Variable AaveV2EthereumAssets.ENS_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#304) is too similar to AaveV2EthereumAssets.REN_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#175)
Variable AaveV2EthereumAssets.ENJ_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#135) is too similar to AaveV2EthereumAssets.ENS_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#301)
Variable AaveV2EthereumAssets.ENS_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#301) is too similar to AaveV2EthereumAssets.REN_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#172)
Variable AaveV2EthereumAssets.ENS_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#304) is too similar to AaveV2EthereumAssets.ENS_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#303)
Variable AaveV2EthereumAssets.FEI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#287) is too similar to AaveV2EthereumAssets.FEI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#289)
Variable AaveV2EthereumAssets.FEI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#287) is too similar to AaveV2EthereumAssets.FEI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#288)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#140) is too similar to AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#291)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#306) is too similar to AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#291)
Variable AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#291) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253)
Variable AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#291) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177)
Variable AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#291) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103)
Variable AaveV2EthereumAssets.FEI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#289) is too similar to AaveV2EthereumAssets.FEI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#288)
Variable AaveV2EthereumAssets.FEI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#288) is too similar to AaveV2EthereumAssets.YFI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#86)
Variable AaveV2EthereumAssets.FRAX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#279) is too similar to AaveV2EthereumAssets.FRAX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#281)
Variable AaveV2EthereumAssets.FRAX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#279) is too similar to AaveV2EthereumAssets.FRAX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#280)
Variable AaveV2EthereumAssets.FRAX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#281) is too similar to AaveV2EthereumAssets.FRAX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#280)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#218) is too similar to AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#220)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#218) is too similar to AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#218) is too similar to AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#331)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#218) is too similar to AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#195)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#218) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#264)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#218) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#61)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#218) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#222-223) is too similar to AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#335-336)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#222-223) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#268-269)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#222-223) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#65-66)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#222-223) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#191-192)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#124) is too similar to AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#221)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#221) is too similar to AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#334)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#221) is too similar to AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#198)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#221) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#267)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#221) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#64)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#221) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#190)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#220) is too similar to AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#333)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#220) is too similar to AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#197)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#220) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#266)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#220) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#63)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#220) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#217) is too similar to AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#330)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#217) is too similar to AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#194)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#217) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#263)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#217) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#60)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#217) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#186)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#122) is too similar to AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#220) is too similar to AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219) is too similar to AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#332)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#265)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#62)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188)
Variable AaveV2EthereumAssets.CVX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#320) is too similar to AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#147)
Variable AaveV2EthereumAssets.ENJ_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#140) is too similar to AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#147)
Variable AaveV2EthereumAssets.ENS_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#306) is too similar to AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#147)
Variable AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#147) is too similar to AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#170)
Variable AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#147) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177)
Variable AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#147) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#184)
Variable AaveV2EthereumAssets.KNC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#147) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103)
Variable AaveV2EthereumAssets.KNC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#143) is too similar to AaveV2EthereumAssets.KNC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#145)
Variable AaveV2EthereumAssets.KNC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#143) is too similar to AaveV2EthereumAssets.KNC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#144)
Variable AaveV2EthereumAssets.KNC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#145) is too similar to AaveV2EthereumAssets.KNC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#144)
Variable AaveV2EthereumAssets.LINK_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#150) is too similar to AaveV2EthereumAssets.LINK_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#151)
Variable AaveV2EthereumAssets.LINK_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#150) is too similar to AaveV2EthereumAssets.LINK_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#152)
Variable AaveV2EthereumAssets.LINK_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#152) is too similar to AaveV2EthereumAssets.LINK_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#151)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#331) is too similar to AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#333)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#331) is too similar to AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#332)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#331) is too similar to AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#195)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#331) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#264)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#335-336) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#268-269)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#334) is too similar to AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#198)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#334) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#267)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#333) is too similar to AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#197)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#333) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#266)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#330) is too similar to AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#194)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#330) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#263)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#333) is too similar to AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#332)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#332) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#332) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#265)
Variable AaveV2EthereumAssets.MANA_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#158) is too similar to AaveV2EthereumAssets.MANA_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#159)
Variable AaveV2EthereumAssets.AAVE_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#110-111) is too similar to AaveV2EthereumAssets.MANA_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#162-163)
Variable AaveV2EthereumAssets.MANA_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#158) is too similar to AaveV2EthereumAssets.MANA_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#160)
Variable AaveV2EthereumAssets.MANA_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#160) is too similar to AaveV2EthereumAssets.MANA_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#159)
Variable AaveV2EthereumAssets.MKR_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#166) is too similar to AaveV2EthereumAssets.MKR_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#167)
Variable AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#170) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253)
Variable AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#170) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177)
Variable AaveV2EthereumAssets.MKR_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#166) is too similar to AaveV2EthereumAssets.MKR_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#168)
Variable AaveV2EthereumAssets.MKR_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#168) is too similar to AaveV2EthereumAssets.MKR_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#167)
Variable AaveV2EthereumAssets.ONE_INCH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#323) is too similar to AaveV2EthereumAssets.ONE_INCH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#325)
Variable AaveV2EthereumAssets.ONE_INCH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#323) is too similar to AaveV2EthereumAssets.ONE_INCH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#324)
Variable AaveV2EthereumAssets.ONE_INCH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#325) is too similar to AaveV2EthereumAssets.ONE_INCH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#324)
Variable AaveV2EthereumAssets.RAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#249) is too similar to AaveV2EthereumAssets.RAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#251)
Variable AaveV2EthereumAssets.RAI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#249) is too similar to AaveV2EthereumAssets.RAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#250)
Variable AaveV2EthereumAssets.BAT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#118) is too similar to AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253)
Variable AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103)
Variable AaveV2EthereumAssets.DAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#131) is too similar to AaveV2EthereumAssets.RAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#251)
Variable AaveV2EthereumAssets.RAI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#251) is too similar to AaveV2EthereumAssets.RAI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#250)
Variable AaveV2EthereumAssets.REN_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#173) is too similar to AaveV2EthereumAssets.REN_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#175)
Variable AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253) is too similar to AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177)
Variable AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177) is too similar to AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#184)
Variable AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103)
Variable AaveV2EthereumAssets.ENJ_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#135) is too similar to AaveV2EthereumAssets.REN_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#172)
Variable AaveV2EthereumAssets.ENJ_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#137) is too similar to AaveV2EthereumAssets.REN_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#174)
Variable AaveV2EthereumAssets.ENS_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#303) is too similar to AaveV2EthereumAssets.REN_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#174)
Variable AaveV2EthereumAssets.REN_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#173) is too similar to AaveV2EthereumAssets.REN_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#174)
Variable AaveV2EthereumAssets.REN_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#175) is too similar to AaveV2EthereumAssets.REN_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#174)
Variable AaveV2EthereumAssets.SNX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#180) is too similar to AaveV2EthereumAssets.SNX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#182)
Variable AaveV2EthereumAssets.SNX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#182) is too similar to AaveV2EthereumAssets.SNX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#181)
Variable AaveV2EthereumAssets.SNX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#180) is too similar to AaveV2EthereumAssets.SNX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#181)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#195) is too similar to AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#197)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#195) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#125-126) is too similar to AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#199-200)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#222-223) is too similar to AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#199-200)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#335-336) is too similar to AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#199-200)
Variable AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#199-200) is too similar to AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#207-208)
Variable AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#199-200) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#268-269)
Variable AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#199-200) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#65-66)
Variable AaveV2EthereumAssets.TUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#199-200) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#191-192)
Variable AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#198) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#267)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#197) is too similar to AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196)
Variable AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#184) is too similar to AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103)
Variable AaveV2EthereumAssets.UNI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#99) is too similar to AaveV2EthereumAssets.UNI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#101)
Variable AaveV2EthereumAssets.UNI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#101) is too similar to AaveV2EthereumAssets.UNI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#100)
Variable AaveV2EthereumAssets.UNI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#99) is too similar to AaveV2EthereumAssets.UNI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#100)
Variable AaveV2EthereumAssets.BUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#121) is too similar to AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#203)
Variable AaveV2EthereumAssets.GUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#218) is too similar to AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#203)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#331) is too similar to AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#203)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#195) is too similar to AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#203)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#203) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#203) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#204)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#203) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#264)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#203) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#61)
Variable AaveV2EthereumAssets.USDC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#203) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187)
Variable AaveV2EthereumAssets.BUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#125-126) is too similar to AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#207-208)
Variable AaveV2EthereumAssets.GUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#222-223) is too similar to AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#207-208)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#335-336) is too similar to AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#207-208)
Variable AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#207-208) is too similar to AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#268-269)
Variable AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#207-208) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#65-66)
Variable AaveV2EthereumAssets.USDC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#207-208) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#191-192)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#124) is too similar to AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#206)
Variable AaveV2EthereumAssets.GUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#221) is too similar to AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#206)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#334) is too similar to AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#206)
Variable AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#198) is too similar to AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#206)
Variable AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#206) is too similar to AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#267)
Variable AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#206) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#64)
Variable AaveV2EthereumAssets.USDC_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#206) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#190)
Variable AaveV2EthereumAssets.BUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#123) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.GUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#220) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#333) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#197) is too similar to AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#205)
Variable AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#205) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#266)
Variable AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#205) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#63)
Variable AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#205) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189)
Variable AaveV2EthereumAssets.BUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#120) is too similar to AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#202)
Variable AaveV2EthereumAssets.GUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#217) is too similar to AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#202)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#330) is too similar to AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#202)
Variable AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#194) is too similar to AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#202)
Variable AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#202) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#263)
Variable AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#202) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#60)
Variable AaveV2EthereumAssets.USDC_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#202) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#186)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#122) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#204)
Variable AaveV2EthereumAssets.GUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#219) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#204)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#332) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#204)
Variable AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#204)
Variable AaveV2EthereumAssets.USDC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#205) is too similar to AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#204)
Variable AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#204) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#265)
Variable AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#204) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#62)
Variable AaveV2EthereumAssets.USDC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#204) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#195) is too similar to AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#264)
Variable AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#264) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#266)
Variable AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#264) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#265)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#197) is too similar to AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#266)
Variable AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#194) is too similar to AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#263)
Variable AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#265)
Variable AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#266) is too similar to AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#265)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#331) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#61)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#195) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#61)
Variable AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#264) is too similar to AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#61)
Variable AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#61) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#63)
Variable AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#61) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#62)
Variable AaveV2EthereumAssets.USDT_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#61) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#335-336) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#65-66)
Variable AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#268-269) is too similar to AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#65-66)
Variable AaveV2EthereumAssets.USDT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#65-66) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#191-192)
Variable AaveV2EthereumAssets.BUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#124) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#64)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#334) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#64)
Variable AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#198) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#64)
Variable AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#267) is too similar to AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#64)
Variable AaveV2EthereumAssets.USDT_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#64) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#190)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#333) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#63)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#197) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#63)
Variable AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#266) is too similar to AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#63)
Variable AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#63) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#62)
Variable AaveV2EthereumAssets.USDT_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#63) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#330) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#60)
Variable AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#194) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#60)
Variable AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#263) is too similar to AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#60)
Variable AaveV2EthereumAssets.USDT_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#60) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#186)
Variable AaveV2EthereumAssets.BUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#122) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#62)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#332) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#62)
Variable AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#62)
Variable AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#265) is too similar to AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#62)
Variable AaveV2EthereumAssets.USDT_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#62) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188)
Variable AaveV2EthereumAssets.UST_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#309) is too similar to AaveV2EthereumAssets.UST_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#311)
Variable AaveV2EthereumAssets.UST_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#309) is too similar to AaveV2EthereumAssets.UST_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#310)
Variable AaveV2EthereumAssets.BAT_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#118) is too similar to AaveV2EthereumAssets.UST_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#313)
Variable AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#184) is too similar to AaveV2EthereumAssets.UST_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#313)
Variable AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103) is too similar to AaveV2EthereumAssets.UST_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#313)
Variable AaveV2EthereumAssets.UST_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#311) is too similar to AaveV2EthereumAssets.UST_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#310)
Variable AaveV2EthereumAssets.WBTC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#69) is too similar to AaveV2EthereumAssets.WBTC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#71)
Variable AaveV2EthereumAssets.WBTC_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#69) is too similar to AaveV2EthereumAssets.WBTC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#70)
Variable AaveV2EthereumAssets.WBTC_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#71) is too similar to AaveV2EthereumAssets.WBTC_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#70)
Variable AaveV2EthereumAssets.WETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#77) is too similar to AaveV2EthereumAssets.WETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#78)
Variable AaveV2EthereumAssets.WBTC_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#73-74) is too similar to AaveV2EthereumAssets.WETH_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#81-82)
Variable AaveV2EthereumAssets.WETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#77) is too similar to AaveV2EthereumAssets.WETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#79)
Variable AaveV2EthereumAssets.WETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#79) is too similar to AaveV2EthereumAssets.WETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#78)
Variable AaveV2EthereumAssets.FEI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#287) is too similar to AaveV2EthereumAssets.YFI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#85)
Variable AaveV2EthereumAssets.YFI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#85) is too similar to AaveV2EthereumAssets.YFI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#87)
Variable AaveV2EthereumAssets.YFI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#85) is too similar to AaveV2EthereumAssets.YFI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#86)
Variable AaveV2EthereumAssets.DAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#133) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#89)
Variable AaveV2EthereumAssets.DPI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#276) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#89)
Variable AaveV2EthereumAssets.FEI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#291) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#89)
Variable AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#89)
Variable AaveV2EthereumAssets.UNI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#103) is too similar to AaveV2EthereumAssets.YFI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#89)
Variable AaveV2EthereumAssets.FEI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#289) is too similar to AaveV2EthereumAssets.YFI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#87)
Variable AaveV2EthereumAssets.YFI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#87) is too similar to AaveV2EthereumAssets.YFI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#86)
Variable AaveV2EthereumAssets.FEI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#286) is too similar to AaveV2EthereumAssets.YFI_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#84)
Variable AaveV2EthereumAssets.CVX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#320) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.MKR_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#170) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.RAI_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#253) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.REN_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#177) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.SNX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#184) is too similar to AaveV2EthereumAssets.ZRX_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#96)
Variable AaveV2EthereumAssets.ZRX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#92) is too similar to AaveV2EthereumAssets.ZRX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#94)
Variable AaveV2EthereumAssets.ZRX_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#94) is too similar to AaveV2EthereumAssets.ZRX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.ZRX_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#92) is too similar to AaveV2EthereumAssets.ZRX_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#93)
Variable AaveV2EthereumAssets.renFIL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#241) is too similar to AaveV2EthereumAssets.renFIL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#243)
Variable AaveV2EthereumAssets.renFIL_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#241) is too similar to AaveV2EthereumAssets.renFIL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#242)
Variable AaveV2EthereumAssets.renFIL_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#243) is too similar to AaveV2EthereumAssets.renFIL_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#242)
Variable AaveV2EthereumAssets.LUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#331) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187)
Variable AaveV2EthereumAssets.TUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#195) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187)
Variable AaveV2EthereumAssets.USDP_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#264) is too similar to AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187)
Variable AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189)
Variable AaveV2EthereumAssets.sUSD_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#187) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188)
Variable AaveV2EthereumAssets.LUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#335-336) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#191-192)
Variable AaveV2EthereumAssets.USDP_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#268-269) is too similar to AaveV2EthereumAssets.sUSD_INTEREST_RATE_STRATEGY (lib/aave-address-book/src/AaveV2Ethereum.sol#191-192)
Variable AaveV2EthereumAssets.LUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#334) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#190)
Variable AaveV2EthereumAssets.TUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#198) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#190)
Variable AaveV2EthereumAssets.USDP_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#267) is too similar to AaveV2EthereumAssets.sUSD_ORACLE (lib/aave-address-book/src/AaveV2Ethereum.sol#190)
Variable AaveV2EthereumAssets.LUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#333) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189)
Variable AaveV2EthereumAssets.TUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#197) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189)
Variable AaveV2EthereumAssets.USDP_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#266) is too similar to AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189)
Variable AaveV2EthereumAssets.LUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#330) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#186)
Variable AaveV2EthereumAssets.TUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#194) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#186)
Variable AaveV2EthereumAssets.USDP_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#263) is too similar to AaveV2EthereumAssets.sUSD_UNDERLYING (lib/aave-address-book/src/AaveV2Ethereum.sol#186)
Variable AaveV2EthereumAssets.LUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#332) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188)
Variable AaveV2EthereumAssets.TUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#196) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188)
Variable AaveV2EthereumAssets.USDP_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#265) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188)
Variable AaveV2EthereumAssets.sUSD_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#189) is too similar to AaveV2EthereumAssets.sUSD_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#188)
Variable AaveV2EthereumAssets.stETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#294) is too similar to AaveV2EthereumAssets.stETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#296)
Variable AaveV2EthereumAssets.stETH_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#294) is too similar to AaveV2EthereumAssets.stETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#295)
Variable AaveV2EthereumAssets.stETH_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#296) is too similar to AaveV2EthereumAssets.stETH_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#295)
Variable AaveV2EthereumAssets.xSUSHI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#233) is too similar to AaveV2EthereumAssets.xSUSHI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#235)
Variable AaveV2EthereumAssets.xSUSHI_A_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#233) is too similar to AaveV2EthereumAssets.xSUSHI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#234)
Variable AaveV2EthereumAssets.xSUSHI_S_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#235) is too similar to AaveV2EthereumAssets.xSUSHI_V_TOKEN (lib/aave-address-book/src/AaveV2Ethereum.sol#234)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar
INFO:Slither:0x5a1c6e2c7e7b309e6e39fdcd88d6d96e783cf5ee analyzed (16 contracts with 82 detectors), 401 result(s) found
Slither report for InitializableAdminUpgradeabilityProxy 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 Collector at `0x80f2c02224a2E548FC67c0bF705eBFA825dd5439`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x80f2c02224a2e548fc67c0bf705ebfa825dd5439-Collector' running
INFO:Detectors:
Collector.balanceOf(uint256,address).vars (src/contracts/Collector.sol#168) is a local variable never initialized
Collector.createStream(address,uint256,address,uint256,uint256).vars (src/contracts/Collector.sol#259) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
Collector.deltaOf(uint256) (src/contracts/Collector.sol#149-154) uses timestamp for comparisons
Dangerous comparisons:
- block.timestamp <= stream.startTime (src/contracts/Collector.sol#151)
- block.timestamp < stream.stopTime (src/contracts/Collector.sol#152)
Collector.createStream(address,uint256,address,uint256,uint256) (src/contracts/Collector.sol#245-297) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(startTime >= block.timestamp,start time before block.timestamp) (src/contracts/Collector.sol#256)
Collector.withdrawFromStream(uint256,uint256) (src/contracts/Collector.sol#306-323) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(balance >= amount,amount exceeds the available balance) (src/contracts/Collector.sol#314)
Collector.cancelStream(uint256) (src/contracts/Collector.sol#331-345) uses timestamp for comparisons
Dangerous comparisons:
- recipientBalance > 0 (src/contracts/Collector.sol#341)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
Address._revert(bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#236-248) uses assembly
- INLINE ASM (lib/solidity-utils/src/contracts/oz-common/Address.sol#241-244)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.functionCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#86-88) 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.functionDelegateCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#175-177) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#185-192) is never used and should be removed
Address.functionStaticCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#146-152) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#160-167) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#224-234) is never used and should be removed
SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#71-82) is never used and should be removed
SafeERC20.safeIncreaseAllowance(IERC20,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#62-69) is never used and should be removed
SafeERC20.safePermit(IERC20Permit,address,address,uint256,uint256,uint8,bytes32,bytes32) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#84-98) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#31-38) 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#160-167):
- (success,returndata) = target.staticcall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#165)
Low level call in Address.functionDelegateCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#185-192):
- (success,returndata) = target.delegatecall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#190)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Function IERC20Permit.DOMAIN_SEPARATOR() (lib/solidity-utils/src/contracts/oz-common/interfaces/draft-IERC20Permit.sol#60) is not in mixedCase
Variable Collector._fundsAdmin (src/contracts/Collector.sol#33) is not in mixedCase
Function ICollector.ETH_MOCK_ADDRESS() (src/interfaces/ICollector.sol#70) is not in mixedCase
Variable VersionedInitializable.______gap (src/libs/VersionedInitializable.sol#41) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x80f2c02224a2e548fc67c0bf705ebfa825dd5439 analyzed (8 contracts with 82 detectors), 26 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 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 WETH9 (Wrapped Ether) at `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
INFO:Detectors:
Reentrancy in WETH9.withdraw(uint256) (crytic-export/etherscan-contracts/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2-WETH9.sol#38-43):
External calls:
- msg.sender.transfer(wad) (crytic-export/etherscan-contracts/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2-WETH9.sol#41)
Event emitted after the call(s):
- Withdrawal(msg.sender,wad) (crytic-export/etherscan-contracts/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2-WETH9.sol#42)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-4
INFO:Slither:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 analyzed (1 contracts with 82 detectors), 1 result(s) found