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

Latest commit

 

History

History
2517 lines (2228 loc) · 211 KB

File metadata and controls

2517 lines (2228 loc) · 211 KB

Increase SupplyCap stMATIC Polygon & wETH Arbitrum

Updated as of block 17159648 at 4/30/2023, 11:06:35 AM ET

Subreports

Proposal text

Summary

This AIP increasing the stMATIC Supply Cap on Polygon from 21.0M to 25.0M units and the wETH Supply Cap on Arbitrum from 35,280 to 45,000 units.

Abstract

This AIP implements risk parameter changes to stMATIC Polgyon v3 adn wETH on Arbitrum v3.

The utilisation of the stMATIC reserve has reached 77.92% and this AIP will increase the SupplyCap by a further 19% to 25M units.

Utilisation of wETH Supply Cap on Arbitrum has reached 93.54% and this AIP will increase the Supply Cap from 35,280 to 45,000 units.

Motivation

Over the previous months, Llama has been working with various communities to craft favourable conditions on Aave v3 Polygon to facilitate the creation of several yield aggregation products. This has led to increase stMATIC deposits and the continual revision of Supply Caps enabling users to enter the yield maximising strategy.

This AIP is a continuation of LLama's efforts and presents the community the opportunity to enable stMATIC deposits to grow on Polygon v3.

Previously an AIP was submitted to increase the wETH Supply Cap on Arbitrum and although being approved, the upgrade was not executed. This AIP includes the Arbitum wETH Supply Cap upgrade in collaboration with Gauntlet.

The wETH Supply Cap is to be increased from 35,280 to 45,000 units on Arbitrum with no other changes being made.

Specification

The following risk parameters changes are presented:

Polygon

Ticker: stMATIC

Contract: 0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4

Parameter Current Value Proposed Value
SupplyCap 21,000,000M units 25,000,000 units

Arbitrum

Ticker: wETH

Contract: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1

Parameter Current Value Proposed Value
SupplyCap 35,280 units 45,000 units

Implementation

A list of relevant links like for this proposal:

Risk Service providers have endorsed the contents of this proposal.

The proposal Payload was reviewed by Bored Ghost Developing.

Copyright

Copyright and related rights waived via CC0.

Checks

Reports all state changes from the proposal ✅ Passed

Info:

  • State changes:
# KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
@@ Slot `0x0501829a2098dcd24ef0e30c5f88882a2714e55fb810652c8592bc4a0915fbaf` @@
- "0x00000023544a0467b65a11fc9efa0a617c0552f1558c95993aa8b8a68b3e709c"
+ "0x00000023d85b65ef161c5c5e9efa0a617c0552f1558c95993aa8b8a68b3e709c"
@@ `s_upkeep` key `"95299183306293242919258731417449887125989356901836642522229237728515662948291"`.balance @@
- 83407347993194085571
+ 73890853271528469089
@@ `s_upkeep` key `"95299183306293242919258731417449887125989356901836642522229237728515662948291"`.executeGas @@
- 3052585789
+ 364187039
# StateSender at `0x28e4F3a7f651294B9564800b2D01f35189A5bFbE`
@@ counter @@
- 2669810
+ 2669811
# TransparentUpgradeableProxy at `0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a` with implementation Bridge at `0x1066CEcC8880948FE55e427E94F1FF221d626591`
@@ Slot `0x0000000000000000000000000000000000000000000000000000000000000006` @@
- "0x00000000000000000000000000000000000000000000000000000000000c7191"
+ "0x00000000000000000000000000000000000000000000000000000000000c7192"
@@ Slot `0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f37887ed0` @@
- "0x0000000000000000000000000000000000000000000000000000000000000000"
+ "0xaeae4751409c087b2c2d184163c0be5efab05b49a67ad5123f50bd3de4389791"

Check stack trace of the proposal ✅ Passed

Info:

  • There is no SELFDESTRUCT inside of delegated call

Reports all events emitted from the proposal ✅ Passed

Info:

  • Events Emitted:
    • StateSender at 0x28e4F3a7f651294B9564800b2D01f35189A5bFbE
      • StateSynced(id: 2669811, contractAddress: 0x8397259c983751daf40400790063935a11afa28a, data: 0x000000000000000000000000ee56e2b3d491590b5b31738cc34d5232f378a8d5000000000000000000000000dc9a35b16db4e126cfedc41322b3a36454b1f7720000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000100000000000000000000000026366920975b24a89cd991a495d0d70cb8e1ba1f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009657865637574652829000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001)
    • TransparentUpgradeableProxy at 0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a with implementation Bridge at 0x1066CEcC8880948FE55e427E94F1FF221d626591
      • MessageDelivered(messageIndex: 815505, beforeInboxAcc: 0xb15530ebec4543f3e6668b0988cb86912b9b27ad978a8cc1044dd7e29cde7773, inbox: 0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f, kind: 9, sender: 0xff67e2b3d491590b5b31738cc34d5232f378b9e6, messageDataHash: 0xd19d40a503a8dd00294ffea53b1a1baf790788cfcf43593b32a42266c24f8966, baseFeeL1: 59245726957, timestamp: 1682866199)
    • TransparentUpgradeableProxy at 0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f with implementation Inbox at 0x5aED5f8A1e3607476F1f81c3d8fe126deB0aFE94
      • InboxMessageDelivered(messageNum: 815505, data: 0x0000000000000000000000007d9103572be58ffe99dc390e8246f02dcae6f61100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cc9bb8e6c5d000000000000000000000000000000000000000000000000000013355eec0a5d00000000000000000000000007d9103572be58ffe99dc390e8246f02dcae6f611000000000000000000000000bbd9f90699c1fa0d7a65870d241dd1f1217c96eb000000000000000000000000000000000000000000000000000000000006ddd0000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000244d9a4cbdf00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004c68fda91bfb4683eab90017d9b76a99f2d77eed00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009657865637574652829000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001)
    • KeeperRegistry at 0x02777053d6764996e594c3E88AF1D58D5363a2e6
      • UpkeepPerformed(id: 95299183306293242919258731417449887125989356901836642522229237728515662948291, success: true, from: 0x33512418380f170e5752fc233f1326f3e805ea62, payment: 9516494721665616482, performData: 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000d10000000000000000000000000000000000000000000000000000000000000001)

Check all targets are verified on Etherscan ✅ Passed

Info:

  • Targets:
    • 0x158a6bC04F0828318821baE797f50B0A1299d45b: Contract (verified) (CrosschainForwarderPolygon)
    • 0xd1B3E25fD7C8AE7CADDC6F71b461b79CD4ddcFa3: Contract (not verified)

Check all touched contracts are verified on Etherscan ✅ Passed

Info:

  • Touched address:
    • 0x33512418380F170e5752Fc233F1326f3e805eA62: EOA (verification not applicable)
    • 0x02777053d6764996e594c3E88AF1D58D5363a2e6: Contract (verified) (KeeperRegistry)
    • 0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C: Contract (verified) (EACAggregatorProxy)
    • 0x785433d8b06D77D68dF6be63944742130A4530d1: Contract (verified) (AccessControlledOffchainAggregator)
    • 0xDC530D9457755926550b59e8ECcdaE7624181557: Contract (verified) (EACAggregatorProxy)
    • 0xbba12740DE905707251525477bAD74985DeC46D2: Contract (verified) (AccessControlledOffchainAggregator)
    • 0x943AcD0c93d7a8Bee7dA5Fd0DC3d0028237074d6: Contract (verified) (EthRobotKeeper)
    • 0xEC568fffba86c094cf06b22134B23074DFE2252c: Contract (verified) (AaveGovernanceV2)
    • 0xEE56e2B3D491590B5b31738cC34d5232F378a8D5: Contract (verified) (Executor)
    • 0xb7e383ef9B1E9189Fc0F71fb30af8aa14377429e: Contract (verified) (GovernanceStrategy)
    • 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9: Contract (verified) (InitializableAdminUpgradeabilityProxy)
    • 0x96F68837877fd0414B55050c9e794AECdBcfCA59: Contract (verified) (AaveTokenV2)
    • 0x158a6bC04F0828318821baE797f50B0A1299d45b: Contract (verified) (CrosschainForwarderPolygon)
    • 0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2: Contract (verified) (FxRoot)
    • 0x28e4F3a7f651294B9564800b2D01f35189A5bFbE: Contract (verified) (StateSender)
    • 0xd1B3E25fD7C8AE7CADDC6F71b461b79CD4ddcFa3: Contract (not verified)
    • 0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f: Contract (verified) (TransparentUpgradeableProxy)
    • 0x5aED5f8A1e3607476F1f81c3d8fe126deB0aFE94: Contract (verified) (Inbox)
    • 0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a: Contract (verified) (TransparentUpgradeableProxy)
    • 0x1066CEcC8880948FE55e427E94F1FF221d626591: Contract (verified) (Bridge)

Runs solc against the verified contracts ✅ Passed

Info:

View Details
View warnings for EACAggregatorProxy at `0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C`
WARNING:CryticCompile:Warning: crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol:283:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol:273:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

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

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

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

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

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

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

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

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

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

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

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


View warnings for AccessControlledOffchainAggregator at `0x785433d8b06D77D68dF6be63944742130A4530d1`
WARNING:CryticCompile:Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

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

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


View warnings for InitializableAdminUpgradeabilityProxy at `0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9` with implementation AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
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 EthRobotKeeper at `0x943AcD0c93d7a8Bee7dA5Fd0DC3d0028237074d6`
ERROR:CryticCompile:ParserError: ParserError: Source "aave-address-book/AaveGovernanceV2.sol" not found: File not found. Searched the following locations: "".
 --> src/contracts/EthRobotKeeper.sol:4:1:
  |
4 | import {IAaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


ParserError: ParserError: Source "solidity-utils/contracts/oz-common/Ownable.sol" not found: File not found. Searched the following locations: "".
 --> src/contracts/EthRobotKeeper.sol:7:1:
  |
7 | import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


ParserError: ParserError: Source "chainlink-brownie-contracts/interfaces/AutomationCompatibleInterface.sol" not found: File not found. Searched the following locations: "".
 --> src/interfaces/IGovernanceRobotKeeper.sol:4:1:
  |
4 | import {AutomationCompatibleInterface} from 'chainlink-brownie-contracts/interfaces/AutomationCompatibleInterface.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


ParserError: ParserError: Source "aave-address-book/AaveGovernanceV2.sol" not found: File not found. Searched the following locations: "".
 --> src/interfaces/IProposalValidator.sol:5:1:
  |
5 | import {IAaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^



View warnings for AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
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 AccessControlledOffchainAggregator at `0xbba12740DE905707251525477bAD74985DeC46D2`
WARNING:CryticCompile:Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

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

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


View warnings for EACAggregatorProxy at `0xDC530D9457755926550b59e8ECcdaE7624181557`
WARNING:CryticCompile:Warning: crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol:283:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol:273:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

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

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

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

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

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

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

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

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

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

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

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


Runs slither against the verified contracts ✅ Passed

Info:

View Details
Slither report for KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 163, 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 837, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
  File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 90, in process_all
    compilations = compile_all(target, **vars(args))
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 643, 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 362, in compile
    solc_standard_json.standalone_compile(filenames, compilation_unit, working_dir=working_dir)
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 66, 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 193, 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 86, 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.8.13/solc-0.8.13'

ERROR:root:Error in 0x02777053d6764996e594c3E88AF1D58D5363a2e6
ERROR:root:Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 163, 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 837, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
  File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 90, in process_all
    compilations = compile_all(target, **vars(args))
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 643, 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 362, in compile
    solc_standard_json.standalone_compile(filenames, compilation_unit, working_dir=working_dir)
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 66, 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 193, 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 86, 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.8.13/solc-0.8.13'


Slither report for Bridge at `0x1066CEcC8880948FE55e427E94F1FF221d626591`
INFO:Detectors:
Reentrancy in Bridge.executeCall(address,uint256,bytes) (src/bridge/Bridge.sol#205-222):
	External calls:
	- (success,returnData) = to.call{value: value}(data) (src/bridge/Bridge.sol#219)
	State variables written after the call(s):
	- _activeOutbox = prevOutbox (src/bridge/Bridge.sol#220)
	Bridge._activeOutbox (src/bridge/Bridge.sol#46) can be used in cross function reentrancies:
	- Bridge.activeOutbox() (src/bridge/Bridge.sol#77-85)
	- Bridge.executeCall(address,uint256,bytes) (src/bridge/Bridge.sol#205-222)
	- Bridge.initialize(IOwnable) (src/bridge/Bridge.sol#61-64)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities
INFO:Detectors:
Bridge.setSequencerInbox(address)._sequencerInbox (src/bridge/Bridge.sol#224) lacks a zero-check on :
		- sequencerInbox = _sequencerInbox (src/bridge/Bridge.sol#225)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Reentrancy in Bridge.executeCall(address,uint256,bytes) (src/bridge/Bridge.sol#205-222):
	External calls:
	- (success,returnData) = to.call{value: value}(data) (src/bridge/Bridge.sol#219)
	Event emitted after the call(s):
	- BridgeCallTriggered(msg.sender,to,value,data) (src/bridge/Bridge.sol#221)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
Bridge.addMessageToDelayedAccumulator(uint8,address,uint64,uint64,uint256,bytes32) (src/bridge/Bridge.sol#169-203) uses timestamp for comparisons
	Dangerous comparisons:
	- count > 0 (src/bridge/Bridge.sol#188)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
AddressUpgradeable.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#174-194) uses assembly
	- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#186-189)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
AddressUpgradeable.functionCall(address,bytes) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#85-87) is never used and should be removed
AddressUpgradeable.functionCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#95-101) is never used and should be removed
AddressUpgradeable.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#114-120) is never used and should be removed
AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#128-139) is never used and should be removed
AddressUpgradeable.functionStaticCall(address,bytes) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#147-149) is never used and should be removed
AddressUpgradeable.functionStaticCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#157-166) is never used and should be removed
AddressUpgradeable.sendValue(address,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#60-65) is never used and should be removed
AddressUpgradeable.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#174-194) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in AddressUpgradeable.sendValue(address,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#60-65):
	- (success) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#63)
Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#128-139):
	- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#137)
Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#157-166):
	- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#164)
Low level call in Bridge.executeCall(address,uint256,bytes) (src/bridge/Bridge.sol#205-222):
	- (success,returnData) = to.call{value: value}(data) (src/bridge/Bridge.sol#219)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Parameter Bridge.setSequencerInbox(address)._sequencerInbox (src/bridge/Bridge.sol#224) is not in mixedCase
Variable DelegateCallAware.__self (src/libraries/DelegateCallAware.sol#12) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x1066CEcC8880948FE55e427E94F1FF221d626591 analyzed (7 contracts with 79 detectors), 19 result(s) found
Slither report for CrosschainForwarderPolygon at `0x158a6bC04F0828318821baE797f50B0A1299d45b`
INFO:Slither:0x158a6bC04F0828318821baE797f50B0A1299d45b analyzed (2 contracts with 79 detectors), 0 result(s) found
Slither report for EACAggregatorProxy at `0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C`
Warning: crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol:283:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol:273:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

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

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

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

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

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

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

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

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

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

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

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


INFO:Detectors:
AggregatorProxy.latestRoundData().updatedAt_scope_3 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#334) is a local variable never initialized
AggregatorProxy.latestRoundData().answer_scope_1 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#332) is a local variable never initialized
AggregatorProxy.getRoundData(uint80).startedAt_scope_2 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#285) is a local variable never initialized
AggregatorProxy.getRoundData(uint80).roundId_scope_0 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#283) is a local variable never initialized
AggregatorProxy.latestRoundData().startedAt_scope_2 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#333) is a local variable never initialized
AggregatorProxy.getRoundData(uint80).answer_scope_1 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#284) is a local variable never initialized
AggregatorProxy.latestRoundData().roundId_scope_0 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#331) is a local variable never initialized
AggregatorProxy.getRoundData(uint80).updatedAt_scope_3 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#286) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
AggregatorProxy.getAnswer(uint256).phaseId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#189) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getAnswer(uint256).aggregator (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#190) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getTimestamp(uint256).phaseId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#214) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getTimestamp(uint256).aggregator (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#215) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getRoundData(uint80).phaseId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#280) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getRoundData(uint80).roundId_scope_0 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#283) shadows:
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#273) (return variable)
AggregatorProxy.getRoundData(uint80).answer_scope_1 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#284) shadows:
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#274) (return variable)
AggregatorProxy.getRoundData(uint80).startedAt_scope_2 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#285) shadows:
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#275) (return variable)
AggregatorProxy.getRoundData(uint80).updatedAt_scope_3 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#286) shadows:
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#276) (return variable)
AggregatorProxy.latestRoundData().roundId_scope_0 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#331) shadows:
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#321) (return variable)
AggregatorProxy.latestRoundData().answer_scope_1 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#332) shadows:
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#322) (return variable)
AggregatorProxy.latestRoundData().startedAt_scope_2 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#333) shadows:
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#323) (return variable)
AggregatorProxy.latestRoundData().updatedAt_scope_3 (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#334) shadows:
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#324) (return variable)
AggregatorProxy.parseIds(uint256).phaseId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#513) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.addPhaseIds(uint80,int256,uint256,uint256,uint80,uint16).phaseId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#525) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#410-416) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#30) lacks a zero-check on :
		- pendingOwner = _to (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Parameter Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#30) is not in mixedCase
Parameter AggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#180) is not in mixedCase
Parameter AggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#205) is not in mixedCase
Parameter AggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#267) is not in mixedCase
Parameter AggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#353) is not in mixedCase
Parameter AggregatorProxy.proposeAggregator(address)._aggregator (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#459) is not in mixedCase
Parameter AggregatorProxy.confirmAggregator(address)._aggregator (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#473) is not in mixedCase
Parameter AggregatorProxy.setAggregator(address)._aggregator (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#487) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._phase (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#496) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._originalId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#497) is not in mixedCase
Parameter AggregatorProxy.parseIds(uint256)._roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#507) is not in mixedCase
Parameter EACAggregatorProxy.setController(address)._accessController (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#582) is not in mixedCase
Parameter EACAggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#638) is not in mixedCase
Parameter EACAggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#658) is not in mixedCase
Parameter EACAggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#710) is not in mixedCase
Parameter EACAggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C-EACAggregatorProxy.sol#776) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C analyzed (7 contracts with 79 detectors), 40 result(s) found
Slither report for StateSender at `0x28e4F3a7f651294B9564800b2D01f35189A5bFbE`
INFO:Detectors:
SafeMath.div(uint256,uint256) (crytic-export/etherscan-contracts/0x28e4F3a7f651294B9564800b2D01f35189A5bFbE-StateSender.sol#96-103) is never used and should be removed
SafeMath.mod(uint256,uint256) (crytic-export/etherscan-contracts/0x28e4F3a7f651294B9564800b2D01f35189A5bFbE-StateSender.sol#129-132) is never used and should be removed
SafeMath.mul(uint256,uint256) (crytic-export/etherscan-contracts/0x28e4F3a7f651294B9564800b2D01f35189A5bFbE-StateSender.sol#79-91) is never used and should be removed
SafeMath.sub(uint256,uint256) (crytic-export/etherscan-contracts/0x28e4F3a7f651294B9564800b2D01f35189A5bFbE-StateSender.sol#108-113) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Slither:0x28e4F3a7f651294B9564800b2D01f35189A5bFbE analyzed (3 contracts with 79 detectors), 4 result(s) found
Slither report for TransparentUpgradeableProxy at `0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f` with implementation Inbox at `0x5aED5f8A1e3607476F1f81c3d8fe126deB0aFE94`
INFO:Detectors:
TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#116-119) ignores return value by Address.functionDelegateCall(newImplementation,data) (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#118)
UpgradeableProxy.constructor(address,bytes) (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#24-30) ignores return value by Address.functionDelegateCall(_logic,_data) (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#28)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
Modifier TransparentUpgradeableProxy.ifAdmin() (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#53-59) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Proxy._delegate(address) (@openzeppelin/contracts/proxy/Proxy.sol#21-41) uses assembly
	- INLINE ASM (@openzeppelin/contracts/proxy/Proxy.sol#23-40)
TransparentUpgradeableProxy._admin() (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#124-130) uses assembly
	- INLINE ASM (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#127-129)
TransparentUpgradeableProxy._setAdmin(address) (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#135-142) uses assembly
	- INLINE ASM (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#139-141)
UpgradeableProxy._implementation() (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#47-53) uses assembly
	- INLINE ASM (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#50-52)
UpgradeableProxy._setImplementation(address) (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#68-77) uses assembly
	- INLINE ASM (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#74-76)
Address.isContract(address) (@openzeppelin/contracts/utils/Address.sol#26-35) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#33)
Address._verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#171-188) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#180-183)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.functionCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#79-81) is never used and should be removed
Address.functionCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#89-91) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts/utils/Address.sol#104-106) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#114-121) is never used and should be removed
Address.functionStaticCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#129-131) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#139-145) is never used and should be removed
Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#53-59) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#53-59):
	- (success) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#57)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#114-121):
	- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#119)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#139-145):
	- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#143)
Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#163-169):
	- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#167)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Slither:0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f analyzed (4 contracts with 79 detectors), 21 result(s) found
Slither report for Inbox at `0x5aED5f8A1e3607476F1f81c3d8fe126deB0aFE94`
INFO:Detectors:
GasRefundEnabled.refundsGas(IGasRefunder) (src/libraries/IGasRefunder.sol#20-41) ignores return value by gasRefunder.onGasSpent(address(msg.sender),startGasLeft - gasleft()(),calldataSize) (src/libraries/IGasRefunder.sol#39)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
Reentrancy in Inbox._deliverMessage(uint8,address,bytes) (src/bridge/Inbox.sol#608-618):
	External calls:
	- msgNum = deliverToBridge(_kind,_sender,keccak256(bytes)(_messageData)) (src/bridge/Inbox.sol#615)
		- bridge.enqueueDelayedMessage{value: msg.value}(kind,AddressAliasHelper.applyL1ToL2Alias(sender),messageDataHash) (src/bridge/Inbox.sol#625-630)
	Event emitted after the call(s):
	- InboxMessageDelivered(msgNum,_messageData) (src/bridge/Inbox.sol#616)
Reentrancy in Inbox.sendL2MessageFromOrigin(bytes) (src/bridge/Inbox.sol#130-144):
	External calls:
	- msgNum = deliverToBridge(L2_MSG,msg.sender,keccak256(bytes)(messageData)) (src/bridge/Inbox.sol#141)
		- bridge.enqueueDelayedMessage{value: msg.value}(kind,AddressAliasHelper.applyL1ToL2Alias(sender),messageDataHash) (src/bridge/Inbox.sol#625-630)
	Event emitted after the call(s):
	- InboxMessageDeliveredFromOrigin(msgNum) (src/bridge/Inbox.sol#142)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
AddressUpgradeable.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#174-194) uses assembly
	- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#186-189)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
AddressUpgradeable.functionCall(address,bytes) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#85-87) is never used and should be removed
AddressUpgradeable.functionCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#95-101) is never used and should be removed
AddressUpgradeable.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#114-120) is never used and should be removed
AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#128-139) is never used and should be removed
AddressUpgradeable.functionStaticCall(address,bytes) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#147-149) is never used and should be removed
AddressUpgradeable.functionStaticCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#157-166) is never used and should be removed
AddressUpgradeable.sendValue(address,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#60-65) is never used and should be removed
AddressUpgradeable.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#174-194) is never used and should be removed
ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#18-19) is never used and should be removed
ContextUpgradeable.__Context_init_unchained() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is never used and should be removed
ContextUpgradeable._msgData() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#27-29) is never used and should be removed
Messages.accumulateInboxMessage(bytes32,bytes32) (src/bridge/Messages.sol#31-37) is never used and should be removed
Messages.messageHash(uint8,address,uint64,uint64,uint256,uint256,bytes32) (src/bridge/Messages.sol#8-29) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in AddressUpgradeable.sendValue(address,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#60-65):
	- (success) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#63)
Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#128-139):
	- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#137)
Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#157-166):
	- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#164)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Function PausableUpgradeable.__Pausable_init() (@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol#34-36) is not in mixedCase
Function PausableUpgradeable.__Pausable_init_unchained() (@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol#38-40) is not in mixedCase
Variable PausableUpgradeable.__gap (@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol#102) is not in mixedCase
Function ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#18-19) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Variable ContextUpgradeable.__gap (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#36) is not in mixedCase
Function ISequencerInbox.HEADER_LENGTH() (src/bridge/ISequencerInbox.sol#61) is not in mixedCase
Function ISequencerInbox.DATA_AUTHENTICATED_FLAG() (src/bridge/ISequencerInbox.sol#66) is not in mixedCase
Parameter Inbox.setAllowListEnabled(bool)._allowListEnabled (src/bridge/Inbox.sol#70) is not in mixedCase
Parameter Inbox.initialize(IBridge,ISequencerInbox)._bridge (src/bridge/Inbox.sol#115) is not in mixedCase
Parameter Inbox.initialize(IBridge,ISequencerInbox)._sequencerInbox (src/bridge/Inbox.sol#115) is not in mixedCase
Variable DelegateCallAware.__self (src/libraries/DelegateCallAware.sol#12) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x5aED5f8A1e3607476F1f81c3d8fe126deB0aFE94 analyzed (16 contracts with 79 detectors), 32 result(s) found
Slither report for AccessControlledOffchainAggregator at `0x785433d8b06D77D68dF6be63944742130A4530d1`
Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

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

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


INFO:Detectors:
OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623) passes array OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84)by reference to OffchainAggregatorBilling.oracleRewards(bytes,uint16[31]) (OffchainAggregatorBilling.sol#392-406)which only takes arrays by value
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#modifying-storage-array-by-value
INFO:Detectors:
Reentrancy in OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei[oracle.index] = 1 (OffchainAggregatorBilling.sol#355)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts[oracle.index] = 1 (OffchainAggregatorBilling.sol#354)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei = gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#389)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts = observationsCounts (OffchainAggregatorBilling.sol#388)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#213-228):
	External calls:
	- payOracles() (OffchainAggregatorBilling.sol#225)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- setBillingInternal(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#226-227)
		- s_billing = Billing(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#198-199)
	OffchainAggregatorBilling.s_billing (OffchainAggregatorBilling.sol#66) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.getBilling() (OffchainAggregatorBilling.sol#238-257)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#189-202)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- delete s_oracles[signer] (OffchainAggregator.sol#165)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- delete s_oracles[transmitter] (OffchainAggregator.sol#166)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_signers[i]] = Oracle(uint8(i),Role.Signer) (OffchainAggregator.sol#176)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_transmitters[i]] = Oracle(uint8(i),Role.Transmitter) (OffchainAggregator.sol#182)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_signers.pop() (OffchainAggregator.sol#167)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_signers.push(_signers[i]) (OffchainAggregator.sol#183)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_transmitters.pop() (OffchainAggregator.sol#168)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
	- s_transmitters.push(_transmitters[i]) (OffchainAggregator.sol#184)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
Reentrancy in OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644):
	External calls:
	- validateAnswer(r.hotVars.latestAggregatorRoundId,median) (OffchainAggregator.sol#639)
		- av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
	State variables written after the call(s):
	- s_hotVars = r.hotVars (OffchainAggregator.sol#641)
	OffchainAggregator.s_hotVars (OffchainAggregator.sol#39) can be used in cross function reentrancies:
	- OffchainAggregator.latestAnswer() (OffchainAggregator.sol#653-661)
	- OffchainAggregator.latestConfigDetails() (OffchainAggregator.sol#235-245)
	- OffchainAggregator.latestRound() (OffchainAggregator.sol#679-687)
	- OffchainAggregator.latestRoundData() (OffchainAggregator.sol#791-817)
	- OffchainAggregator.latestTimestamp() (OffchainAggregator.sol#666-674)
	- OffchainAggregator.latestTransmissionDetails() (OffchainAggregator.sol#454-473)
	- OffchainAggregator.requestNewRound() (OffchainAggregator.sol#385-398)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
INFO:Detectors:
OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32).r (OffchainAggregator.sol#526) is a local variable never initialized
OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface).gas (OffchainAggregatorBilling.sol#163) is a local variable never initialized
OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface).counts (OffchainAggregatorBilling.sol#162) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
OffchainAggregator.validateAnswer(uint32,int256) (OffchainAggregator.sol#309-328) ignores return value by av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
AccessControlledOffchainAggregator.constructor(uint32,uint32,uint32,uint32,uint32,address,address,int192,int192,AccessControllerInterface,AccessControllerInterface,uint8,string).description (AccessControlledOffchainAggregator.sol#25) shadows:
	- AccessControlledOffchainAggregator.description() (AccessControlledOffchainAggregator.sol#108-116) (function)
	- OffchainAggregator.description() (OffchainAggregator.sol#740-748) (function)
	- AggregatorV3Interface.description() (AggregatorV3Interface.sol#7) (function)
OffchainAggregator.latestTransmissionDetails().latestAnswer (OffchainAggregator.sol#461) shadows:
	- OffchainAggregator.latestAnswer() (OffchainAggregator.sol#653-661) (function)
	- AggregatorInterface.latestAnswer() (AggregatorInterface.sol#5) (function)
OffchainAggregator.latestTransmissionDetails().latestTimestamp (OffchainAggregator.sol#462) shadows:
	- OffchainAggregator.latestTimestamp() (OffchainAggregator.sol#666-674) (function)
	- AggregatorInterface.latestTimestamp() (AggregatorInterface.sol#6) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (Owned.sol#30) lacks a zero-check on :
		- pendingOwner = _to (Owned.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358) has external calls inside a loop: require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
INFO:Detectors:
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- s_configCount += 1 (OffchainAggregator.sol#189)
	- s_hotVars.threshold = _threshold (OffchainAggregator.sol#186)
	- s_hotVars.latestConfigDigest = configDigestFromConfigData(address(this),configCount,_signers,_transmitters,_threshold,_encodedConfigVersion,_encoded) (OffchainAggregator.sol#192-200)
	- s_hotVars.latestEpochAndRound = 0 (OffchainAggregator.sol#201)
	- s_latestConfigBlockNumber = uint32(block.number) (OffchainAggregator.sol#188)
Reentrancy in OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644):
	External calls:
	- validateAnswer(r.hotVars.latestAggregatorRoundId,median) (OffchainAggregator.sol#639)
		- av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
	State variables written after the call(s):
	- reimburseAndRewardOracles(uint32(initialGas),r.observers) (OffchainAggregator.sol#643)
		- s_gasReimbursementsLinkWei[txOracle.index] = s_gasReimbursementsLinkWei[txOracle.index] + gasCostLinkWei + uint256(billing.linkGweiPerTransmission) * (1000000000) (OffchainAggregatorBilling.sol#615-617)
	- reimburseAndRewardOracles(uint32(initialGas),r.observers) (OffchainAggregator.sol#643)
		- s_oracleObservationsCounts = oracleRewards(observers,s_oracleObservationsCounts) (OffchainAggregatorBilling.sol#580-581)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2
INFO:Detectors:
Reentrancy in OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	Event emitted after the call(s):
	- OraclePaid(_transmitter,payee,linkWeiAmount) (OffchainAggregatorBilling.sol#356)
Reentrancy in OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	Event emitted after the call(s):
	- OraclePaid(transmitters[transmitteridx],payee,linkWeiAmount) (OffchainAggregatorBilling.sol#384)
Reentrancy in OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#213-228):
	External calls:
	- payOracles() (OffchainAggregatorBilling.sol#225)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	Event emitted after the call(s):
	- BillingSet(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#200-201)
		- setBillingInternal(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#226-227)
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	Event emitted after the call(s):
	- ConfigSet(previousConfigBlockNumber,configCount,_signers,_transmitters,_threshold,_encodedConfigVersion,_encoded) (OffchainAggregator.sol#203-211)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- delete s_oracles[signer] (OffchainAggregator.sol#165)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- delete s_oracles[transmitter] (OffchainAggregator.sol#166)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- s_signers.pop() (OffchainAggregator.sol#167)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- s_transmitters.pop() (OffchainAggregator.sol#168)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop
INFO:Detectors:
OffchainAggregator.decodeReport(bytes) (OffchainAggregator.sol#423-434) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Parameter AccessControlledOffchainAggregator.getAnswer(uint256)._roundId (AccessControlledOffchainAggregator.sol#82) is not in mixedCase
Parameter AccessControlledOffchainAggregator.getTimestamp(uint256)._roundId (AccessControlledOffchainAggregator.sol#93) is not in mixedCase
Parameter AccessControlledOffchainAggregator.getRoundData(uint80)._roundId (AccessControlledOffchainAggregator.sol#119) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._signers (OffchainAggregator.sol#150) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._transmitters (OffchainAggregator.sol#151) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._threshold (OffchainAggregator.sol#152) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._encodedConfigVersion (OffchainAggregator.sol#153) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._encoded (OffchainAggregator.sol#154) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._contractAddress (OffchainAggregator.sol#215) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._configCount (OffchainAggregator.sol#216) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._signers (OffchainAggregator.sol#217) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._transmitters (OffchainAggregator.sol#218) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._threshold (OffchainAggregator.sol#219) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._encodedConfigVersion (OffchainAggregator.sol#220) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._encodedConfig (OffchainAggregator.sol#221) is not in mixedCase
Parameter OffchainAggregator.setValidator(address)._newValidator (OffchainAggregator.sol#296) is not in mixedCase
Parameter OffchainAggregator.validateAnswer(uint32,int256)._aggregatorRoundId (OffchainAggregator.sol#310) is not in mixedCase
Parameter OffchainAggregator.validateAnswer(uint32,int256)._answer (OffchainAggregator.sol#311) is not in mixedCase
Parameter OffchainAggregator.setRequesterAccessController(AccessControllerInterface)._requesterAccessController (OffchainAggregator.sol#368) is not in mixedCase
Parameter OffchainAggregator.decodeReport(bytes)._report (OffchainAggregator.sol#423) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._report (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._rs (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._ss (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._report (OffchainAggregator.sol#511) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._rs (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._ss (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._rawVs (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.getAnswer(uint256)._roundId (OffchainAggregator.sol#693) is not in mixedCase
Parameter OffchainAggregator.getTimestamp(uint256)._roundId (OffchainAggregator.sol#708) is not in mixedCase
Parameter OffchainAggregator.getRoundData(uint80)._roundId (OffchainAggregator.sol#759) is not in mixedCase
Constant OffchainAggregator.maxUint32 (OffchainAggregator.sol#19) is not in UPPER_CASE_WITH_UNDERSCORES
Variable OffchainAggregator.s_hotVars (OffchainAggregator.sol#39) is not in mixedCase
Variable OffchainAggregator.s_transmissions (OffchainAggregator.sol#47) is not in mixedCase
Variable OffchainAggregator.s_configCount (OffchainAggregator.sol#51) is not in mixedCase
Variable OffchainAggregator.s_latestConfigBlockNumber (OffchainAggregator.sol#52) is not in mixedCase
Variable OffchainAggregator.s_validator (OffchainAggregator.sol#268) is not in mixedCase
Variable OffchainAggregator.s_requesterAccessController (OffchainAggregator.sol#334) is not in mixedCase
Variable OffchainAggregator.s_description (OffchainAggregator.sol#735) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._maximumGasPrice (OffchainAggregatorBilling.sol#190) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._reasonableGasPrice (OffchainAggregatorBilling.sol#191) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._microLinkPerEth (OffchainAggregatorBilling.sol#192) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._linkGweiPerObservation (OffchainAggregatorBilling.sol#193) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32)._linkGweiPerTransmission (OffchainAggregatorBilling.sol#194) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._maximumGasPrice (OffchainAggregatorBilling.sol#214) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._reasonableGasPrice (OffchainAggregatorBilling.sol#215) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._microLinkPerEth (OffchainAggregatorBilling.sol#216) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._linkGweiPerObservation (OffchainAggregatorBilling.sol#217) is not in mixedCase
Parameter OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32)._linkGweiPerTransmission (OffchainAggregatorBilling.sol#218) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingAccessControllerInternal(AccessControllerInterface)._billingAccessController (OffchainAggregatorBilling.sol#266) is not in mixedCase
Parameter OffchainAggregatorBilling.setBillingAccessController(AccessControllerInterface)._billingAccessController (OffchainAggregatorBilling.sol#284) is not in mixedCase
Parameter OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is not in mixedCase
Parameter OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is not in mixedCase
Parameter OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is not in mixedCase
Parameter OffchainAggregatorBilling.withdrawFunds(address,uint256)._recipient (OffchainAggregatorBilling.sol#496) is not in mixedCase
Parameter OffchainAggregatorBilling.withdrawFunds(address,uint256)._amount (OffchainAggregatorBilling.sol#496) is not in mixedCase
Parameter OffchainAggregatorBilling.oracleObservationCount(address)._signerOrTransmitter (OffchainAggregatorBilling.sol#559) is not in mixedCase
Parameter OffchainAggregatorBilling.setPayees(address[],address[])._transmitters (OffchainAggregatorBilling.sol#660) is not in mixedCase
Parameter OffchainAggregatorBilling.setPayees(address[],address[])._payees (OffchainAggregatorBilling.sol#661) is not in mixedCase
Parameter OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) is not in mixedCase
Parameter OffchainAggregatorBilling.transferPayeeship(address,address)._proposed (OffchainAggregatorBilling.sol#690) is not in mixedCase
Parameter OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is not in mixedCase
Parameter OffchainAggregatorBilling.saturatingAddUint16(uint16,uint16)._x (OffchainAggregatorBilling.sol#728) is not in mixedCase
Parameter OffchainAggregatorBilling.saturatingAddUint16(uint16,uint16)._y (OffchainAggregatorBilling.sol#728) is not in mixedCase
Constant OffchainAggregatorBilling.maxNumOracles (OffchainAggregatorBilling.sol#45) is not in UPPER_CASE_WITH_UNDERSCORES
Variable OffchainAggregatorBilling.s_billing (OffchainAggregatorBilling.sol#66) is not in mixedCase
Variable OffchainAggregatorBilling.LINK (OffchainAggregatorBilling.sol#71) is not in mixedCase
Variable OffchainAggregatorBilling.s_billingAccessController (OffchainAggregatorBilling.sol#73) is not in mixedCase
Variable OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) is not in mixedCase
Variable OffchainAggregatorBilling.s_payees (OffchainAggregatorBilling.sol#87-89) is not in mixedCase
Variable OffchainAggregatorBilling.s_proposedPayees (OffchainAggregatorBilling.sol#92-94) is not in mixedCase
Variable OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) is not in mixedCase
Variable OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) is not in mixedCase
Variable OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) is not in mixedCase
Variable OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) is not in mixedCase
Constant OffchainAggregatorBilling.maxUint16 (OffchainAggregatorBilling.sol#145) is not in UPPER_CASE_WITH_UNDERSCORES
Constant OffchainAggregatorBilling.maxUint128 (OffchainAggregatorBilling.sol#146) is not in UPPER_CASE_WITH_UNDERSCORES
Constant OffchainAggregatorBilling.accountingGasCost (OffchainAggregatorBilling.sol#435) is not in UPPER_CASE_WITH_UNDERSCORES
Parameter Owned.transferOwnership(address)._to (Owned.sol#30) is not in mixedCase
Parameter SimpleReadAccessController.hasAccess(address,bytes)._user (SimpleReadAccessController.sol#24) is not in mixedCase
Parameter SimpleReadAccessController.hasAccess(address,bytes)._calldata (SimpleReadAccessController.sol#25) is not in mixedCase
Parameter SimpleWriteAccessController.hasAccess(address,bytes)._user (SimpleWriteAccessController.sol#34) is not in mixedCase
Parameter SimpleWriteAccessController.addAccess(address)._user (SimpleWriteAccessController.sol#50) is not in mixedCase
Parameter SimpleWriteAccessController.addAccessInternal(address)._user (SimpleWriteAccessController.sol#54) is not in mixedCase
Parameter SimpleWriteAccessController.removeAccess(address)._user (SimpleWriteAccessController.sol#65) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Variable OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar
INFO:Slither:0x785433d8b06D77D68dF6be63944742130A4530d1 analyzed (12 contracts with 79 detectors), 120 result(s) found
Slither report for InitializableAdminUpgradeabilityProxy at `0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9` with implementation AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
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 79 detectors), 57 result(s) found
Slither report for TransparentUpgradeableProxy at `0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a` with implementation Bridge at `0x1066CEcC8880948FE55e427E94F1FF221d626591`
INFO:Detectors:
ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool).slot (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#92) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
ERC1967Upgrade._upgradeToAndCall(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#65-74) ignores return value by Address.functionDelegateCall(newImplementation,data) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#72)
ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#81-99) ignores return value by IERC1822Proxiable(newImplementation).proxiableUUID() (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#92-96)
ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#174-184) ignores return value by Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#182)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
Modifier TransparentUpgradeableProxy.ifAdmin() (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#46-52) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Proxy._delegate(address) (@openzeppelin/contracts/proxy/Proxy.sol#22-45) uses assembly
	- INLINE ASM (@openzeppelin/contracts/proxy/Proxy.sol#23-44)
Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#201-221) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#213-216)
StorageSlot.getAddressSlot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#52-56) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/StorageSlot.sol#53-55)
StorageSlot.getBooleanSlot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#61-65) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/StorageSlot.sol#62-64)
StorageSlot.getBytes32Slot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#70-74) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/StorageSlot.sol#71-73)
StorageSlot.getUint256Slot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#79-83) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/StorageSlot.sol#80-82)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.functionCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#85-87) is never used and should be removed
Address.functionCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#95-101) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts/utils/Address.sol#114-120) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#128-139) is never used and should be removed
Address.functionStaticCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#147-149) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#157-166) is never used and should be removed
Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#60-65) is never used and should be removed
ERC1967Upgrade._getBeacon() (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#152-154) is never used and should be removed
ERC1967Upgrade._setBeacon(address) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#159-166) is never used and should be removed
ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#174-184) is never used and should be removed
ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool) (@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#81-99) is never used and should be removed
StorageSlot.getBooleanSlot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#61-65) is never used and should be removed
StorageSlot.getBytes32Slot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#70-74) is never used and should be removed
StorageSlot.getUint256Slot(bytes32) (@openzeppelin/contracts/utils/StorageSlot.sol#79-83) is never used and should be removed
TransparentUpgradeableProxy._admin() (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#114-116) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#60-65):
	- (success) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#63)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#128-139):
	- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#137)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#157-166):
	- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#184-193):
	- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#191)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
TransparentUpgradeableProxy (@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#29-125) should inherit from IBeacon (@openzeppelin/contracts/proxy/beacon/IBeacon.sol#9-16)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-inheritance
INFO:Slither:0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a analyzed (8 contracts with 79 detectors), 31 result(s) found
Slither report for EthRobotKeeper at `0x943AcD0c93d7a8Bee7dA5Fd0DC3d0028237074d6`
Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 837, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
  File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 90, in process_all
    compilations = compile_all(target, **vars(args))
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 643, 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 362, in compile
    solc_standard_json.standalone_compile(filenames, compilation_unit, working_dir=working_dir)
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 66, 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 181, in run_solc_standard_json
    raise InvalidCompilation(solc_exception_str)
crytic_compile.platform.exceptions.InvalidCompilation: ParserError: ParserError: Source "aave-address-book/AaveGovernanceV2.sol" not found: File not found. Searched the following locations: "".
 --> src/contracts/EthRobotKeeper.sol:4:1:
  |
4 | import {IAaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


ParserError: ParserError: Source "solidity-utils/contracts/oz-common/Ownable.sol" not found: File not found. Searched the following locations: "".
 --> src/contracts/EthRobotKeeper.sol:7:1:
  |
7 | import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


ParserError: ParserError: Source "chainlink-brownie-contracts/interfaces/AutomationCompatibleInterface.sol" not found: File not found. Searched the following locations: "".
 --> src/interfaces/IGovernanceRobotKeeper.sol:4:1:
  |
4 | import {AutomationCompatibleInterface} from 'chainlink-brownie-contracts/interfaces/AutomationCompatibleInterface.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


ParserError: ParserError: Source "aave-address-book/AaveGovernanceV2.sol" not found: File not found. Searched the following locations: "".
 --> src/interfaces/IProposalValidator.sol:5:1:
  |
5 | import {IAaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^



ERROR:root:Error in 0x943AcD0c93d7a8Bee7dA5Fd0DC3d0028237074d6
ERROR:root:Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 837, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
  File "/home/runner/.local/lib/python3.10/site-packages/slither/__main__.py", line 90, in process_all
    compilations = compile_all(target, **vars(args))
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/crytic_compile.py", line 643, 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 362, in compile
    solc_standard_json.standalone_compile(filenames, compilation_unit, working_dir=working_dir)
  File "/home/runner/.local/lib/python3.10/site-packages/crytic_compile/platform/solc_standard_json.py", line 66, 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 181, in run_solc_standard_json
    raise InvalidCompilation(solc_exception_str)
crytic_compile.platform.exceptions.InvalidCompilation: ParserError: ParserError: Source "aave-address-book/AaveGovernanceV2.sol" not found: File not found. Searched the following locations: "".
 --> src/contracts/EthRobotKeeper.sol:4:1:
  |
4 | import {IAaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


ParserError: ParserError: Source "solidity-utils/contracts/oz-common/Ownable.sol" not found: File not found. Searched the following locations: "".
 --> src/contracts/EthRobotKeeper.sol:7:1:
  |
7 | import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


ParserError: ParserError: Source "chainlink-brownie-contracts/interfaces/AutomationCompatibleInterface.sol" not found: File not found. Searched the following locations: "".
 --> src/interfaces/IGovernanceRobotKeeper.sol:4:1:
  |
4 | import {AutomationCompatibleInterface} from 'chainlink-brownie-contracts/interfaces/AutomationCompatibleInterface.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


ParserError: ParserError: Source "aave-address-book/AaveGovernanceV2.sol" not found: File not found. Searched the following locations: "".
 --> src/interfaces/IProposalValidator.sol:5:1:
  |
5 | import {IAaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




Slither report for AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
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 79 detectors), 45 result(s) found
Slither report for GovernanceStrategy at `0xb7e383ef9B1E9189Fc0F71fb30af8aa14377429e`
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 79 detectors), 4 result(s) found
Slither report for AccessControlledOffchainAggregator at `0xbba12740DE905707251525477bAD74985DeC46D2`
Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

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

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


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

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

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

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

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

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

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

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

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

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

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

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


INFO:Detectors:
AggregatorProxy.getRoundData(uint80).startedAt_scope_2 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#285) is a local variable never initialized
AggregatorProxy.getRoundData(uint80).roundId_scope_0 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#283) is a local variable never initialized
AggregatorProxy.latestRoundData().updatedAt_scope_3 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#334) is a local variable never initialized
AggregatorProxy.latestRoundData().answer_scope_1 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#332) is a local variable never initialized
AggregatorProxy.getRoundData(uint80).updatedAt_scope_3 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#286) is a local variable never initialized
AggregatorProxy.getRoundData(uint80).answer_scope_1 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#284) is a local variable never initialized
AggregatorProxy.latestRoundData().startedAt_scope_2 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#333) is a local variable never initialized
AggregatorProxy.latestRoundData().roundId_scope_0 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#331) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
AggregatorProxy.getAnswer(uint256).phaseId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#189) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getAnswer(uint256).aggregator (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#190) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getTimestamp(uint256).phaseId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#214) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getTimestamp(uint256).aggregator (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#215) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getRoundData(uint80).phaseId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#280) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getRoundData(uint80).roundId_scope_0 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#283) shadows:
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#273) (return variable)
AggregatorProxy.getRoundData(uint80).answer_scope_1 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#284) shadows:
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#274) (return variable)
AggregatorProxy.getRoundData(uint80).startedAt_scope_2 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#285) shadows:
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#275) (return variable)
AggregatorProxy.getRoundData(uint80).updatedAt_scope_3 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#286) shadows:
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#276) (return variable)
AggregatorProxy.latestRoundData().roundId_scope_0 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#331) shadows:
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#321) (return variable)
AggregatorProxy.latestRoundData().answer_scope_1 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#332) shadows:
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#322) (return variable)
AggregatorProxy.latestRoundData().startedAt_scope_2 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#333) shadows:
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#323) (return variable)
AggregatorProxy.latestRoundData().updatedAt_scope_3 (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#334) shadows:
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#324) (return variable)
AggregatorProxy.parseIds(uint256).phaseId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#513) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.addPhaseIds(uint80,int256,uint256,uint256,uint80,uint16).phaseId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#525) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#410-416) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#30) lacks a zero-check on :
		- pendingOwner = _to (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Parameter Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#30) is not in mixedCase
Parameter AggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#180) is not in mixedCase
Parameter AggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#205) is not in mixedCase
Parameter AggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#267) is not in mixedCase
Parameter AggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#353) is not in mixedCase
Parameter AggregatorProxy.proposeAggregator(address)._aggregator (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#459) is not in mixedCase
Parameter AggregatorProxy.confirmAggregator(address)._aggregator (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#473) is not in mixedCase
Parameter AggregatorProxy.setAggregator(address)._aggregator (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#487) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._phase (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#496) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._originalId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#497) is not in mixedCase
Parameter AggregatorProxy.parseIds(uint256)._roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#507) is not in mixedCase
Parameter EACAggregatorProxy.setController(address)._accessController (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#582) is not in mixedCase
Parameter EACAggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#638) is not in mixedCase
Parameter EACAggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#658) is not in mixedCase
Parameter EACAggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#710) is not in mixedCase
Parameter EACAggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xDC530D9457755926550b59e8ECcdaE7624181557-EACAggregatorProxy.sol#776) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0xDC530D9457755926550b59e8ECcdaE7624181557 analyzed (7 contracts with 79 detectors), 40 result(s) found
Slither report for FxRoot at `0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2`
INFO:Detectors:
FxRoot.setFxChild(address)._fxChild (crytic-export/etherscan-contracts/0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2-FxRoot.sol#24) lacks a zero-check on :
		- fxChild = _fxChild (crytic-export/etherscan-contracts/0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2-FxRoot.sol#26)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Parameter FxRoot.setFxChild(address)._fxChild (crytic-export/etherscan-contracts/0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2-FxRoot.sol#24) is not in mixedCase
Parameter FxRoot.sendMessageToChild(address,bytes)._receiver (crytic-export/etherscan-contracts/0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2-FxRoot.sol#29) is not in mixedCase
Parameter FxRoot.sendMessageToChild(address,bytes)._data (crytic-export/etherscan-contracts/0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2-FxRoot.sol#29) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
FxRoot.stateSender (crytic-export/etherscan-contracts/0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2-FxRoot.sol#17) should be immutable
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable
INFO:Slither:0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2 analyzed (3 contracts with 79 detectors), 5 result(s) found