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

Latest commit

 

History

History
2867 lines (2606 loc) · 265 KB

File metadata and controls

2867 lines (2606 loc) · 265 KB

GHO_Incident_Report

Proposal text

Simple Summary

This AIP proposes a bounty to a community member of 50,000 GHO for coming forward and reporting an incident.

Motivation

Provide a bounty to a community member for helping to detect an incident with GHO.

Specification

This proposal encompasses the following actions:

  • Transfers 50,000 GHO from collector to the receiver address at 0x7D51910845011B41Cc32806644dA478FEfF2f11F.

References

Copyright

Copyright and related rights waived via CC0.

Checks

Reports all state changes from the proposal ✅ Passed

Info:

  • State changes:
# KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
@@ `s_upkeep` key `"38708010855340815800266444206792387479170521527111639306025178205742164078384"`.lastKeeper @@
- 0x18cbe724e7c248cda2803f48d1ea6d019623b5cc
+ 0x86c5d9efb1377dba0535cf944bd6f5736c4290cb
# TransparentUpgradeableProxy at `0xdAbad81aF85554E9ae636395611C58F7eC1aAEc5` with implementation PayloadsController at `0x7222182cB9c5320587b5148BF03eeE107AD64578`
@@ Slot `0xad96411afed98a37aa585ce71717b0782fa4bee47da09d8f483e532128238611` @@
- "0x000000000000656600cf010138392004bfbef356a1355b71ab045fd64766b65f"
+ "0x00656daf1f00656600cf020138392004bfbef356a1355b71ab045fd64766b65f"
# TransparentUpgradeableProxy at `0xEd42a7D8559a463722Ca4beD50E0Cc05a386b0e1` with implementation CrossChainController at `0x0Bf5bbfaE7808D329e0Ba8277e0b746BbfDA68f1`
@@ _currentEnvelopeNonce @@
- 65
+ 66
@@ _currentTransactionNonce @@
- 65
+ 66
@@ `_forwardedTransactions` key `0xcfa40528108ac4b19b85e3c8772d854467295cb6d7f268b922b7fc943c88dfe0` @@
- false
+ true

@@ `_registeredEnvelopes` key `0x4f40fed78c69c3e4bd3cae6f69ef5faf69fd38304c4308ab89e86ec6b95de219` @@
- false
+ true

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:
    • TransparentUpgradeableProxy at 0xEd42a7D8559a463722Ca4beD50E0Cc05a386b0e1 with implementation CrossChainController at 0x0Bf5bbfaE7808D329e0Ba8277e0b746BbfDA68f1
      • EnvelopeRegistered(envelopeId: 0x4f40fed78c69c3e4bd3cae6f69ef5faf69fd38304c4308ab89e86ec6b95de219, envelope: [object Object])
      • TransactionForwardingAttempted(transactionId: 0xcfa40528108ac4b19b85e3c8772d854467295cb6d7f268b922b7fc943c88dfe0, envelopeId: 0x4f40fed78c69c3e4bd3cae6f69ef5faf69fd38304c4308ab89e86ec6b95de219, encodedTransaction: 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000410000000000000000000000009aee0b04504cef83a65ac3f0e838d0593bcb2bc7000000000000000000000000dabad81af85554e9ae636395611c58f7ec1aaec50000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000656daf1f, destinationChainId: 1, bridgeAdapter: 0x118dfd5418890c0332042ab05173db4a2c1d283c, destinationBridgeAdapter: 0x118dfd5418890c0332042ab05173db4a2c1d283c, adapterSuccessful: true, returnData: 0x000000000000000000000000dabad81af85554e9ae636395611c58f7ec1aaec50000000000000000000000000000000000000000000000000000000000000000)
    • TransparentUpgradeableProxy at 0xdAbad81aF85554E9ae636395611C58F7eC1aAEc5 with implementation PayloadsController at 0x7222182cB9c5320587b5148BF03eeE107AD64578
      • PayloadQueued(payloadId: 25)
      • PayloadExecutionMessageReceived(originSender: 0x9aee0b04504cef83a65ac3f0e838d0593bcb2bc7, originChainId: 1, delivered: true, message: 0x0000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000656daf1f, reason: 0x)
    • EthRobotKeeper at 0x9EEa1Ba822d204077e9f90a92D30432417184587
      • ActionSucceeded(id: 388, action: 1)
    • KeeperRegistry at 0x02777053d6764996e594c3E88AF1D58D5363a2e6
      • UpkeepPerformed(id: 38708010855340815800266444206792387479170521527111639306025178205742164078384, success: true, from: 0x86c5d9efb1377dba0535cf944bd6f5736c4290cb, payment: 0, performData: 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001840000000000000000000000000000000000000000000000000000000000000001)

Check all targets are verified on Etherscan ✅ Passed

Info:

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

Check all touched contracts are verified on Etherscan ✅ Passed

Info:

  • Touched address:
    • 0x86c5d9efb1377dba0535cf944bd6f5736c4290cb: EOA (verification not applicable)
    • 0x02777053d6764996e594c3e88af1d58d5363a2e6: Contract (verified) (KeeperRegistry)
    • 0x169e633a2d1e6c10dd91238ba11c4a708dfef37c: Contract (verified) (EACAggregatorProxy)
    • 0x785433d8b06d77d68df6be63944742130a4530d1: Contract (verified) (AccessControlledOffchainAggregator)
    • 0xdc530d9457755926550b59e8eccdae7624181557: Contract (verified) (EACAggregatorProxy)
    • 0xbba12740de905707251525477bad74985dec46d2: Contract (verified) (AccessControlledOffchainAggregator)
    • 0x9eea1ba822d204077e9f90a92d30432417184587: Contract (verified) (EthRobotKeeper)
    • 0xec568fffba86c094cf06b22134b23074dfe2252c: Contract (verified) (AaveGovernanceV2)
    • 0xee56e2b3d491590b5b31738cc34d5232f378a8d5: Contract (verified) (Executor)
    • 0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e: Contract (verified) (GovernanceStrategy)
    • 0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9: Contract (verified) (InitializableAdminUpgradeabilityProxy)
    • 0x96f68837877fd0414b55050c9e794aecdbcfca59: Contract (verified) (AaveTokenV2)
    • 0x9aee0b04504cef83a65ac3f0e838d0593bcb2bc7: Contract (verified) (TransparentUpgradeableProxy)
    • 0x323f2c8e227b3f0d88b047ed16581fc0b6b9b1d7: Contract (verified) (Governance_V2_5)
    • 0xed42a7d8559a463722ca4bed50e0cc05a386b0e1: Contract (verified) (TransparentUpgradeableProxy)
    • 0x0bf5bbfae7808d329e0ba8277e0b746bbfda68f1: Contract (verified) (CrossChainController)
    • 0x118dfd5418890c0332042ab05173db4a2c1d283c: Contract (verified) (SameChainAdapter)
    • 0xdabad81af85554e9ae636395611c58f7ec1aaec5: Contract (verified) (TransparentUpgradeableProxy)
    • 0x7222182cb9c5320587b5148bf03eee107ad64578: Contract (verified) (PayloadsController)

Runs solc against the verified contracts ✅ Passed

Info:

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


View warnings for TransparentUpgradeableProxy at `0xEd42a7D8559a463722Ca4beD50E0Cc05a386b0e1` with implementation CrossChainController at `0x0Bf5bbfaE7808D329e0Ba8277e0b746BbfDA68f1`
INFO:CryticCompile:'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xed42a7d8559a463722ca4bed50e0cc05a386b0e1-TransparentUpgradeableProxy' running

Runs slither against the verified contracts ✅ Passed

Info:

View Details
Slither report for KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x02777053d6764996e594c3e88af1d58d5363a2e6-KeeperRegistry' running
INFO:Detectors:
KeeperRegistry.addFunds(uint256,uint96) (contracts/v0.8/KeeperRegistry.sol#297-302) ignores return value by LINK.transferFrom(msg.sender,address(this),amount) (contracts/v0.8/KeeperRegistry.sol#300)
KeeperRegistry.withdrawFunds(uint256,address) (contracts/v0.8/KeeperRegistry.sol#331-355) ignores return value by LINK.transfer(to,amountToWithdraw) (contracts/v0.8/KeeperRegistry.sol#354)
KeeperRegistry.withdrawOwnerFunds() (contracts/v0.8/KeeperRegistry.sol#360-368) ignores return value by LINK.transfer(msg.sender,amount) (contracts/v0.8/KeeperRegistry.sol#367)
KeeperRegistry.recoverFunds() (contracts/v0.8/KeeperRegistry.sol#389-392) ignores return value by LINK.transfer(msg.sender,total - s_expectedLinkBalance) (contracts/v0.8/KeeperRegistry.sol#391)
KeeperRegistry.withdrawPayment(address,address) (contracts/v0.8/KeeperRegistry.sol#399-408) ignores return value by LINK.transfer(to,keeper.balance) (contracts/v0.8/KeeperRegistry.sol#407)
KeeperRegistry.migrateUpkeeps(uint256[],address) (contracts/v0.8/KeeperRegistry.sol#648-683) ignores return value by LINK.transfer(destination,totalBalanceRemaining) (contracts/v0.8/KeeperRegistry.sol#682)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unchecked-transfer
INFO:Detectors:
KeeperBase.preventExecution() (contracts/v0.8/KeeperBase.sol#11-15) uses tx.origin for authorization: tx.origin != address(0) (contracts/v0.8/KeeperBase.sol#12)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-usage-of-txorigin
INFO:Detectors:
KeeperRegistry.cancelUpkeep(uint256) (contracts/v0.8/KeeperRegistry.sol#273-289) ignores return value by s_upkeepIDs.remove(id) (contracts/v0.8/KeeperRegistry.sol#286)
KeeperRegistry.migrateUpkeeps(uint256[],address) (contracts/v0.8/KeeperRegistry.sol#648-683) ignores return value by s_upkeepIDs.remove(id) (contracts/v0.8/KeeperRegistry.sol#670)
KeeperRegistry._createUpkeep(uint256,address,uint32,address,uint96,bytes) (contracts/v0.8/KeeperRegistry.sol#723-745) ignores return value by s_upkeepIDs.add(id) (contracts/v0.8/KeeperRegistry.sol#744)
KeeperRegistry._getFeedData() (contracts/v0.8/KeeperRegistry.sol#753-771) ignores return value by (None,feedValue,None,timestamp,None) = FAST_GAS_FEED.latestRoundData() (contracts/v0.8/KeeperRegistry.sol#758)
KeeperRegistry._getFeedData() (contracts/v0.8/KeeperRegistry.sol#753-771) ignores return value by (None,feedValue,None,timestamp,None) = LINK_ETH_FEED.latestRoundData() (contracts/v0.8/KeeperRegistry.sol#764)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
Reentrancy in KeeperRegistry.addFunds(uint256,uint96) (contracts/v0.8/KeeperRegistry.sol#297-302):
	External calls:
	- LINK.transferFrom(msg.sender,address(this),amount) (contracts/v0.8/KeeperRegistry.sol#300)
	Event emitted after the call(s):
	- FundsAdded(id,msg.sender,amount) (contracts/v0.8/KeeperRegistry.sol#301)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
KeeperRegistry._getFeedData() (contracts/v0.8/KeeperRegistry.sol#753-771) uses timestamp for comparisons
	Dangerous comparisons:
	- (staleFallback && stalenessSeconds < block.timestamp - timestamp) || feedValue <= 0 (contracts/v0.8/KeeperRegistry.sol#759)
	- (staleFallback && stalenessSeconds < block.timestamp - timestamp) || feedValue <= 0 (contracts/v0.8/KeeperRegistry.sol#765)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#201-221) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#213-216)
EnumerableSet.values(EnumerableSet.AddressSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#274-283) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#278-280)
EnumerableSet.values(EnumerableSet.UintSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#347-356) uses assembly
	- INLINE ASM (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#351-353)
KeeperRegistry._callWithExactGas(uint256,address,bytes) (contracts/v0.8/KeeperRegistry.sol#792-817) uses assembly
	- INLINE ASM (contracts/v0.8/KeeperRegistry.sol#797-815)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
KeeperRegistry.migrateUpkeeps(uint256[],address) (contracts/v0.8/KeeperRegistry.sol#648-683) has costly operations inside a loop:
	- delete s_upkeep[id] (contracts/v0.8/KeeperRegistry.sol#668)
KeeperRegistry.migrateUpkeeps(uint256[],address) (contracts/v0.8/KeeperRegistry.sol#648-683) has costly operations inside a loop:
	- delete s_checkData[id] (contracts/v0.8/KeeperRegistry.sol#669)
KeeperRegistry._createUpkeep(uint256,address,uint32,address,uint96,bytes) (contracts/v0.8/KeeperRegistry.sol#723-745) has costly operations inside a loop:
	- s_expectedLinkBalance = s_expectedLinkBalance + balance (contracts/v0.8/KeeperRegistry.sol#742)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop
INFO:Detectors:
Address.functionCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#85-87) is never used and should be removed
Address.functionCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#95-101) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts/utils/Address.sol#114-120) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#128-139) is never used and should be removed
Address.functionDelegateCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#174-176) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#184-193) is never used and should be removed
Address.functionStaticCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#147-149) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#157-166) is never used and should be removed
Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#60-65) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#201-221) is never used and should be removed
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#21-23) is never used and should be removed
EnumerableSet._values(EnumerableSet.Set) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#142-144) is never used and should be removed
EnumerableSet.add(EnumerableSet.AddressSet,address) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#224-226) is never used and should be removed
EnumerableSet.add(EnumerableSet.Bytes32Set,bytes32) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#158-160) is never used and should be removed
EnumerableSet.at(EnumerableSet.AddressSet,uint256) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#262-264) is never used and should be removed
EnumerableSet.at(EnumerableSet.Bytes32Set,uint256) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#196-198) is never used and should be removed
EnumerableSet.contains(EnumerableSet.AddressSet,address) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#241-243) is never used and should be removed
EnumerableSet.contains(EnumerableSet.Bytes32Set,bytes32) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#175-177) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UintSet,uint256) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#314-316) is never used and should be removed
EnumerableSet.length(EnumerableSet.AddressSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#248-250) is never used and should be removed
EnumerableSet.length(EnumerableSet.Bytes32Set) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#182-184) is never used and should be removed
EnumerableSet.remove(EnumerableSet.AddressSet,address) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#234-236) is never used and should be removed
EnumerableSet.remove(EnumerableSet.Bytes32Set,bytes32) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#168-170) is never used and should be removed
EnumerableSet.values(EnumerableSet.AddressSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#274-283) is never used and should be removed
EnumerableSet.values(EnumerableSet.Bytes32Set) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#208-210) is never used and should be removed
EnumerableSet.values(EnumerableSet.UintSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#347-356) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#60-65):
	- (success) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#63)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#128-139):
	- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#137)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#157-166):
	- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#184-193):
	- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#191)
Low level call in KeeperRegistry.checkUpkeep(uint256,address) (contracts/v0.8/KeeperRegistry.sol#226-252):
	- (success,result) = upkeep.target.call{gas: s_storage.checkGasLimit}(callData) (contracts/v0.8/KeeperRegistry.sol#241)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Variable KeeperRegistry.LINK (contracts/v0.8/KeeperRegistry.sol#63) is not in mixedCase
Variable KeeperRegistry.LINK_ETH_FEED (contracts/v0.8/KeeperRegistry.sol#64) is not in mixedCase
Variable KeeperRegistry.FAST_GAS_FEED (contracts/v0.8/KeeperRegistry.sol#65) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Loop condition i < s_keeperList.length (contracts/v0.8/KeeperRegistry.sol#488) should use cached array length instead of referencing `length` member of the storage array.
 Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#cache-array-length
INFO:Slither:0x02777053d6764996e594c3e88af1d58d5363a2e6 analyzed (20 contracts with 87 detectors), 56 result(s) found
Slither report for CrossChainController at `0x0Bf5bbfaE7808D329e0Ba8277e0b746BbfDA68f1`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x0bf5bbfae7808d329e0ba8277e0b746bbfda68f1-CrossChainController' running
INFO:Detectors:
CrossChainForwarder._bridgeTransaction(bytes32,bytes32,bytes,uint256,uint256,ICrossChainForwarder.ChainIdBridgeConfig[]) (src/contracts/CrossChainForwarder.sol#274-314) uses delegatecall to a input-controlled function id
	- (success,returnData) = bridgeAdapters[i].currentChainBridgeAdapter.delegatecall(abi.encodeWithSelector(IBaseAdapter.forwardMessage.selector,bridgeAdapters[i].destinationBridgeAdapter,gasLimit,destinationChainId,encodedTransaction)) (src/contracts/CrossChainForwarder.sol#284-294)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#controlled-delegatecall
INFO:Detectors:
CrossChainForwarder._bridgeAdaptersByChain (src/contracts/CrossChainForwarder.sol#41) is never initialized. It is used in:
	- CrossChainForwarder.forwardMessage(uint256,address,uint256,bytes) (src/contracts/CrossChainForwarder.sol#105-144)
	- CrossChainForwarder.retryEnvelope(Envelope,uint256) (src/contracts/CrossChainForwarder.sol#147-177)
	- CrossChainForwarder.retryTransaction(bytes,uint256,address[]) (src/contracts/CrossChainForwarder.sol#180-231)
	- CrossChainForwarder.getForwarderBridgeAdaptersByChain(uint256) (src/contracts/CrossChainForwarder.sol#234-238)
	- CrossChainForwarder._enableBridgeAdapters(ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[]) (src/contracts/CrossChainForwarder.sol#320-385)
	- CrossChainForwarder._disableBridgeAdapters(ICrossChainForwarder.BridgeAdapterToDisable[]) (src/contracts/CrossChainForwarder.sol#391-421)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-state-variables
INFO:Detectors:
Reentrancy in CrossChainReceiver.receiveCrossChainMessage(bytes,uint256) (src/contracts/CrossChainReceiver.sol#151-220):
	External calls:
	- IBaseReceiverPortal(envelope.destination).receiveCrossChainMessage(envelope.origin,envelope.originChainId,envelope.message) (src/contracts/CrossChainReceiver.sol#206-217)
	State variables written after the call(s):
	- _envelopesState[envelopeId] = EnvelopeState.Confirmed (src/contracts/CrossChainReceiver.sol#215)
	CrossChainReceiver._envelopesState (src/contracts/CrossChainReceiver.sol#30) can be used in cross function reentrancies:
	- CrossChainReceiver.deliverEnvelope(Envelope) (src/contracts/CrossChainReceiver.sol#223-237)
	- CrossChainReceiver.getEnvelopeState(bytes32) (src/contracts/CrossChainReceiver.sol#112-114)
	- CrossChainReceiver.receiveCrossChainMessage(bytes,uint256) (src/contracts/CrossChainReceiver.sol#151-220)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
INFO:Detectors:
CrossChainForwarder._enableBridgeAdapters(ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[]).configFound (src/contracts/CrossChainForwarder.sol#334) is a local variable never initialized
TransactionUtils.encode(Transaction).encodedTransaction (src/contracts/libs/EncodingUtils.sol#116) is a local variable never initialized
EnvelopeUtils.encode(Envelope).encodedEnvelope (src/contracts/libs/EncodingUtils.sol#47) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
CrossChainReceiver._updateReceiverBridgeAdapters(ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[],bool) (src/contracts/CrossChainReceiver.sol#286-317) ignores return value by _supportedChains.add(input.chainIds[j]) (src/contracts/CrossChainReceiver.sol#297)
CrossChainReceiver._updateReceiverBridgeAdapters(ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[],bool) (src/contracts/CrossChainReceiver.sol#286-317) ignores return value by _supportedChains.remove(input.chainIds[j]) (src/contracts/CrossChainReceiver.sol#309)
CrossChainForwarder._enableBridgeAdapters(ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[]) (src/contracts/CrossChainForwarder.sol#320-385) ignores return value by Address.functionDelegateCall(bridgeAdapterConfigInput.currentChainBridgeAdapter,abi.encodeWithSelector(IBaseAdapter.setupPayments.selector),Errors.ADAPTER_PAYMENT_SETUP_FAILED) (src/contracts/CrossChainForwarder.sol#364-368)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
BaseCrossChainController._baseInitialize(address,address,ICrossChainReceiver.ConfirmationInput[],ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[],ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[],address[]).owner (src/contracts/BaseCrossChainController.sol#34) shadows:
	- Ownable.owner() (lib/solidity-utils/src/contracts/oz-common/Ownable.sol#44-46) (function)
BaseCrossChainController._baseInitialize(address,address,ICrossChainReceiver.ConfirmationInput[],ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[],ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[],address[]).guardian (src/contracts/BaseCrossChainController.sol#35) shadows:
	- OwnableWithGuardian.guardian() (lib/solidity-utils/src/contracts/access-control/OwnableWithGuardian.sol#24-26) (function)
	- IWithGuardian.guardian() (lib/solidity-utils/src/contracts/access-control/interfaces/IWithGuardian.sol#15) (function)
CrossChainController.initialize(address,address,ICrossChainReceiver.ConfirmationInput[],ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[],ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[],address[]).owner (src/contracts/CrossChainController.sol#15) shadows:
	- Ownable.owner() (lib/solidity-utils/src/contracts/oz-common/Ownable.sol#44-46) (function)
CrossChainController.initialize(address,address,ICrossChainReceiver.ConfirmationInput[],ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[],ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[],address[]).guardian (src/contracts/CrossChainController.sol#16) shadows:
	- OwnableWithGuardian.guardian() (lib/solidity-utils/src/contracts/access-control/OwnableWithGuardian.sol#24-26) (function)
	- IWithGuardian.guardian() (lib/solidity-utils/src/contracts/access-control/interfaces/IWithGuardian.sol#15) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Rescuable.emergencyEtherTransfer(address,uint256).to (lib/solidity-utils/src/contracts/utils/Rescuable.sol#34) lacks a zero-check on :
		- (success) = to.call{value: amount}(new bytes(0)) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#35)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Reentrancy in CrossChainForwarder._configureForwarderBasics(ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[],ICrossChainForwarder.BridgeAdapterToDisable[],address[],address[]) (src/contracts/CrossChainForwarder.sol#437-447):
	External calls:
	- _enableBridgeAdapters(bridgesToEnable) (src/contracts/CrossChainForwarder.sol#443)
		- (success,returndata) = target.delegatecall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#189)
		- Address.functionDelegateCall(bridgeAdapterConfigInput.currentChainBridgeAdapter,abi.encodeWithSelector(IBaseAdapter.setupPayments.selector),Errors.ADAPTER_PAYMENT_SETUP_FAILED) (src/contracts/CrossChainForwarder.sol#364-368)
	State variables written after the call(s):
	- _updateSenders(sendersToEnable,true) (src/contracts/CrossChainForwarder.sol#445)
		- _approvedSenders[senders[i]] = newState (src/contracts/CrossChainForwarder.sol#431)
	- _updateSenders(sendersToDisable,false) (src/contracts/CrossChainForwarder.sol#446)
		- _approvedSenders[senders[i]] = newState (src/contracts/CrossChainForwarder.sol#431)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2
INFO:Detectors:
Reentrancy in CrossChainForwarder._bridgeTransaction(bytes32,bytes32,bytes,uint256,uint256,ICrossChainForwarder.ChainIdBridgeConfig[]) (src/contracts/CrossChainForwarder.sol#274-314):
	External calls:
	- (success,returnData) = bridgeAdapters[i].currentChainBridgeAdapter.delegatecall(abi.encodeWithSelector(IBaseAdapter.forwardMessage.selector,bridgeAdapters[i].destinationBridgeAdapter,gasLimit,destinationChainId,encodedTransaction)) (src/contracts/CrossChainForwarder.sol#284-294)
	Event emitted after the call(s):
	- TransactionForwardingAttempted(transactionId,envelopeId,encodedTransaction,destinationChainId,bridgeAdapters[i].currentChainBridgeAdapter,bridgeAdapters[i].destinationBridgeAdapter,success,returnData) (src/contracts/CrossChainForwarder.sol#301-310)
Reentrancy in CrossChainForwarder._configureForwarderBasics(ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[],ICrossChainForwarder.BridgeAdapterToDisable[],address[],address[]) (src/contracts/CrossChainForwarder.sol#437-447):
	External calls:
	- _enableBridgeAdapters(bridgesToEnable) (src/contracts/CrossChainForwarder.sol#443)
		- (success,returndata) = target.delegatecall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#189)
		- Address.functionDelegateCall(bridgeAdapterConfigInput.currentChainBridgeAdapter,abi.encodeWithSelector(IBaseAdapter.setupPayments.selector),Errors.ADAPTER_PAYMENT_SETUP_FAILED) (src/contracts/CrossChainForwarder.sol#364-368)
	Event emitted after the call(s):
	- BridgeAdapterUpdated(bridgeAdaptersToDisable[i].chainIds[j],bridgeAdaptersToDisable[i].bridgeAdapter,destinationBridgeAdapter,false) (src/contracts/CrossChainForwarder.sol#410-415)
		- _disableBridgeAdapters(bridgesToDisable) (src/contracts/CrossChainForwarder.sol#444)
	- SenderUpdated(senders[i],newState) (src/contracts/CrossChainForwarder.sol#432)
		- _updateSenders(sendersToDisable,false) (src/contracts/CrossChainForwarder.sol#446)
	- SenderUpdated(senders[i],newState) (src/contracts/CrossChainForwarder.sol#432)
		- _updateSenders(sendersToEnable,true) (src/contracts/CrossChainForwarder.sol#445)
Reentrancy in CrossChainForwarder._enableBridgeAdapters(ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[]) (src/contracts/CrossChainForwarder.sol#320-385):
	External calls:
	- Address.functionDelegateCall(bridgeAdapterConfigInput.currentChainBridgeAdapter,abi.encodeWithSelector(IBaseAdapter.setupPayments.selector),Errors.ADAPTER_PAYMENT_SETUP_FAILED) (src/contracts/CrossChainForwarder.sol#364-368)
	Event emitted after the call(s):
	- BridgeAdapterUpdated(bridgeAdapterConfigInput.destinationChainId,bridgeAdapterConfigInput.currentChainBridgeAdapter,bridgeAdapterConfigInput.destinationBridgeAdapter,true) (src/contracts/CrossChainForwarder.sol#350-355)
	- BridgeAdapterUpdated(bridgeAdapterConfigInput.destinationChainId,bridgeAdapterConfigInput.currentChainBridgeAdapter,bridgeAdapterConfigInput.destinationBridgeAdapter,true) (src/contracts/CrossChainForwarder.sol#377-382)
Reentrancy in CrossChainReceiver.deliverEnvelope(Envelope) (src/contracts/CrossChainReceiver.sol#223-237):
	External calls:
	- IBaseReceiverPortal(envelope.destination).receiveCrossChainMessage(envelope.origin,envelope.originChainId,envelope.message) (src/contracts/CrossChainReceiver.sol#231-235)
	Event emitted after the call(s):
	- EnvelopeDeliveryAttempted(envelopeId,envelope,true) (src/contracts/CrossChainReceiver.sol#236)
Reentrancy in Rescuable.emergencyEtherTransfer(address,uint256) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#34-39):
	External calls:
	- (success) = to.call{value: amount}(new bytes(0)) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#35)
	Event emitted after the call(s):
	- NativeTokensRescued(msg.sender,to,amount) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#38)
Reentrancy in Rescuable.emergencyTokenTransfer(address,address,uint256) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#23-31):
	External calls:
	- IERC20(erc20Token).safeTransfer(to,amount) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#28)
	Event emitted after the call(s):
	- ERC20Rescued(msg.sender,erc20Token,to,amount) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#30)
Reentrancy in CrossChainReceiver.receiveCrossChainMessage(bytes,uint256) (src/contracts/CrossChainReceiver.sol#151-220):
	External calls:
	- IBaseReceiverPortal(envelope.destination).receiveCrossChainMessage(envelope.origin,envelope.originChainId,envelope.message) (src/contracts/CrossChainReceiver.sol#206-217)
	Event emitted after the call(s):
	- EnvelopeDeliveryAttempted(envelopeId,envelope,true) (src/contracts/CrossChainReceiver.sol#213)
	- EnvelopeDeliveryAttempted(envelopeId,envelope,false) (src/contracts/CrossChainReceiver.sol#216)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
CrossChainReceiver._updateMessagesValidityTimestamp(ICrossChainReceiver.ValidityTimestampInput[]) (src/contracts/CrossChainReceiver.sol#244-260) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(input.validityTimestamp > _configurationsByChain[input.chainId].configuration.validityTimestamp && input.validityTimestamp <= block.timestamp,Errors.INVALID_VALIDITY_TIMESTAMP) (src/contracts/CrossChainReceiver.sol#249-254)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
EnumerableSet.values(EnumerableSet.Bytes32Set) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#219-229) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#224-226)
EnumerableSet.values(EnumerableSet.AddressSet) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#293-303) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#298-300)
EnumerableSet.values(EnumerableSet.UintSet) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#367-377) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#372-374)
Address._revert(bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#235-247) uses assembly
	- INLINE ASM (lib/solidity-utils/src/contracts/oz-common/Address.sol#240-243)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.functionCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#96-102) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#115-121) is never used and should be removed
Address.functionDelegateCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#174-176) is never used and should be removed
Address.functionStaticCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#146-151) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#159-166) is never used and should be removed
Address.sendValue(address,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#61-66) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#223-233) is never used and should be removed
Context._msgData() (lib/solidity-utils/src/contracts/oz-common/Context.sol#22-24) is never used and should be removed
EnumerableSet._at(EnumerableSet.Set,uint256) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#141-143) is never used and should be removed
EnumerableSet.add(EnumerableSet.Bytes32Set,bytes32) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#169-171) is never used and should be removed
EnumerableSet.at(EnumerableSet.AddressSet,uint256) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#281-283) is never used and should be removed
EnumerableSet.at(EnumerableSet.Bytes32Set,uint256) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#207-209) is never used and should be removed
EnumerableSet.at(EnumerableSet.UintSet,uint256) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#355-357) is never used and should be removed
EnumerableSet.contains(EnumerableSet.Bytes32Set,bytes32) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#186-188) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UintSet,uint256) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#334-336) is never used and should be removed
EnumerableSet.length(EnumerableSet.Bytes32Set) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#193-195) is never used and should be removed
EnumerableSet.length(EnumerableSet.UintSet) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#341-343) is never used and should be removed
EnumerableSet.remove(EnumerableSet.Bytes32Set,bytes32) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#179-181) is never used and should be removed
EnumerableSet.values(EnumerableSet.Bytes32Set) (lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#219-229) is never used and should be removed
Initializable._disableInitializers() (lib/solidity-utils/src/contracts/transparent-proxy/Initializable.sol#150-156) is never used and should be removed
OwnableWithGuardian._checkGuardian() (lib/solidity-utils/src/contracts/access-control/OwnableWithGuardian.sol#43-45) is never used and should be removed
SafeERC20._callOptionalReturnBool(IERC20,bytes) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#133-140) is never used and should be removed
SafeERC20.forceApprove(IERC20,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#77-84) is never used and should be removed
SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#62-70) is never used and should be removed
SafeERC20.safeIncreaseAllowance(IERC20,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#53-56) is never used and should be removed
SafeERC20.safePermit(IERC20Permit,address,address,uint256,uint256,uint8,bytes32,bytes32) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#90-106) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#45-47) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#61-66):
	- (success) = recipient.call{value: amount}() (lib/solidity-utils/src/contracts/oz-common/Address.sol#64)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#129-138):
	- (success,returndata) = target.call{value: value}(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#136)
Low level call in Address.functionStaticCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#159-166):
	- (success,returndata) = target.staticcall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#184-191):
	- (success,returndata) = target.delegatecall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#189)
Low level call in SafeERC20._callOptionalReturnBool(IERC20,bytes) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#133-140):
	- (success,returndata) = address(token).call(data) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#138)
Low level call in Rescuable.emergencyEtherTransfer(address,uint256) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#34-39):
	- (success) = to.call{value: amount}(new bytes(0)) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#35)
Low level call in CrossChainForwarder._bridgeTransaction(bytes32,bytes32,bytes,uint256,uint256,ICrossChainForwarder.ChainIdBridgeConfig[]) (src/contracts/CrossChainForwarder.sol#274-314):
	- (success,returnData) = bridgeAdapters[i].currentChainBridgeAdapter.delegatecall(abi.encodeWithSelector(IBaseAdapter.forwardMessage.selector,bridgeAdapters[i].destinationBridgeAdapter,gasLimit,destinationChainId,encodedTransaction)) (src/contracts/CrossChainForwarder.sol#284-294)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Function IERC20Permit.DOMAIN_SEPARATOR() (lib/solidity-utils/src/contracts/oz-common/interfaces/IERC20Permit.sol#59) is not in mixedCase
Variable CrossChainForwarder.__FORWARDER_GAP (src/contracts/CrossChainForwarder.sol#45) is not in mixedCase
Variable CrossChainReceiver.__RECEIVER_GAP (src/contracts/CrossChainReceiver.sol#37) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x0bf5bbfae7808d329e0ba8277e0b746bbfda68f1 analyzed (25 contracts with 87 detectors), 64 result(s) found
Slither report for SameChainAdapter at `0x118DFD5418890c0332042ab05173Db4A2C1d283c`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x118dfd5418890c0332042ab05173db4a2c1d283c-SameChainAdapter' running
INFO:Detectors:
EnvelopeUtils.encode(Envelope).encodedEnvelope (src/contracts/libs/EncodingUtils.sol#47) is a local variable never initialized
TransactionUtils.encode(Transaction).encodedTransaction (src/contracts/libs/EncodingUtils.sol#116) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
EnvelopeUtils.encode(Envelope) (src/contracts/libs/EncodingUtils.sol#46-51) is never used and should be removed
EnvelopeUtils.getId(Envelope) (src/contracts/libs/EncodingUtils.sol#67-70) is never used and should be removed
EnvelopeUtils.getId(bytes) (src/contracts/libs/EncodingUtils.sol#77-79) is never used and should be removed
TransactionUtils.encode(Transaction) (src/contracts/libs/EncodingUtils.sol#113-120) is never used and should be removed
TransactionUtils.getEnvelopeId(Transaction) (src/contracts/libs/EncodingUtils.sol#164-166) is never used and should be removed
TransactionUtils.getId(Transaction) (src/contracts/libs/EncodingUtils.sol#136-139) is never used and should be removed
TransactionUtils.getId(bytes) (src/contracts/libs/EncodingUtils.sol#146-148) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Slither:0x118dfd5418890c0332042ab05173db4a2c1d283c analyzed (6 contracts with 87 detectors), 9 result(s) found
Slither report for EACAggregatorProxy at `0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
Warning: crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:283:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol:273:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

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

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

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

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

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

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

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

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

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

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

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


INFO:Detectors:
AggregatorProxy.proposedGetRoundData(uint80) (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#353-367) ignores return value by proposedAggregator.getRoundData(_roundId) (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#366)
AggregatorProxy.proposedLatestRoundData() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#380-394) ignores return value by proposedAggregator.latestRoundData() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#393)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
AggregatorProxy.getAnswer(uint256).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#189) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getAnswer(uint256).aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#190) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getTimestamp(uint256).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#214) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getTimestamp(uint256).aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#215) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getRoundData(uint80).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#280) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getRoundData(uint80).roundId_scope_0 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#283) shadows:
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#273) (return variable)
AggregatorProxy.getRoundData(uint80).answer_scope_1 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#284) shadows:
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#274) (return variable)
AggregatorProxy.getRoundData(uint80).startedAt_scope_2 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#285) shadows:
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#275) (return variable)
AggregatorProxy.getRoundData(uint80).updatedAt_scope_3 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#286) shadows:
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#276) (return variable)
AggregatorProxy.latestRoundData().roundId_scope_0 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#331) shadows:
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#321) (return variable)
AggregatorProxy.latestRoundData().answer_scope_1 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#332) shadows:
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#322) (return variable)
AggregatorProxy.latestRoundData().startedAt_scope_2 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#333) shadows:
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#323) (return variable)
AggregatorProxy.latestRoundData().updatedAt_scope_3 (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#334) shadows:
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#324) (return variable)
AggregatorProxy.parseIds(uint256).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#513) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.addPhaseIds(uint80,int256,uint256,uint256,uint80,uint16).phaseId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#525) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#410-416) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#30) lacks a zero-check on :
		- pendingOwner = _to (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Parameter Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#30) is not in mixedCase
Parameter AggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#180) is not in mixedCase
Parameter AggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#205) is not in mixedCase
Parameter AggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#267) is not in mixedCase
Parameter AggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#353) is not in mixedCase
Parameter AggregatorProxy.proposeAggregator(address)._aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#459) is not in mixedCase
Parameter AggregatorProxy.confirmAggregator(address)._aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#473) is not in mixedCase
Parameter AggregatorProxy.setAggregator(address)._aggregator (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#487) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._phase (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#496) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._originalId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#497) is not in mixedCase
Parameter AggregatorProxy.parseIds(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#507) is not in mixedCase
Parameter EACAggregatorProxy.setController(address)._accessController (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#582) is not in mixedCase
Parameter EACAggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#638) is not in mixedCase
Parameter EACAggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#658) is not in mixedCase
Parameter EACAggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#710) is not in mixedCase
Parameter EACAggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0x169e633a2d1e6c10dd91238ba11c4a708dfef37c-EACAggregatorProxy.sol#776) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x169e633a2d1e6c10dd91238ba11c4a708dfef37c analyzed (7 contracts with 87 detectors), 34 result(s) found
Slither report for Governance_V2_5 at `0x323F2c8E227b3F0d88B047Ed16581fc0b6B9B1d7`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x323f2c8e227b3f0d88b047ed16581fc0b6b9b1d7-Governance_V2_5' running
INFO:Detectors:
PayloadsControllerUtils is re-used:
	- PayloadsControllerUtils (lib/aave-address-book/src/governance-v3/PayloadsControllerUtils.sol#4-25)
	- PayloadsControllerUtils (src/contracts/payloads/PayloadsControllerUtils.sol#4-25)
Errors is re-used:
	- Errors (lib/aave-address-book/src/governance-v3/Errors.sol#4-102)
	- Errors (src/contracts/libraries/Errors.sol#9-109)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#name-reused
INFO:Detectors:
EnvelopeUtils.encode(Envelope).encodedEnvelope (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#47) is a local variable never initialized
TransactionUtils.encode(Transaction).encodedTransaction (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#116) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
Governance_V2_5.forwardPayloadForExecution(PayloadsControllerUtils.Payload) (src/contracts/governance_2_5/Governance_V2_5.sol#35-61) ignores return value by ICrossChainForwarder(CROSS_CHAIN_CONTROLLER).forwardMessage(payload.chain,payload.payloadsController,GAS_LIMIT,abi.encode(payload.payloadId,payload.accessLevel,uint40(block.timestamp))) (src/contracts/governance_2_5/Governance_V2_5.sol#51-60)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
Address._revert(bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#235-247) uses assembly
	- INLINE ASM (lib/solidity-utils/src/contracts/oz-common/Address.sol#240-243)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address._revert(bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#235-247) is never used and should be removed
Address.functionCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#86-88) is never used and should be removed
Address.functionCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#96-102) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#115-121) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#129-138) is never used and should be removed
Address.functionDelegateCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#174-176) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#184-191) is never used and should be removed
Address.functionStaticCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#146-151) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#159-166) is never used and should be removed
Address.isContract(address) (lib/solidity-utils/src/contracts/oz-common/Address.sol#37-43) is never used and should be removed
Address.sendValue(address,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#61-66) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#223-233) is never used and should be removed
Address.verifyCallResultFromTarget(address,bool,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#199-215) is never used and should be removed
EnvelopeUtils.decode(bytes) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#58-60) is never used and should be removed
EnvelopeUtils.encode(Envelope) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#46-51) is never used and should be removed
EnvelopeUtils.getId(Envelope) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#67-70) is never used and should be removed
EnvelopeUtils.getId(bytes) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#77-79) is never used and should be removed
Initializable._disableInitializers() (lib/solidity-utils/src/contracts/transparent-proxy/Initializable.sol#150-156) is never used and should be removed
TransactionUtils.decode(bytes) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#127-129) is never used and should be removed
TransactionUtils.encode(Transaction) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#113-120) is never used and should be removed
TransactionUtils.getEnvelope(Transaction) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#155-157) is never used and should be removed
TransactionUtils.getEnvelopeId(Transaction) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#164-166) is never used and should be removed
TransactionUtils.getId(Transaction) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#136-139) is never used and should be removed
TransactionUtils.getId(bytes) (lib/aave-delivery-infrastructure/src/contracts/libs/EncodingUtils.sol#146-148) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#61-66):
	- (success) = recipient.call{value: amount}() (lib/solidity-utils/src/contracts/oz-common/Address.sol#64)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#129-138):
	- (success,returndata) = target.call{value: value}(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#136)
Low level call in Address.functionStaticCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#159-166):
	- (success,returndata) = target.staticcall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#184-191):
	- (success,returndata) = target.delegatecall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#189)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Function IAaveGovernanceV2.__abdicate() (lib/aave-address-book/src/common/IAaveGovernanceV2.sol#222) is not in mixedCase
Function IExecutorWithTimelock.GRACE_PERIOD() (lib/aave-address-book/src/common/IExecutorWithTimelock.sol#128) is not in mixedCase
Function IExecutorWithTimelock.VOTING_DURATION() (lib/aave-address-book/src/common/IExecutorWithTimelock.sol#130) is not in mixedCase
Function IExecutorWithTimelock.MINIMUM_DELAY() (lib/aave-address-book/src/common/IExecutorWithTimelock.sol#136) is not in mixedCase
Function IExecutorWithTimelock.MAXIMUM_DELAY() (lib/aave-address-book/src/common/IExecutorWithTimelock.sol#142) is not in mixedCase
Function IGovernanceCore.CANCELLATION_FEE_COLLECTOR() (lib/aave-address-book/src/governance-v3/IGovernanceCore.sol#256) is not in mixedCase
Function IGovernanceCore.ACHIEVABLE_VOTING_PARTICIPATION() (lib/aave-address-book/src/governance-v3/IGovernanceCore.sol#379) is not in mixedCase
Function IGovernanceCore.COOLDOWN_PERIOD() (lib/aave-address-book/src/governance-v3/IGovernanceCore.sol#385) is not in mixedCase
Function IGovernanceCore.MIN_VOTING_DURATION() (lib/aave-address-book/src/governance-v3/IGovernanceCore.sol#391) is not in mixedCase
Function IGovernanceCore.PRECISION_DIVIDER() (lib/aave-address-book/src/governance-v3/IGovernanceCore.sol#397) is not in mixedCase
Function IGovernanceCore.VOTING_TOKENS_CAP() (lib/aave-address-book/src/governance-v3/IGovernanceCore.sol#405) is not in mixedCase
Function IGovernanceCore.PROPOSAL_EXPIRATION_TIME() (lib/aave-address-book/src/governance-v3/IGovernanceCore.sol#411) is not in mixedCase
Function IGovernanceCore.NAME() (lib/aave-address-book/src/governance-v3/IGovernanceCore.sol#417) is not in mixedCase
Function IPayloadsControllerCore.EXPIRATION_DELAY() (lib/aave-address-book/src/governance-v3/IPayloadsControllerCore.sol#147) is not in mixedCase
Function IPayloadsControllerCore.MAX_EXECUTION_DELAY() (lib/aave-address-book/src/governance-v3/IPayloadsControllerCore.sol#153) is not in mixedCase
Function IPayloadsControllerCore.MIN_EXECUTION_DELAY() (lib/aave-address-book/src/governance-v3/IPayloadsControllerCore.sol#159) is not in mixedCase
Function IPayloadsControllerCore.GRACE_PERIOD() (lib/aave-address-book/src/governance-v3/IPayloadsControllerCore.sol#165) is not in mixedCase
Function IVotingMachineWithProofs.REPRESENTATIVES_SLOT() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#191) is not in mixedCase
Function IVotingMachineWithProofs.GOVERNANCE() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#197) is not in mixedCase
Function IVotingMachineWithProofs.VOTING_ASSET_WITH_SLOT_RAW() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#203) is not in mixedCase
Function IVotingMachineWithProofs.DATA_WAREHOUSE() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#209) is not in mixedCase
Function IVotingMachineWithProofs.VOTING_STRATEGY() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#215) is not in mixedCase
Function IVotingMachineWithProofs.DOMAIN_SEPARATOR() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#222) is not in mixedCase
Function IVotingMachineWithProofs.VOTE_SUBMITTED_TYPEHASH() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#228) is not in mixedCase
Function IVotingMachineWithProofs.VOTE_SUBMITTED_BY_REPRESENTATIVE_TYPEHASH() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#234) is not in mixedCase
Function IVotingMachineWithProofs.VOTING_ASSET_WITH_SLOT_TYPEHASH() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#240) is not in mixedCase
Function IVotingMachineWithProofs.NAME() (lib/aave-address-book/src/governance-v3/IVotingMachineWithProofs.sol#246) is not in mixedCase
Function IVotingPortal.VOTING_MACHINE_CHAIN_ID() (lib/aave-address-book/src/governance-v3/IVotingPortal.sol#49) is not in mixedCase
Function IVotingPortal.VOTING_MACHINE() (lib/aave-address-book/src/governance-v3/IVotingPortal.sol#55) is not in mixedCase
Function IVotingPortal.GOVERNANCE() (lib/aave-address-book/src/governance-v3/IVotingPortal.sol#61) is not in mixedCase
Function IVotingPortal.CROSS_CHAIN_CONTROLLER() (lib/aave-address-book/src/governance-v3/IVotingPortal.sol#67) is not in mixedCase
Function IVotingStrategy.DATA_WAREHOUSE() (lib/aave-address-book/src/governance-v3/IVotingStrategy.sol#11) is not in mixedCase
Function IVotingStrategy.STK_AAVE_SLASHING_EXCHANGE_RATE_PRECISION() (lib/aave-address-book/src/governance-v3/IVotingStrategy.sol#17) is not in mixedCase
Function IVotingStrategy.STK_AAVE_SLASHING_EXCHANGE_RATE_SLOT() (lib/aave-address-book/src/governance-v3/IVotingStrategy.sol#23) is not in mixedCase
Function IVotingStrategy.POWER_SCALE_FACTOR() (lib/aave-address-book/src/governance-v3/IVotingStrategy.sol#29) is not in mixedCase
Contract Governance_V2_5 (src/contracts/governance_2_5/Governance_V2_5.sol#17-62) is not in CapWords
Contract IGovernance_V2_5 (src/contracts/governance_2_5/IGovernance_V2_5.sol#6-44) is not in CapWords
Function IGovernance_V2_5.CROSS_CHAIN_CONTROLLER() (src/contracts/governance_2_5/IGovernance_V2_5.sol#17) is not in mixedCase
Function IGovernance_V2_5.NAME() (src/contracts/governance_2_5/IGovernance_V2_5.sol#23) is not in mixedCase
Function IGovernance_V2_5.GAS_LIMIT() (src/contracts/governance_2_5/IGovernance_V2_5.sol#30) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Detectors:
Variable GovernanceV3Ethereum.EXECUTOR_LVL_1 (lib/aave-address-book/src/GovernanceV3Ethereum.sol#50) is too similar to GovernanceV3Ethereum.EXECUTOR_LVL_2 (lib/aave-address-book/src/GovernanceV3Ethereum.sol#53)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar
INFO:Slither:0x323f2c8e227b3f0d88b047ed16581fc0b6b9b1d7 analyzed (25 contracts with 87 detectors), 75 result(s) found
Slither report for PayloadsController at `0x7222182cB9c5320587b5148BF03eeE107AD64578`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x7222182cb9c5320587b5148bf03eee107ad64578-PayloadsController' running
INFO:Detectors:
PayloadsControllerCore._getPayloadState(IPayloadsControllerCore.Payload) (src/contracts/payloads/PayloadsControllerCore.sol#227-246) uses a dangerous strict equality:
	- state == PayloadState.None || state >= PayloadState.Executed (src/contracts/payloads/PayloadsControllerCore.sol#231)
PayloadsControllerCore._getPayloadState(IPayloadsControllerCore.Payload) (src/contracts/payloads/PayloadsControllerCore.sol#227-246) uses a dangerous strict equality:
	- (state == PayloadState.Created && block.timestamp >= payload.expirationTime) || (state == PayloadState.Queued && block.timestamp >= payload.queuedAt + payload.delay + payload.gracePeriod) (src/contracts/payloads/PayloadsControllerCore.sol#236-240)
PayloadsControllerCore._queuePayload(uint40,PayloadsControllerUtils.AccessControl,uint40) (src/contracts/payloads/PayloadsControllerCore.sol#255-283) uses a dangerous strict equality:
	- require(bool,string)(_getPayloadState(payload) == PayloadState.Created,Errors.PAYLOAD_NOT_IN_CREATED_STATE) (src/contracts/payloads/PayloadsControllerCore.sol#261-264)
PayloadsControllerCore.executePayload(uint40) (src/contracts/payloads/PayloadsControllerCore.sol#127-157) uses a dangerous strict equality:
	- require(bool,string)(_getPayloadState(payload) == PayloadState.Queued,Errors.PAYLOAD_NOT_IN_QUEUED_STATE) (src/contracts/payloads/PayloadsControllerCore.sol#130-133)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
INFO:Detectors:
PayloadsController.receiveCrossChainMessage(address,uint256,bytes).empty (src/contracts/payloads/PayloadsController.sol#69) is a local variable never initialized
PayloadsControllerCore.createPayload(IPayloadsControllerCore.ExecutionAction[]).maximumAccessLevelRequired (src/contracts/payloads/PayloadsControllerCore.sol#90) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
PayloadsControllerCore.executePayload(uint40) (src/contracts/payloads/PayloadsControllerCore.sol#127-157) ignores return value by executor.executeTransaction{value: action.value}(action.target,action.value,action.signature,action.callData,action.withDelegateCall) (src/contracts/payloads/PayloadsControllerCore.sol#147-153)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
PayloadsControllerCore.initialize(address,address,IPayloadsControllerCore.UpdateExecutorInput[]).owner (src/contracts/payloads/PayloadsControllerCore.sol#63) shadows:
	- Ownable.owner() (lib/solidity-utils/src/contracts/oz-common/Ownable.sol#44-46) (function)
PayloadsControllerCore.initialize(address,address,IPayloadsControllerCore.UpdateExecutorInput[]).guardian (src/contracts/payloads/PayloadsControllerCore.sol#64) shadows:
	- OwnableWithGuardian.guardian() (lib/solidity-utils/src/contracts/access-control/OwnableWithGuardian.sol#24-26) (function)
	- IWithGuardian.guardian() (lib/solidity-utils/src/contracts/access-control/interfaces/IWithGuardian.sol#15) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Rescuable.emergencyEtherTransfer(address,uint256).to (lib/solidity-utils/src/contracts/utils/Rescuable.sol#34) lacks a zero-check on :
		- (success) = to.call{value: amount}(new bytes(0)) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#35)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
PayloadsControllerCore.executePayload(uint40) (src/contracts/payloads/PayloadsControllerCore.sol#127-157) has external calls inside a loop: executor.executeTransaction{value: action.value}(action.target,action.value,action.signature,action.callData,action.withDelegateCall) (src/contracts/payloads/PayloadsControllerCore.sol#147-153)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
INFO:Detectors:
Reentrancy in Rescuable.emergencyEtherTransfer(address,uint256) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#34-39):
	External calls:
	- (success) = to.call{value: amount}(new bytes(0)) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#35)
	Event emitted after the call(s):
	- NativeTokensRescued(msg.sender,to,amount) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#38)
Reentrancy in Rescuable.emergencyTokenTransfer(address,address,uint256) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#23-31):
	External calls:
	- IERC20(erc20Token).safeTransfer(to,amount) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#28)
	Event emitted after the call(s):
	- ERC20Rescued(msg.sender,erc20Token,to,amount) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#30)
Reentrancy in PayloadsControllerCore.executePayload(uint40) (src/contracts/payloads/PayloadsControllerCore.sol#127-157):
	External calls:
	- executor.executeTransaction{value: action.value}(action.target,action.value,action.signature,action.callData,action.withDelegateCall) (src/contracts/payloads/PayloadsControllerCore.sol#147-153)
	Event emitted after the call(s):
	- PayloadExecuted(payloadId) (src/contracts/payloads/PayloadsControllerCore.sol#156)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
PayloadsControllerCore.executePayload(uint40) (src/contracts/payloads/PayloadsControllerCore.sol#127-157) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(_getPayloadState(payload) == PayloadState.Queued,Errors.PAYLOAD_NOT_IN_QUEUED_STATE) (src/contracts/payloads/PayloadsControllerCore.sol#130-133)
	- require(bool,string)(block.timestamp > executionTime,Errors.TIMELOCK_NOT_FINISHED) (src/contracts/payloads/PayloadsControllerCore.sol#136)
	- i < payload.actions.length (src/contracts/payloads/PayloadsControllerCore.sol#141)
PayloadsControllerCore.cancelPayload(uint40) (src/contracts/payloads/PayloadsControllerCore.sol#160-173) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(payloadState < PayloadState.Executed && payloadState >= PayloadState.Created,Errors.PAYLOAD_NOT_IN_THE_CORRECT_STATE) (src/contracts/payloads/PayloadsControllerCore.sol#164-168)
PayloadsControllerCore._getPayloadState(IPayloadsControllerCore.Payload) (src/contracts/payloads/PayloadsControllerCore.sol#227-246) uses timestamp for comparisons
	Dangerous comparisons:
	- state == PayloadState.None || state >= PayloadState.Executed (src/contracts/payloads/PayloadsControllerCore.sol#231)
	- (state == PayloadState.Created && block.timestamp >= payload.expirationTime) || (state == PayloadState.Queued && block.timestamp >= payload.queuedAt + payload.delay + payload.gracePeriod) (src/contracts/payloads/PayloadsControllerCore.sol#236-240)
PayloadsControllerCore._queuePayload(uint40,PayloadsControllerUtils.AccessControl,uint40) (src/contracts/payloads/PayloadsControllerCore.sol#255-283) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(_getPayloadState(payload) == PayloadState.Created,Errors.PAYLOAD_NOT_IN_CREATED_STATE) (src/contracts/payloads/PayloadsControllerCore.sol#261-264)
	- require(bool,string)(accessLevel >= payload.maximumAccessLevelRequired,Errors.INVALID_PROPOSAL_ACCESS_LEVEL) (src/contracts/payloads/PayloadsControllerCore.sol#268-271)
	- require(bool,string)(proposalVoteActivationTimestamp > payload.createdAt,Errors.PAYLOAD_NOT_CREATED_BEFORE_PROPOSAL) (src/contracts/payloads/PayloadsControllerCore.sol#274-277)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
Address._revert(bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#235-247) uses assembly
	- INLINE ASM (lib/solidity-utils/src/contracts/oz-common/Address.sol#240-243)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.functionCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#86-88) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#115-121) is never used and should be removed
Address.functionDelegateCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#174-176) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#184-191) is never used and should be removed
Address.functionStaticCall(address,bytes) (lib/solidity-utils/src/contracts/oz-common/Address.sol#146-151) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#159-166) is never used and should be removed
Address.sendValue(address,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#61-66) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#223-233) is never used and should be removed
Context._msgData() (lib/solidity-utils/src/contracts/oz-common/Context.sol#22-24) is never used and should be removed
Initializable._disableInitializers() (lib/solidity-utils/src/contracts/transparent-proxy/Initializable.sol#150-156) is never used and should be removed
SafeCast.toInt104(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#901-904) is never used and should be removed
SafeCast.toInt112(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#883-886) is never used and should be removed
SafeCast.toInt120(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#865-868) is never used and should be removed
SafeCast.toInt128(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#847-850) is never used and should be removed
SafeCast.toInt136(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#829-832) is never used and should be removed
SafeCast.toInt144(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#811-814) is never used and should be removed
SafeCast.toInt152(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#793-796) is never used and should be removed
SafeCast.toInt16(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#1099-1102) is never used and should be removed
SafeCast.toInt160(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#775-778) is never used and should be removed
SafeCast.toInt168(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#757-760) is never used and should be removed
SafeCast.toInt176(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#739-742) is never used and should be removed
SafeCast.toInt184(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#721-724) is never used and should be removed
SafeCast.toInt192(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#703-706) is never used and should be removed
SafeCast.toInt200(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#685-688) is never used and should be removed
SafeCast.toInt208(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#667-670) is never used and should be removed
SafeCast.toInt216(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#649-652) is never used and should be removed
SafeCast.toInt224(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#631-634) is never used and should be removed
SafeCast.toInt232(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#613-616) is never used and should be removed
SafeCast.toInt24(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#1081-1084) is never used and should be removed
SafeCast.toInt240(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#595-598) is never used and should be removed
SafeCast.toInt248(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#577-580) is never used and should be removed
SafeCast.toInt256(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#1131-1135) is never used and should be removed
SafeCast.toInt32(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#1063-1066) is never used and should be removed
SafeCast.toInt40(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#1045-1048) is never used and should be removed
SafeCast.toInt48(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#1027-1030) is never used and should be removed
SafeCast.toInt56(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#1009-1012) is never used and should be removed
SafeCast.toInt64(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#991-994) is never used and should be removed
SafeCast.toInt72(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#973-976) is never used and should be removed
SafeCast.toInt8(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#1117-1120) is never used and should be removed
SafeCast.toInt80(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#955-958) is never used and should be removed
SafeCast.toInt88(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#937-940) is never used and should be removed
SafeCast.toInt96(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#919-922) is never used and should be removed
SafeCast.toUint104(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#341-344) is never used and should be removed
SafeCast.toUint112(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#324-327) is never used and should be removed
SafeCast.toUint120(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#307-310) is never used and should be removed
SafeCast.toUint128(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#290-293) is never used and should be removed
SafeCast.toUint136(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#273-276) is never used and should be removed
SafeCast.toUint144(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#256-259) is never used and should be removed
SafeCast.toUint152(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#239-242) is never used and should be removed
SafeCast.toUint16(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#528-531) is never used and should be removed
SafeCast.toUint160(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#222-225) is never used and should be removed
SafeCast.toUint168(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#205-208) is never used and should be removed
SafeCast.toUint176(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#188-191) is never used and should be removed
SafeCast.toUint184(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#171-174) is never used and should be removed
SafeCast.toUint192(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#154-157) is never used and should be removed
SafeCast.toUint200(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#137-140) is never used and should be removed
SafeCast.toUint208(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#120-123) is never used and should be removed
SafeCast.toUint216(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#103-106) is never used and should be removed
SafeCast.toUint224(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#86-89) is never used and should be removed
SafeCast.toUint232(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#69-72) is never used and should be removed
SafeCast.toUint24(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#511-514) is never used and should be removed
SafeCast.toUint240(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#52-55) is never used and should be removed
SafeCast.toUint248(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#35-38) is never used and should be removed
SafeCast.toUint256(int256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#559-562) is never used and should be removed
SafeCast.toUint32(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#494-497) is never used and should be removed
SafeCast.toUint40(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#477-480) is never used and should be removed
SafeCast.toUint48(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#460-463) is never used and should be removed
SafeCast.toUint56(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#443-446) is never used and should be removed
SafeCast.toUint64(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#426-429) is never used and should be removed
SafeCast.toUint72(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#409-412) is never used and should be removed
SafeCast.toUint8(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#545-548) is never used and should be removed
SafeCast.toUint80(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#392-395) is never used and should be removed
SafeCast.toUint88(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#375-378) is never used and should be removed
SafeCast.toUint96(uint256) (lib/solidity-utils/src/contracts/oz-common/SafeCast.sol#358-361) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#41-50) is never used and should be removed
SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#60-70) is never used and should be removed
SafeERC20.safeIncreaseAllowance(IERC20,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#52-58) is never used and should be removed
SafeERC20.safePermit(IERC20Permit,address,address,uint256,uint256,uint8,bytes32,bytes32) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#72-86) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (lib/solidity-utils/src/contracts/oz-common/SafeERC20.sol#27-32) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (lib/solidity-utils/src/contracts/oz-common/Address.sol#61-66):
	- (success) = recipient.call{value: amount}() (lib/solidity-utils/src/contracts/oz-common/Address.sol#64)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#129-138):
	- (success,returndata) = target.call{value: value}(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#136)
Low level call in Address.functionStaticCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#159-166):
	- (success,returndata) = target.staticcall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (lib/solidity-utils/src/contracts/oz-common/Address.sol#184-191):
	- (success,returndata) = target.delegatecall(data) (lib/solidity-utils/src/contracts/oz-common/Address.sol#189)
Low level call in Rescuable.emergencyEtherTransfer(address,uint256) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#34-39):
	- (success) = to.call{value: amount}(new bytes(0)) (lib/solidity-utils/src/contracts/utils/Rescuable.sol#35)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Function IERC20Permit.DOMAIN_SEPARATOR() (lib/solidity-utils/src/contracts/oz-common/interfaces/draft-IERC20Permit.sol#60) is not in mixedCase
Variable PayloadsController.MESSAGE_ORIGINATOR (src/contracts/payloads/PayloadsController.sol#16) is not in mixedCase
Variable PayloadsController.CROSS_CHAIN_CONTROLLER (src/contracts/payloads/PayloadsController.sol#19) is not in mixedCase
Variable PayloadsController.ORIGIN_CHAIN_ID (src/contracts/payloads/PayloadsController.sol#22) is not in mixedCase
Function PayloadsControllerCore.MIN_EXECUTION_DELAY() (src/contracts/payloads/PayloadsControllerCore.sol#53-55) is not in mixedCase
Function PayloadsControllerCore.MAX_EXECUTION_DELAY() (src/contracts/payloads/PayloadsControllerCore.sol#58-60) is not in mixedCase
Function IPayloadsController.CROSS_CHAIN_CONTROLLER() (src/contracts/payloads/interfaces/IPayloadsController.sol#18) is not in mixedCase
Function IPayloadsController.ORIGIN_CHAIN_ID() (src/contracts/payloads/interfaces/IPayloadsController.sol#24) is not in mixedCase
Function IPayloadsController.MESSAGE_ORIGINATOR() (src/contracts/payloads/interfaces/IPayloadsController.sol#30) is not in mixedCase
Function IPayloadsControllerCore.EXPIRATION_DELAY() (src/contracts/payloads/interfaces/IPayloadsControllerCore.sol#169) is not in mixedCase
Function IPayloadsControllerCore.MAX_EXECUTION_DELAY() (src/contracts/payloads/interfaces/IPayloadsControllerCore.sol#175) is not in mixedCase
Function IPayloadsControllerCore.MIN_EXECUTION_DELAY() (src/contracts/payloads/interfaces/IPayloadsControllerCore.sol#181) is not in mixedCase
Function IPayloadsControllerCore.GRACE_PERIOD() (src/contracts/payloads/interfaces/IPayloadsControllerCore.sol#187) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x7222182cb9c5320587b5148bf03eee107ad64578 analyzed (20 contracts with 87 detectors), 116 result(s) found
Slither report for AccessControlledOffchainAggregator at `0x785433d8b06D77D68dF6be63944742130A4530d1`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x785433d8b06d77d68df6be63944742130a4530d1-AccessControlledOffchainAggregator' running
Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

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

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


INFO:Detectors:
OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623) passes array OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) by reference to OffchainAggregatorBilling.oracleRewards(bytes,uint16[31]) (OffchainAggregatorBilling.sol#392-406) which only takes arrays by value
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#modifying-storage-array-by-value
INFO:Detectors:
Reentrancy in OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei[oracle.index] = 1 (OffchainAggregatorBilling.sol#355)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts[oracle.index] = 1 (OffchainAggregatorBilling.sol#354)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei = gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#389)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts = observationsCounts (OffchainAggregatorBilling.sol#388)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#213-228):
	External calls:
	- payOracles() (OffchainAggregatorBilling.sol#225)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- setBillingInternal(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#226-227)
		- s_billing = Billing(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#198-199)
	OffchainAggregatorBilling.s_billing (OffchainAggregatorBilling.sol#66) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.getBilling() (OffchainAggregatorBilling.sol#238-257)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#189-202)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- delete s_oracles[signer] (OffchainAggregator.sol#165)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- delete s_oracles[transmitter] (OffchainAggregator.sol#166)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_signers[i]] = Oracle(uint8(i),Role.Signer) (OffchainAggregator.sol#176)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_transmitters[i]] = Oracle(uint8(i),Role.Transmitter) (OffchainAggregator.sol#182)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_signers.pop() (OffchainAggregator.sol#167)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_signers.push(_signers[i]) (OffchainAggregator.sol#183)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_transmitters.pop() (OffchainAggregator.sol#168)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
	- s_transmitters.push(_transmitters[i]) (OffchainAggregator.sol#184)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
Reentrancy in OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644):
	External calls:
	- validateAnswer(r.hotVars.latestAggregatorRoundId,median) (OffchainAggregator.sol#639)
		- av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
	State variables written after the call(s):
	- s_hotVars = r.hotVars (OffchainAggregator.sol#641)
	OffchainAggregator.s_hotVars (OffchainAggregator.sol#39) can be used in cross function reentrancies:
	- OffchainAggregator.latestAnswer() (OffchainAggregator.sol#653-661)
	- OffchainAggregator.latestConfigDetails() (OffchainAggregator.sol#235-245)
	- OffchainAggregator.latestRound() (OffchainAggregator.sol#679-687)
	- OffchainAggregator.latestRoundData() (OffchainAggregator.sol#791-817)
	- OffchainAggregator.latestTimestamp() (OffchainAggregator.sol#666-674)
	- OffchainAggregator.latestTransmissionDetails() (OffchainAggregator.sol#454-473)
	- OffchainAggregator.requestNewRound() (OffchainAggregator.sol#385-398)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
INFO:Detectors:
OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface).gas (OffchainAggregatorBilling.sol#163) is a local variable never initialized
OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32).r (OffchainAggregator.sol#526) is a local variable never initialized
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
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.LINK (OffchainAggregatorBilling.sol#71) 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.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.withdrawPayment(address)._transmitter (OffchainAggregatorBilling.sol#308) is too similar to OffchainAggregatorBilling.totalLINKDue().transmitters (OffchainAggregatorBilling.sol#529)
Variable OffchainAggregatorBilling.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.acceptPayeeship(address)._transmitter (OffchainAggregatorBilling.sol#711) is too similar to OffchainAggregatorBilling.payOracles().transmitters (OffchainAggregatorBilling.sol#371)
Variable OffchainAggregatorBilling.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) 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.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) 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 87 detectors), 104 result(s) found
Slither report for InitializableAdminUpgradeabilityProxy (Aave) at `0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9` with implementation AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9-InitializableAdminUpgradeabilityProxy' running
Warning: contracts/open-zeppelin/Address.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

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

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

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

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

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

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

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

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

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

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

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


INFO:Detectors:
InitializableUpgradeabilityProxy.initialize(address,bytes) (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#20-28) uses delegatecall to a input-controlled function id
	- (success) = _logic.delegatecall(_data) (contracts/open-zeppelin/InitializableUpgradeabilityProxy.sol#25)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#controlled-delegatecall
INFO:Detectors:
BaseAdminUpgradeabilityProxy.admin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#45-47) calls BaseAdminUpgradeabilityProxy.ifAdmin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#34-40) which halt the execution return(uint256,uint256)(0,returndatasize()()) (contracts/open-zeppelin/Proxy.sol#47)
BaseAdminUpgradeabilityProxy.implementation() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#52-54) calls BaseAdminUpgradeabilityProxy.ifAdmin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#34-40) which halt the execution return(uint256,uint256)(0,returndatasize()()) (contracts/open-zeppelin/Proxy.sol#47)
BaseAdminUpgradeabilityProxy.changeAdmin(address) (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#61-65) calls BaseAdminUpgradeabilityProxy.ifAdmin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#34-40) which halt the execution return(uint256,uint256)(0,returndatasize()()) (contracts/open-zeppelin/Proxy.sol#47)
BaseAdminUpgradeabilityProxy.upgradeTo(address) (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#72-74) calls BaseAdminUpgradeabilityProxy.ifAdmin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#34-40) which halt the execution return(uint256,uint256)(0,returndatasize()()) (contracts/open-zeppelin/Proxy.sol#47)
BaseAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#85-89) calls BaseAdminUpgradeabilityProxy.ifAdmin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#34-40) which halt the execution return(uint256,uint256)(0,returndatasize()()) (contracts/open-zeppelin/Proxy.sol#47)
BaseAdminUpgradeabilityProxy.ifAdmin() (contracts/open-zeppelin/BaseAdminUpgradeabilityProxy.sol#34-40) calls Proxy._fallback() (contracts/open-zeppelin/Proxy.sol#63-66) which halt the execution return(uint256,uint256)(0,returndatasize()()) (contracts/open-zeppelin/Proxy.sol#47)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-assembly-return
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:
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 87 detectors), 61 result(s) found
Slither report for AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x96f68837877fd0414b55050c9e794aecdbcfca59-AaveTokenV2' running
Warning: src/contracts/AaveTokenV2.sol:453:18: Warning: This declaration shadows an existing declaration.
    constructor (string memory name, string memory symbol) public {
                 ^----------------^
src/contracts/AaveTokenV2.sol:462:5: The shadowed declaration is here:
    function name() public view returns (string memory) {
    ^ (Relevant source part starts here and spans across multiple lines).

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

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

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

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

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

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

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

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

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

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

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


INFO:Detectors:
AaveTokenV2._votingSnapshots (src/contracts/AaveTokenV2.sol#1137) is never initialized. It is used in:
	- AaveTokenV2._getDelegationDataByType(IGovernancePowerDelegationToken.DelegationType) (src/contracts/AaveTokenV2.sol#1268-1287)
AaveTokenV2._votingSnapshotsCounts (src/contracts/AaveTokenV2.sol#1139) is never initialized. It is used in:
	- AaveTokenV2._getDelegationDataByType(IGovernancePowerDelegationToken.DelegationType) (src/contracts/AaveTokenV2.sol#1268-1287)
AaveTokenV2._aaveGovernance (src/contracts/AaveTokenV2.sol#1144) is never initialized. It is used in:
	- AaveTokenV2._beforeTokenTransfer(address,address,uint256) (src/contracts/AaveTokenV2.sol#1236-1266)
AaveTokenV2.DOMAIN_SEPARATOR (src/contracts/AaveTokenV2.sol#1146) is never initialized. It is used in:
	- AaveTokenV2.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1194-1218)
	- AaveTokenV2.delegateByTypeBySig(address,IGovernancePowerDelegationToken.DelegationType,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1299-1317)
	- AaveTokenV2.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1328-1344)
AaveTokenV2._propositionPowerSnapshots (src/contracts/AaveTokenV2.sol#1157) is never initialized. It is used in:
	- AaveTokenV2._getDelegationDataByType(IGovernancePowerDelegationToken.DelegationType) (src/contracts/AaveTokenV2.sol#1268-1287)
AaveTokenV2._propositionPowerSnapshotsCounts (src/contracts/AaveTokenV2.sol#1158) is never initialized. It is used in:
	- AaveTokenV2._getDelegationDataByType(IGovernancePowerDelegationToken.DelegationType) (src/contracts/AaveTokenV2.sol#1268-1287)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-state-variables
INFO:Detectors:
GovernancePowerDelegationERC20._searchByBlockNumber(mapping(address => mapping(uint256 => GovernancePowerDelegationERC20.Snapshot)),mapping(address => uint256),address,uint256) (src/contracts/AaveTokenV2.sol#1012-1050) uses a dangerous strict equality:
	- snapshot.blockNumber == blockNumber (src/contracts/AaveTokenV2.sol#1041)
GovernancePowerDelegationERC20._writeSnapshot(mapping(address => mapping(uint256 => GovernancePowerDelegationERC20.Snapshot)),mapping(address => uint256),address,uint128,uint128) (src/contracts/AaveTokenV2.sol#1075-1097) uses a dangerous strict equality:
	- ownerSnapshotsCount != 0 && snapshotsOwner[ownerSnapshotsCount - 1].blockNumber == currentBlock (src/contracts/AaveTokenV2.sol#1089-1090)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
INFO:Detectors:
ERC20.constructor(string,string).name (src/contracts/AaveTokenV2.sol#453) shadows:
	- ERC20.name() (src/contracts/AaveTokenV2.sol#462-464) (function)
ERC20.constructor(string,string).symbol (src/contracts/AaveTokenV2.sol#453) shadows:
	- ERC20.symbol() (src/contracts/AaveTokenV2.sol#470-472) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Reentrancy in AaveTokenV2.initialize(address[],uint256[],address,address,uint256) (src/contracts/AaveTokenV2.sol#1171-1181):
	External calls:
	- IERC20(tokens[i]).safeTransfer(aaveMerkleDistributor,amounts[i]) (src/contracts/AaveTokenV2.sol#1175)
	Event emitted after the call(s):
	- TokensRescued(tokens[i],aaveMerkleDistributor,amounts[i]) (src/contracts/AaveTokenV2.sol#1177)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
AaveTokenV2.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1194-1218) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp <= deadline,INVALID_EXPIRATION) (src/contracts/AaveTokenV2.sol#1205)
AaveTokenV2.delegateByTypeBySig(address,IGovernancePowerDelegationToken.DelegationType,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1299-1317) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp <= expiry,INVALID_EXPIRATION) (src/contracts/AaveTokenV2.sol#1315)
AaveTokenV2.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (src/contracts/AaveTokenV2.sol#1328-1344) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp <= expiry,INVALID_EXPIRATION) (src/contracts/AaveTokenV2.sol#1341)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
Address.isContract(address) (src/contracts/AaveTokenV2.sol#368-379) uses assembly
	- INLINE ASM (src/contracts/AaveTokenV2.sol#375-377)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.sendValue(address,uint256) (src/contracts/AaveTokenV2.sol#397-403) is never used and should be removed
Context._msgData() (src/contracts/AaveTokenV2.sol#94-97) is never used and should be removed
ERC20._beforeTokenTransfer(address,address,uint256) (src/contracts/AaveTokenV2.sol#702) is never used and should be removed
ERC20._burn(address,uint256) (src/contracts/AaveTokenV2.sol#646-654) is never used and should be removed
ERC20._mint(address,uint256) (src/contracts/AaveTokenV2.sol#625-633) is never used and should be removed
ERC20._setupDecimals(uint8) (src/contracts/AaveTokenV2.sol#684-686) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (src/contracts/AaveTokenV2.sol#745-755) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (src/contracts/AaveTokenV2.sol#736-743) is never used and should be removed
SafeMath.div(uint256,uint256) (src/contracts/AaveTokenV2.sol#280-282) is never used and should be removed
SafeMath.div(uint256,uint256,string) (src/contracts/AaveTokenV2.sol#295-306) is never used and should be removed
SafeMath.mod(uint256,uint256) (src/contracts/AaveTokenV2.sol#319-321) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (src/contracts/AaveTokenV2.sol#334-341) is never used and should be removed
SafeMath.mul(uint256,uint256) (src/contracts/AaveTokenV2.sol#255-267) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (src/contracts/AaveTokenV2.sol#397-403):
	- (success) = recipient.call{value: amount}() (src/contracts/AaveTokenV2.sol#401)
Low level call in SafeERC20.callOptionalReturn(IERC20,bytes) (src/contracts/AaveTokenV2.sol#757-769):
	- (success,returndata) = address(token).call(data) (src/contracts/AaveTokenV2.sol#761)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Detectors:
Variable 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
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 87 detectors), 39 result(s) found
Slither report for TransparentUpgradeableProxy at `0x9AEE0B04504CeF83A65AC3f0e838D0593BCb2BC7` with implementation Governance_V2_5 at `0x323F2c8E227b3F0d88B047Ed16581fc0b6B9B1d7`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x9aee0b04504cef83a65ac3f0e838d0593bcb2bc7-TransparentUpgradeableProxy' running
INFO:Detectors:
TransparentUpgradeableProxy.admin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#69-71) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.implementation() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#82-84) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.changeAdmin(address) (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#93-95) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.upgradeTo(address) (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#102-104) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#113-118) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) calls Proxy._fallback() (src/contracts/transparent-proxy/Proxy.sol#64-67) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-assembly-return
INFO:Detectors:
ERC1967Upgrade._upgradeToAndCall(address,bytes,bool) (src/contracts/transparent-proxy/ERC1967Upgrade.sol#84-93) ignores return value by Address.functionDelegateCall(newImplementation,data) (src/contracts/transparent-proxy/ERC1967Upgrade.sol#91)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
Modifier TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Address._revert(bytes,string) (src/contracts/oz-common/Address.sol#235-247) uses assembly
	- INLINE ASM (src/contracts/oz-common/Address.sol#240-243)
StorageSlot.getAddressSlot(bytes32) (src/contracts/oz-common/StorageSlot.sol#53-58) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#55-57)
StorageSlot.getBooleanSlot(bytes32) (src/contracts/oz-common/StorageSlot.sol#63-68) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#65-67)
StorageSlot.getBytes32Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#73-78) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#75-77)
StorageSlot.getUint256Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#83-88) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#85-87)
Proxy._delegate(address) (src/contracts/transparent-proxy/Proxy.sol#28-51) uses assembly
	- INLINE ASM (src/contracts/transparent-proxy/Proxy.sol#29-50)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.functionCall(address,bytes) (src/contracts/oz-common/Address.sol#86-88) is never used and should be removed
Address.functionCall(address,bytes,string) (src/contracts/oz-common/Address.sol#96-102) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (src/contracts/oz-common/Address.sol#115-121) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (src/contracts/oz-common/Address.sol#129-138) is never used and should be removed
Address.functionStaticCall(address,bytes) (src/contracts/oz-common/Address.sol#146-151) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (src/contracts/oz-common/Address.sol#159-166) is never used and should be removed
Address.sendValue(address,uint256) (src/contracts/oz-common/Address.sol#61-66) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (src/contracts/oz-common/Address.sol#223-233) is never used and should be removed
StorageSlot.getBooleanSlot(bytes32) (src/contracts/oz-common/StorageSlot.sol#63-68) is never used and should be removed
StorageSlot.getBytes32Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#73-78) is never used and should be removed
StorageSlot.getUint256Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#83-88) is never used and should be removed
TransparentUpgradeableProxy._admin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#123-125) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (src/contracts/oz-common/Address.sol#61-66):
	- (success) = recipient.call{value: amount}() (src/contracts/oz-common/Address.sol#64)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (src/contracts/oz-common/Address.sol#129-138):
	- (success,returndata) = target.call{value: value}(data) (src/contracts/oz-common/Address.sol#136)
Low level call in Address.functionStaticCall(address,bytes,string) (src/contracts/oz-common/Address.sol#159-166):
	- (success,returndata) = target.staticcall(data) (src/contracts/oz-common/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (src/contracts/oz-common/Address.sol#184-191):
	- (success,returndata) = target.delegatecall(data) (src/contracts/oz-common/Address.sol#189)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Slither:0x9aee0b04504cef83a65ac3f0e838d0593bcb2bc7 analyzed (6 contracts with 87 detectors), 30 result(s) found
Slither report for EthRobotKeeper at `0x9EEa1Ba822d204077e9f90a92D30432417184587`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0x9eea1ba822d204077e9f90a92d30432417184587-EthRobotKeeper' running
INFO:Detectors:
EthRobotKeeper._squeezeAndShuffleActions(IEthRobotKeeper.ActionWithId[],uint256) (src/contracts/EthRobotKeeper.sol#242-264) uses a weak PRNG: "n = i + (randomNumber % (actions.length - i)) (src/contracts/EthRobotKeeper.sol#257)"
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#weak-PRNG
INFO:Detectors:
EthRobotKeeper.performUpkeep(bytes).isActionPerformed (src/contracts/EthRobotKeeper.sol#117) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
EthRobotKeeper.constructor(address).governanceV2 (src/contracts/EthRobotKeeper.sol#34) lacks a zero-check on :
		- GOVERNANCE_V2 = governanceV2 (src/contracts/EthRobotKeeper.sol#35)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
EthRobotKeeper.checkUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#42-108) has external calls inside a loop: proposalState = IAaveGovernanceV2(GOVERNANCE_V2).getProposalState(proposalId) (src/contracts/EthRobotKeeper.sol#57-58)
EthRobotKeeper.checkUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#42-108) has external calls inside a loop: proposal = IAaveGovernanceV2(GOVERNANCE_V2).getProposalById(proposalId) (src/contracts/EthRobotKeeper.sol#59-60)
EthRobotKeeper._canProposalBeCancelled(IAaveGovernanceV2.ProposalState,IAaveGovernanceV2.ProposalWithoutVotes) (src/contracts/EthRobotKeeper.sol#216-234) has external calls inside a loop: proposalValidator.validateProposalCancellation(IAaveGovernanceV2(GOVERNANCE_V2),proposal.creator,block.number - 1) (src/contracts/EthRobotKeeper.sol#228-233)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: proposal = IAaveGovernanceV2(GOVERNANCE_V2).getProposalById(proposalId) (src/contracts/EthRobotKeeper.sol#124-125)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: proposalState = IAaveGovernanceV2(GOVERNANCE_V2).getProposalState(proposalId) (src/contracts/EthRobotKeeper.sol#126-127)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: IAaveGovernanceV2(GOVERNANCE_V2).cancel(proposalId) (src/contracts/EthRobotKeeper.sol#132)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: IAaveGovernanceV2(GOVERNANCE_V2).queue(proposalId) (src/contracts/EthRobotKeeper.sol#136)
EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149) has external calls inside a loop: IAaveGovernanceV2(GOVERNANCE_V2).execute(proposalId) (src/contracts/EthRobotKeeper.sol#142)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
INFO:Detectors:
Reentrancy in EthRobotKeeper.performUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#115-149):
	External calls:
	- IAaveGovernanceV2(GOVERNANCE_V2).cancel(proposalId) (src/contracts/EthRobotKeeper.sol#132)
	- IAaveGovernanceV2(GOVERNANCE_V2).queue(proposalId) (src/contracts/EthRobotKeeper.sol#136)
	- IAaveGovernanceV2(GOVERNANCE_V2).execute(proposalId) (src/contracts/EthRobotKeeper.sol#142)
	Event emitted after the call(s):
	- ActionSucceeded(proposalId,action) (src/contracts/EthRobotKeeper.sol#134)
	- ActionSucceeded(proposalId,action) (src/contracts/EthRobotKeeper.sol#138)
	- ActionSucceeded(proposalId,action) (src/contracts/EthRobotKeeper.sol#144)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
EthRobotKeeper._canProposalBeExecuted(IAaveGovernanceV2.ProposalState,IAaveGovernanceV2.ProposalWithoutVotes) (src/contracts/EthRobotKeeper.sol#197-208) uses timestamp for comparisons
	Dangerous comparisons:
	- proposalState == IAaveGovernanceV2.ProposalState.Queued && block.timestamp >= proposal.executionTime (src/contracts/EthRobotKeeper.sol#202-203)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
INFO:Detectors:
EthRobotKeeper.checkUpkeep(bytes) (src/contracts/EthRobotKeeper.sol#42-108) uses assembly
	- INLINE ASM (src/contracts/EthRobotKeeper.sol#92-94)
	- INLINE ASM (src/contracts/EthRobotKeeper.sol#101-103)
EthRobotKeeper._squeezeAndShuffleActions(IEthRobotKeeper.ActionWithId[],uint256) (src/contracts/EthRobotKeeper.sol#242-264) uses assembly
	- INLINE ASM (src/contracts/EthRobotKeeper.sol#248-250)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Context._msgData() (lib/solidity-utils/src/contracts/oz-common/Context.sol#22-24) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Function IExecutorWithTimelock.GRACE_PERIOD() (lib/aave-address-book/src/AaveGovernanceV2.sol#159) is not in mixedCase
Function IExecutorWithTimelock.MINIMUM_DELAY() (lib/aave-address-book/src/AaveGovernanceV2.sol#165) is not in mixedCase
Function IExecutorWithTimelock.MAXIMUM_DELAY() (lib/aave-address-book/src/AaveGovernanceV2.sol#171) is not in mixedCase
Function IAaveGovernanceV2.__abdicate() (lib/aave-address-book/src/AaveGovernanceV2.sol#444) is not in mixedCase
Variable EthRobotKeeper.GOVERNANCE_V2 (src/contracts/EthRobotKeeper.sol#19) is not in mixedCase
Function IAaveCLRobotOperator.LINK_TOKEN() (src/interfaces/IAaveCLRobotOperator.sol#133) is not in mixedCase
Function IAaveCLRobotOperator.KEEPER_REGISTRY() (src/interfaces/IAaveCLRobotOperator.sol#139) is not in mixedCase
Function IAaveCLRobotOperator.KEEPER_REGISTRAR() (src/interfaces/IAaveCLRobotOperator.sol#145) is not in mixedCase
Function IEthRobotKeeper.GOVERNANCE_V2() (src/interfaces/IEthRobotKeeper.sol#58) is not in mixedCase
Function IEthRobotKeeper.MAX_ACTIONS() (src/interfaces/IEthRobotKeeper.sol#65) is not in mixedCase
Function IEthRobotKeeper.MAX_SKIP() (src/interfaces/IEthRobotKeeper.sol#71) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0x9eea1ba822d204077e9f90a92d30432417184587 analyzed (11 contracts with 87 detectors), 27 result(s) found
Slither report for GovernanceStrategy at `0xb7e383ef9B1E9189Fc0F71fb30af8aa14377429e`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
INFO:Detectors:
GovernanceStrategy.constructor(address,address).aave (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#78) lacks a zero-check on :
		- AAVE = aave (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#79)
GovernanceStrategy.constructor(address,address).stkAave (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#78) lacks a zero-check on :
		- STK_AAVE = stkAave (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#80)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Variable GovernanceStrategy.AAVE (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#70) is not in mixedCase
Variable GovernanceStrategy.STK_AAVE (crytic-export/etherscan-contracts/0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e-GovernanceStrategy.sol#71) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e analyzed (4 contracts with 87 detectors), 4 result(s) found
Slither report for AccessControlledOffchainAggregator at `0xbba12740DE905707251525477bAD74985DeC46D2`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xbba12740de905707251525477bad74985dec46d2-AccessControlledOffchainAggregator' running
Warning: OffchainAggregator.sol:461:7: Warning: This declaration shadows an existing declaration.
      int192 latestAnswer,
      ^-----------------^
OffchainAggregator.sol:653:3: The shadowed declaration is here:
  function latestAnswer()
  ^ (Relevant source part starts here and spans across multiple lines).

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

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


INFO:Detectors:
OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623) passes array OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) by reference to OffchainAggregatorBilling.oracleRewards(bytes,uint16[31]) (OffchainAggregatorBilling.sol#392-406) which only takes arrays by value
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#modifying-storage-array-by-value
INFO:Detectors:
Reentrancy in OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei[oracle.index] = 1 (OffchainAggregatorBilling.sol#355)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts[oracle.index] = 1 (OffchainAggregatorBilling.sol#354)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- s_gasReimbursementsLinkWei = gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#389)
	OffchainAggregatorBilling.s_gasReimbursementsLinkWei (OffchainAggregatorBilling.sol#114) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- s_oracleObservationsCounts = observationsCounts (OffchainAggregatorBilling.sol#388)
	OffchainAggregatorBilling.s_oracleObservationsCounts (OffchainAggregatorBilling.sol#84) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface) (OffchainAggregatorBilling.sol#148-171)
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#213-228):
	External calls:
	- payOracles() (OffchainAggregatorBilling.sol#225)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	State variables written after the call(s):
	- setBillingInternal(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#226-227)
		- s_billing = Billing(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#198-199)
	OffchainAggregatorBilling.s_billing (OffchainAggregatorBilling.sol#66) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.getBilling() (OffchainAggregatorBilling.sol#238-257)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregatorBilling.setBillingInternal(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#189-202)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- delete s_oracles[signer] (OffchainAggregator.sol#165)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- delete s_oracles[transmitter] (OffchainAggregator.sol#166)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_signers[i]] = Oracle(uint8(i),Role.Signer) (OffchainAggregator.sol#176)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_oracles[_transmitters[i]] = Oracle(uint8(i),Role.Transmitter) (OffchainAggregator.sol#182)
	OffchainAggregatorBilling.s_oracles (OffchainAggregatorBilling.sol#135-136) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.oracleObservationCount(address) (OffchainAggregatorBilling.sol#559-567)
	- OffchainAggregatorBilling.owedPayment(address) (OffchainAggregatorBilling.sol#319-333)
	- OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358)
	- OffchainAggregatorBilling.reimburseAndRewardOracles(uint32,bytes) (OffchainAggregatorBilling.sol#570-623)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- s_signers.pop() (OffchainAggregator.sol#167)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_signers.push(_signers[i]) (OffchainAggregator.sol#183)
	OffchainAggregatorBilling.s_signers (OffchainAggregatorBilling.sol#139) can be used in cross function reentrancies:
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- s_transmitters.pop() (OffchainAggregator.sol#168)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
	- s_transmitters.push(_transmitters[i]) (OffchainAggregator.sol#184)
	OffchainAggregatorBilling.s_transmitters (OffchainAggregatorBilling.sol#143) can be used in cross function reentrancies:
	- OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregatorBilling.totalLINKDue() (OffchainAggregatorBilling.sol#508-535)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
	- OffchainAggregator.transmitters() (OffchainAggregator.sol#252-258)
Reentrancy in OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644):
	External calls:
	- validateAnswer(r.hotVars.latestAggregatorRoundId,median) (OffchainAggregator.sol#639)
		- av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
	State variables written after the call(s):
	- s_hotVars = r.hotVars (OffchainAggregator.sol#641)
	OffchainAggregator.s_hotVars (OffchainAggregator.sol#39) can be used in cross function reentrancies:
	- OffchainAggregator.latestAnswer() (OffchainAggregator.sol#653-661)
	- OffchainAggregator.latestConfigDetails() (OffchainAggregator.sol#235-245)
	- OffchainAggregator.latestRound() (OffchainAggregator.sol#679-687)
	- OffchainAggregator.latestRoundData() (OffchainAggregator.sol#791-817)
	- OffchainAggregator.latestTimestamp() (OffchainAggregator.sol#666-674)
	- OffchainAggregator.latestTransmissionDetails() (OffchainAggregator.sol#454-473)
	- OffchainAggregator.requestNewRound() (OffchainAggregator.sol#385-398)
	- OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212)
	- OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
INFO:Detectors:
OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface).counts (OffchainAggregatorBilling.sol#162) is a local variable never initialized
OffchainAggregatorBilling.constructor(uint32,uint32,uint32,uint32,uint32,address,AccessControllerInterface).gas (OffchainAggregatorBilling.sol#163) is a local variable never initialized
OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32).r (OffchainAggregator.sol#526) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
INFO:Detectors:
OffchainAggregator.validateAnswer(uint32,int256) (OffchainAggregator.sol#309-328) ignores return value by av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
AccessControlledOffchainAggregator.constructor(uint32,uint32,uint32,uint32,uint32,address,address,int192,int192,AccessControllerInterface,AccessControllerInterface,uint8,string).description (AccessControlledOffchainAggregator.sol#25) shadows:
	- AccessControlledOffchainAggregator.description() (AccessControlledOffchainAggregator.sol#108-116) (function)
	- OffchainAggregator.description() (OffchainAggregator.sol#740-748) (function)
	- AggregatorV3Interface.description() (AggregatorV3Interface.sol#7) (function)
OffchainAggregator.latestTransmissionDetails().latestAnswer (OffchainAggregator.sol#461) shadows:
	- OffchainAggregator.latestAnswer() (OffchainAggregator.sol#653-661) (function)
	- AggregatorInterface.latestAnswer() (AggregatorInterface.sol#5) (function)
OffchainAggregator.latestTransmissionDetails().latestTimestamp (OffchainAggregator.sol#462) shadows:
	- OffchainAggregator.latestTimestamp() (OffchainAggregator.sol#666-674) (function)
	- AggregatorInterface.latestTimestamp() (AggregatorInterface.sol#6) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (Owned.sol#30) lacks a zero-check on :
		- pendingOwner = _to (Owned.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358) has external calls inside a loop: require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
INFO:Detectors:
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	State variables written after the call(s):
	- s_configCount += 1 (OffchainAggregator.sol#189)
	- s_hotVars.threshold = _threshold (OffchainAggregator.sol#186)
	- s_hotVars.latestConfigDigest = configDigestFromConfigData(address(this),configCount,_signers,_transmitters,_threshold,_encodedConfigVersion,_encoded) (OffchainAggregator.sol#192-200)
	- s_hotVars.latestEpochAndRound = 0 (OffchainAggregator.sol#201)
	- s_latestConfigBlockNumber = uint32(block.number) (OffchainAggregator.sol#188)
Reentrancy in OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32) (OffchainAggregator.sol#508-644):
	External calls:
	- validateAnswer(r.hotVars.latestAggregatorRoundId,median) (OffchainAggregator.sol#639)
		- av.validate{gas: VALIDATOR_GAS_LIMIT}(prevAggregatorRoundId,prevAggregatorRoundAnswer,_aggregatorRoundId,_answer) (OffchainAggregator.sol#322-327)
	State variables written after the call(s):
	- reimburseAndRewardOracles(uint32(initialGas),r.observers) (OffchainAggregator.sol#643)
		- s_gasReimbursementsLinkWei[txOracle.index] = s_gasReimbursementsLinkWei[txOracle.index] + gasCostLinkWei + uint256(billing.linkGweiPerTransmission) * (1000000000) (OffchainAggregatorBilling.sol#615-617)
	- reimburseAndRewardOracles(uint32(initialGas),r.observers) (OffchainAggregator.sol#643)
		- s_oracleObservationsCounts = oracleRewards(observers,s_oracleObservationsCounts) (OffchainAggregatorBilling.sol#580-581)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2
INFO:Detectors:
Reentrancy in OffchainAggregatorBilling.payOracle(address) (OffchainAggregatorBilling.sol#344-358):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	Event emitted after the call(s):
	- OraclePaid(_transmitter,payee,linkWeiAmount) (OffchainAggregatorBilling.sol#356)
Reentrancy in OffchainAggregatorBilling.payOracles() (OffchainAggregatorBilling.sol#364-390):
	External calls:
	- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	Event emitted after the call(s):
	- OraclePaid(transmitters[transmitteridx],payee,linkWeiAmount) (OffchainAggregatorBilling.sol#384)
Reentrancy in OffchainAggregatorBilling.setBilling(uint32,uint32,uint32,uint32,uint32) (OffchainAggregatorBilling.sol#213-228):
	External calls:
	- payOracles() (OffchainAggregatorBilling.sol#225)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#381)
	Event emitted after the call(s):
	- BillingSet(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#200-201)
		- setBillingInternal(_maximumGasPrice,_reasonableGasPrice,_microLinkPerEth,_linkGweiPerObservation,_linkGweiPerTransmission) (OffchainAggregatorBilling.sol#226-227)
Reentrancy in OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212):
	External calls:
	- payOracle(transmitter) (OffchainAggregator.sol#164)
		- require(bool,string)(LINK.transfer(payee,linkWeiAmount),insufficient funds) (OffchainAggregatorBilling.sol#353)
	Event emitted after the call(s):
	- ConfigSet(previousConfigBlockNumber,configCount,_signers,_transmitters,_threshold,_encodedConfigVersion,_encoded) (OffchainAggregator.sol#203-211)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
INFO:Detectors:
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- delete s_oracles[signer] (OffchainAggregator.sol#165)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- delete s_oracles[transmitter] (OffchainAggregator.sol#166)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- s_signers.pop() (OffchainAggregator.sol#167)
OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes) (OffchainAggregator.sol#149-212) has costly operations inside a loop:
	- s_transmitters.pop() (OffchainAggregator.sol#168)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop
INFO:Detectors:
OffchainAggregator.decodeReport(bytes) (OffchainAggregator.sol#423-434) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Parameter AccessControlledOffchainAggregator.getAnswer(uint256)._roundId (AccessControlledOffchainAggregator.sol#82) is not in mixedCase
Parameter AccessControlledOffchainAggregator.getTimestamp(uint256)._roundId (AccessControlledOffchainAggregator.sol#93) is not in mixedCase
Parameter AccessControlledOffchainAggregator.getRoundData(uint80)._roundId (AccessControlledOffchainAggregator.sol#119) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._signers (OffchainAggregator.sol#150) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._transmitters (OffchainAggregator.sol#151) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._threshold (OffchainAggregator.sol#152) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._encodedConfigVersion (OffchainAggregator.sol#153) is not in mixedCase
Parameter OffchainAggregator.setConfig(address[],address[],uint8,uint64,bytes)._encoded (OffchainAggregator.sol#154) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._contractAddress (OffchainAggregator.sol#215) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._configCount (OffchainAggregator.sol#216) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._signers (OffchainAggregator.sol#217) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._transmitters (OffchainAggregator.sol#218) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._threshold (OffchainAggregator.sol#219) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._encodedConfigVersion (OffchainAggregator.sol#220) is not in mixedCase
Parameter OffchainAggregator.configDigestFromConfigData(address,uint64,address[],address[],uint8,uint64,bytes)._encodedConfig (OffchainAggregator.sol#221) is not in mixedCase
Parameter OffchainAggregator.setValidator(address)._newValidator (OffchainAggregator.sol#296) is not in mixedCase
Parameter OffchainAggregator.validateAnswer(uint32,int256)._aggregatorRoundId (OffchainAggregator.sol#310) is not in mixedCase
Parameter OffchainAggregator.validateAnswer(uint32,int256)._answer (OffchainAggregator.sol#311) is not in mixedCase
Parameter OffchainAggregator.setRequesterAccessController(AccessControllerInterface)._requesterAccessController (OffchainAggregator.sol#368) is not in mixedCase
Parameter OffchainAggregator.decodeReport(bytes)._report (OffchainAggregator.sol#423) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._report (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._rs (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.expectedMsgDataLength(bytes,bytes32[],bytes32[])._ss (OffchainAggregator.sol#490) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._report (OffchainAggregator.sol#511) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._rs (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._ss (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.transmit(bytes,bytes32[],bytes32[],bytes32)._rawVs (OffchainAggregator.sol#512) is not in mixedCase
Parameter OffchainAggregator.getAnswer(uint256)._roundId (OffchainAggregator.sol#693) is not in mixedCase
Parameter OffchainAggregator.getTimestamp(uint256)._roundId (OffchainAggregator.sol#708) is not in mixedCase
Parameter OffchainAggregator.getRoundData(uint80)._roundId (OffchainAggregator.sol#759) is not in mixedCase
Constant OffchainAggregator.maxUint32 (OffchainAggregator.sol#19) is not in UPPER_CASE_WITH_UNDERSCORES
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.LINK (OffchainAggregatorBilling.sol#71) 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.payOracle(address)._transmitter (OffchainAggregatorBilling.sol#344) 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.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.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.owedPayment(address)._transmitter (OffchainAggregatorBilling.sol#319) 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.transferPayeeship(address,address)._transmitter (OffchainAggregatorBilling.sol#689) 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)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#variable-names-too-similar
INFO:Slither:0xbba12740de905707251525477bad74985dec46d2 analyzed (12 contracts with 87 detectors), 104 result(s) found
Slither report for TransparentUpgradeableProxy at `0xdAbad81aF85554E9ae636395611C58F7eC1aAEc5` with implementation PayloadsController at `0x7222182cB9c5320587b5148BF03eeE107AD64578`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xdabad81af85554e9ae636395611c58f7ec1aaec5-TransparentUpgradeableProxy' running
INFO:Detectors:
TransparentUpgradeableProxy.admin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#69-71) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.implementation() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#82-84) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.changeAdmin(address) (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#93-95) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.upgradeTo(address) (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#102-104) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#113-118) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) calls Proxy._fallback() (src/contracts/transparent-proxy/Proxy.sol#64-67) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-assembly-return
INFO:Detectors:
ERC1967Upgrade._upgradeToAndCall(address,bytes,bool) (src/contracts/transparent-proxy/ERC1967Upgrade.sol#84-93) ignores return value by Address.functionDelegateCall(newImplementation,data) (src/contracts/transparent-proxy/ERC1967Upgrade.sol#91)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
Modifier TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Address._revert(bytes,string) (src/contracts/oz-common/Address.sol#235-247) uses assembly
	- INLINE ASM (src/contracts/oz-common/Address.sol#240-243)
StorageSlot.getAddressSlot(bytes32) (src/contracts/oz-common/StorageSlot.sol#53-58) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#55-57)
StorageSlot.getBooleanSlot(bytes32) (src/contracts/oz-common/StorageSlot.sol#63-68) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#65-67)
StorageSlot.getBytes32Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#73-78) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#75-77)
StorageSlot.getUint256Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#83-88) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#85-87)
Proxy._delegate(address) (src/contracts/transparent-proxy/Proxy.sol#28-51) uses assembly
	- INLINE ASM (src/contracts/transparent-proxy/Proxy.sol#29-50)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.functionCall(address,bytes) (src/contracts/oz-common/Address.sol#86-88) is never used and should be removed
Address.functionCall(address,bytes,string) (src/contracts/oz-common/Address.sol#96-102) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (src/contracts/oz-common/Address.sol#115-121) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (src/contracts/oz-common/Address.sol#129-138) is never used and should be removed
Address.functionStaticCall(address,bytes) (src/contracts/oz-common/Address.sol#146-151) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (src/contracts/oz-common/Address.sol#159-166) is never used and should be removed
Address.sendValue(address,uint256) (src/contracts/oz-common/Address.sol#61-66) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (src/contracts/oz-common/Address.sol#223-233) is never used and should be removed
StorageSlot.getBooleanSlot(bytes32) (src/contracts/oz-common/StorageSlot.sol#63-68) is never used and should be removed
StorageSlot.getBytes32Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#73-78) is never used and should be removed
StorageSlot.getUint256Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#83-88) is never used and should be removed
TransparentUpgradeableProxy._admin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#123-125) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (src/contracts/oz-common/Address.sol#61-66):
	- (success) = recipient.call{value: amount}() (src/contracts/oz-common/Address.sol#64)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (src/contracts/oz-common/Address.sol#129-138):
	- (success,returndata) = target.call{value: value}(data) (src/contracts/oz-common/Address.sol#136)
Low level call in Address.functionStaticCall(address,bytes,string) (src/contracts/oz-common/Address.sol#159-166):
	- (success,returndata) = target.staticcall(data) (src/contracts/oz-common/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (src/contracts/oz-common/Address.sol#184-191):
	- (success,returndata) = target.delegatecall(data) (src/contracts/oz-common/Address.sol#189)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Slither:0xdabad81af85554e9ae636395611c58f7ec1aaec5 analyzed (6 contracts with 87 detectors), 30 result(s) found
Slither report for EACAggregatorProxy at `0xDC530D9457755926550b59e8ECcdaE7624181557`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts' running
Warning: crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:283:7: Warning: This declaration shadows an existing declaration.
      uint80 roundId,
      ^------------^
crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol:273:7: The shadowed declaration is here:
      uint80 roundId,
      ^------------^

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

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

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

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

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

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

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

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

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

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

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


INFO:Detectors:
AggregatorProxy.proposedGetRoundData(uint80) (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#353-367) ignores return value by proposedAggregator.getRoundData(_roundId) (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#366)
AggregatorProxy.proposedLatestRoundData() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#380-394) ignores return value by proposedAggregator.latestRoundData() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#393)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
AggregatorProxy.getAnswer(uint256).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#189) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getAnswer(uint256).aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#190) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getTimestamp(uint256).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#214) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getTimestamp(uint256).aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#215) shadows:
	- AggregatorProxy.aggregator() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#399-405) (function)
AggregatorProxy.getRoundData(uint80).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#280) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.getRoundData(uint80).roundId_scope_0 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#283) shadows:
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
	- AggregatorProxy.getRoundData(uint80).roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#273) (return variable)
AggregatorProxy.getRoundData(uint80).answer_scope_1 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#284) shadows:
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
	- AggregatorProxy.getRoundData(uint80).answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#274) (return variable)
AggregatorProxy.getRoundData(uint80).startedAt_scope_2 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#285) shadows:
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
	- AggregatorProxy.getRoundData(uint80).startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#275) (return variable)
AggregatorProxy.getRoundData(uint80).updatedAt_scope_3 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#286) shadows:
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
	- AggregatorProxy.getRoundData(uint80).updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#276) (return variable)
AggregatorProxy.latestRoundData().roundId_scope_0 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#331) shadows:
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
	- AggregatorProxy.latestRoundData().roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#321) (return variable)
AggregatorProxy.latestRoundData().answer_scope_1 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#332) shadows:
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
	- AggregatorProxy.latestRoundData().answer (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#322) (return variable)
AggregatorProxy.latestRoundData().startedAt_scope_2 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#333) shadows:
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
	- AggregatorProxy.latestRoundData().startedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#323) (return variable)
AggregatorProxy.latestRoundData().updatedAt_scope_3 (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#334) shadows:
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
	- AggregatorProxy.latestRoundData().updatedAt (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#324) (return variable)
AggregatorProxy.parseIds(uint256).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#513) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
AggregatorProxy.addPhaseIds(uint80,int256,uint256,uint256,uint80,uint16).phaseId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#525) shadows:
	- AggregatorProxy.phaseId() (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#410-416) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
INFO:Detectors:
Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#30) lacks a zero-check on :
		- pendingOwner = _to (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
INFO:Detectors:
Parameter Owned.transferOwnership(address)._to (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#30) is not in mixedCase
Parameter AggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#180) is not in mixedCase
Parameter AggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#205) is not in mixedCase
Parameter AggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#267) is not in mixedCase
Parameter AggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#353) is not in mixedCase
Parameter AggregatorProxy.proposeAggregator(address)._aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#459) is not in mixedCase
Parameter AggregatorProxy.confirmAggregator(address)._aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#473) is not in mixedCase
Parameter AggregatorProxy.setAggregator(address)._aggregator (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#487) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._phase (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#496) is not in mixedCase
Parameter AggregatorProxy.addPhase(uint16,uint64)._originalId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#497) is not in mixedCase
Parameter AggregatorProxy.parseIds(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#507) is not in mixedCase
Parameter EACAggregatorProxy.setController(address)._accessController (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#582) is not in mixedCase
Parameter EACAggregatorProxy.getAnswer(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#638) is not in mixedCase
Parameter EACAggregatorProxy.getTimestamp(uint256)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#658) is not in mixedCase
Parameter EACAggregatorProxy.getRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#710) is not in mixedCase
Parameter EACAggregatorProxy.proposedGetRoundData(uint80)._roundId (crytic-export/etherscan-contracts/0xdc530d9457755926550b59e8eccdae7624181557-EACAggregatorProxy.sol#776) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
INFO:Slither:0xdc530d9457755926550b59e8eccdae7624181557 analyzed (7 contracts with 87 detectors), 34 result(s) found
Slither report for TransparentUpgradeableProxy at `0xEd42a7D8559a463722Ca4beD50E0Cc05a386b0e1` with implementation CrossChainController at `0x0Bf5bbfaE7808D329e0Ba8277e0b746BbfDA68f1`
'solc --standard-json --allow-paths /home/runner/work/seatbelt-for-ghosts/seatbelt-for-ghosts/crytic-export/etherscan-contracts/0xed42a7d8559a463722ca4bed50e0cc05a386b0e1-TransparentUpgradeableProxy' running
INFO:Detectors:
TransparentUpgradeableProxy.admin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#69-71) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.implementation() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#82-84) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.changeAdmin(address) (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#93-95) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.upgradeTo(address) (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#102-104) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#113-118) calls TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) calls Proxy._fallback() (src/contracts/transparent-proxy/Proxy.sol#64-67) which halt the execution return(uint256,uint256)(0,returndatasize()()) (src/contracts/transparent-proxy/Proxy.sol#48)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-assembly-return
INFO:Detectors:
ERC1967Upgrade._upgradeToAndCall(address,bytes,bool) (src/contracts/transparent-proxy/ERC1967Upgrade.sol#84-93) ignores return value by Address.functionDelegateCall(newImplementation,data) (src/contracts/transparent-proxy/ERC1967Upgrade.sol#91)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Detectors:
Modifier TransparentUpgradeableProxy.ifAdmin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#52-58) does not always execute _; or revertReference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier
INFO:Detectors:
Address._revert(bytes,string) (src/contracts/oz-common/Address.sol#235-247) uses assembly
	- INLINE ASM (src/contracts/oz-common/Address.sol#240-243)
StorageSlot.getAddressSlot(bytes32) (src/contracts/oz-common/StorageSlot.sol#53-58) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#55-57)
StorageSlot.getBooleanSlot(bytes32) (src/contracts/oz-common/StorageSlot.sol#63-68) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#65-67)
StorageSlot.getBytes32Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#73-78) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#75-77)
StorageSlot.getUint256Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#83-88) uses assembly
	- INLINE ASM (src/contracts/oz-common/StorageSlot.sol#85-87)
Proxy._delegate(address) (src/contracts/transparent-proxy/Proxy.sol#28-51) uses assembly
	- INLINE ASM (src/contracts/transparent-proxy/Proxy.sol#29-50)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
INFO:Detectors:
Address.functionCall(address,bytes) (src/contracts/oz-common/Address.sol#86-88) is never used and should be removed
Address.functionCall(address,bytes,string) (src/contracts/oz-common/Address.sol#96-102) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (src/contracts/oz-common/Address.sol#115-121) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (src/contracts/oz-common/Address.sol#129-138) is never used and should be removed
Address.functionStaticCall(address,bytes) (src/contracts/oz-common/Address.sol#146-151) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (src/contracts/oz-common/Address.sol#159-166) is never used and should be removed
Address.sendValue(address,uint256) (src/contracts/oz-common/Address.sol#61-66) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (src/contracts/oz-common/Address.sol#223-233) is never used and should be removed
StorageSlot.getBooleanSlot(bytes32) (src/contracts/oz-common/StorageSlot.sol#63-68) is never used and should be removed
StorageSlot.getBytes32Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#73-78) is never used and should be removed
StorageSlot.getUint256Slot(bytes32) (src/contracts/oz-common/StorageSlot.sol#83-88) is never used and should be removed
TransparentUpgradeableProxy._admin() (src/contracts/transparent-proxy/TransparentUpgradeableProxy.sol#123-125) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
INFO:Detectors:
Low level call in Address.sendValue(address,uint256) (src/contracts/oz-common/Address.sol#61-66):
	- (success) = recipient.call{value: amount}() (src/contracts/oz-common/Address.sol#64)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (src/contracts/oz-common/Address.sol#129-138):
	- (success,returndata) = target.call{value: value}(data) (src/contracts/oz-common/Address.sol#136)
Low level call in Address.functionStaticCall(address,bytes,string) (src/contracts/oz-common/Address.sol#159-166):
	- (success,returndata) = target.staticcall(data) (src/contracts/oz-common/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (src/contracts/oz-common/Address.sol#184-191):
	- (success,returndata) = target.delegatecall(data) (src/contracts/oz-common/Address.sol#189)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
INFO:Slither:0xed42a7d8559a463722ca4bed50e0cc05a386b0e1 analyzed (6 contracts with 87 detectors), 30 result(s) found