-
Notifications
You must be signed in to change notification settings - Fork 19
BaalZodiac Slither Audit
This content has been moved to Slither Baal Checklist. Additional changes should be made to that document
Summary
- arbitrary-send (1 results) (High)
- name-reused (4 results) (High)
- shadowing-state (5 results) (High)
- incorrect-equality (4 results) (Medium)
- locked-ether (4 results) (Medium)
- reentrancy-no-eth (1 results) (Medium)
- uninitialized-local (4 results) (Medium)
- unused-return (1 results) (Medium)
- missing-zero-check (10 results) (Low)
- calls-loop (7 results) (Low)
- variable-scope (1 results) (Low)
- reentrancy-benign (7 results) (Low)
- reentrancy-events (11 results) (Low)
- timestamp (10 results) (Low)
- assembly (25 results) (Informational)
- pragma (1 results) (Informational)
- dead-code (1 results) (Informational)
- solc-version (58 results) (Informational)
- low-level-calls (12 results) (Informational)
- missing-inheritance (1 results) (Informational)
- naming-convention (48 results) (Informational)
- redundant-statements (2 results) (Informational)
- reentrancy-unlimited-gas (2 results) (Informational)
- too-many-digits (4 results) (Informational)
- unimplemented-functions (2 results) (Informational)
- unused-state (12 results) (Informational)
- constable-states (9 results) (Optimization)
- external-function (45 results) (Optimization)
Impact: High Confidence: Medium
- ID-0 GnosisSafe.handlePayment(uint256,uint256,uint256,address,address) sends eth to arbitrary user Dangerous calls:
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L196-L213
Impact: High Confidence: High
./node_modules/@gnosis.pm/safe-contracts/contracts/interfaces/IERC165.sol#L5-L15
- ID-2 Initializable is re-used:
./node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L35-L80
./contracts/LootERC20.sol#L9-L11
./node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#L9-L82
Impact: High Confidence: High
- ID-5 OwnableUpgradeable.__gap shadows:
./node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#L87
- ID-6 Loot._name shadows:
./contracts/LootERC20.sol#L19
- ID-7 Loot._symbol shadows:
./contracts/LootERC20.sol#L20
- ID-8 Shares._name shadows:
./contracts/SharesERC20.sol#L28
- ID-9 Shares._symbol shadows:
./contracts/SharesERC20.sol#L29
Impact: Medium Confidence: High
- ID-10 Baal.getPriorVotes(address,uint256) uses a dangerous strict equality:
./contracts/Baal.sol#L941-L974
- ID-11 Baal.state(uint32) uses a dangerous strict equality:
./contracts/Baal.sol#L877-L911
- ID-12 Baal.state(uint32) uses a dangerous strict equality:
./contracts/Baal.sol#L877-L911
- ID-13 Shares._writeCheckpoint(address,uint256,uint256,uint256) uses a dangerous strict equality:
./contracts/SharesERC20.sol#L323-L348
Impact: Medium Confidence: High
- ID-14
Contract locking ether found:
Contract MultiSend has payable functions:
- MultiSend.multiSend(bytes) But does not have a function to withdraw the ether
./node_modules/@gnosis.pm/safe-contracts/contracts/libraries/MultiSend.sol#L9-L66
- ID-15
Contract locking ether found:
Contract GnosisSafeProxy has payable functions:
- GnosisSafeProxy.fallback() But does not have a function to withdraw the ether
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxy.sol#L13-L44
- ID-16
Contract locking ether found:
Contract ShamanMinter has payable functions:
- ShamanMinter.doubler(address[]) But does not have a function to withdraw the ether
./contracts/tools/ShamanMinter.sol#L5-L21
- ID-17
Contract locking ether found:
Contract RageQuitBank has payable functions:
- RageQuitBank.memberAction(address,uint96,uint96) But does not have a function to withdraw the ether
./contracts/tools/RageQuitBank.sol#L4-L18
Impact: Medium Confidence: Medium
- ID-18 Reentrancy in Baal.processProposal(uint32,bytes): External calls:
./contracts/Baal.sol#L511-L569
Impact: Medium Confidence: Medium
- ID-19 Baal._ragequit(address,uint256,uint256,address[]).i is a local variable never initialized
./contracts/Baal.sol#L666
- ID-20 Baal.setShamans(address[],uint256[]).i is a local variable never initialized
./contracts/Baal.sol#L695
- ID-21 Baal.ragequit(address,uint256,uint256,address[]).i is a local variable never initialized
./contracts/Baal.sol#L633
- ID-22 ShamanMinter.doubler(address[]).amounts is a local variable never initialized
./contracts/tools/ShamanMinter.sol#L15
Impact: Medium Confidence: Medium
- ID-23 TributeMinion.submitTributeProposal(Baal,address,uint256,uint256,uint256,uint32,string) ignores return value by baal.submitProposal(encodedProposal,expiration,0,details)
./contracts/tools/TributeMinion.sol#L96-L123
Impact: Low Confidence: Medium
- ID-24 Module.setAvatar(address)._avatar lacks a zero-check on : - avatar = _avatar
./node_modules/@gnosis.pm/zodiac/contracts/core/Module.sol#L23
- ID-25 Module.setTarget(address)._target lacks a zero-check on : - target = _target
./node_modules/@gnosis.pm/zodiac/contracts/core/Module.sol#L31
- ID-26 Baal.setUp(bytes)._avatar lacks a zero-check on : - avatar = _avatar - target = _avatar
./contracts/Baal.sol#L276
- ID-27 Baal.setUp(bytes)._multisendLibrary lacks a zero-check on : - multisendLibrary = _multisendLibrary
./contracts/Baal.sol#L275
- ID-28 Baal.executeAsBaal(address,uint256,bytes)._to lacks a zero-check on : - (success) = _to.call{value: _value}(_data)
./contracts/Baal.sol#L610
- ID-29 BaalSummoner.constructor(address,address,address,address)._template lacks a zero-check on : - template = _template
./contracts/Baal.sol#L1089
- ID-30 BaalSummoner.constructor(address,address,address,address)._gnosisSingleton lacks a zero-check on : - gnosisSingleton = _gnosisSingleton
./contracts/Baal.sol#L1090
- ID-31 BaalSummoner.constructor(address,address,address,address)._gnosisFallbackLibrary lacks a zero-check on : - gnosisFallbackLibrary = _gnosisFallbackLibrary
./contracts/Baal.sol#L1091
- ID-32 BaalSummoner.constructor(address,address,address,address)._gnosisMultisendLibrary lacks a zero-check on : - gnosisMultisendLibrary = _gnosisMultisendLibrary
./contracts/Baal.sol#L1092
- ID-33 RageQuitBank.init(address)._baal lacks a zero-check on : - baal = _baal
./contracts/tools/RageQuitBank.sol#L9
Impact: Low Confidence: Medium
- ID-34 GnosisSafe.checkNSignatures(bytes32,bytes,bytes,uint256) has external calls inside a loop: require(bool,string)(ISignatureValidator(currentOwner).isValidSignature(data,contractSignature) == EIP1271_MAGIC_VALUE,GS024)
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L240-L304
- ID-35 Baal._mintShares(address,uint256) has external calls inside a loop: sharesToken.mint(to,shares)
./contracts/Baal.sol#L773-L775
- ID-36 Baal._burnShares(address,uint256) has external calls inside a loop: sharesToken.burn(from,shares)
./contracts/Baal.sol#L793-L795
- ID-37 Baal._mintLoot(address,uint256) has external calls inside a loop: lootToken.mint(to,loot)
./contracts/Baal.sol#L813-L815
- ID-38 Baal._burnLoot(address,uint256) has external calls inside a loop: lootToken.burn(from,loot)
./contracts/Baal.sol#L833-L835
- ID-39 Baal.getPriorVotes(address,uint256) has external calls inside a loop: cp = sharesToken.getCheckpoint(account,center)
./contracts/Baal.sol#L941-L974
- ID-40 ShamanMinter.doubler(address[]) has external calls inside a loop: amounts[i] = (uint256(sharesToken.balanceOf(members[i])))
./contracts/tools/ShamanMinter.sol#L14-L20
Impact: Low Confidence: High
- ID-41 Variable 'ECDSA.tryRecover(bytes32,bytes).r' in ECDSA.tryRecover(bytes32,bytes) potentially used before declaration: r = mload(uint256)(signature + 0x20)
./node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L62
Impact: Low Confidence: Medium
- ID-42
Reentrancy in Shares._beforeTokenTransfer(address,address,uint256):
External calls:
- require(bool,string)(from == address(0) || (msg.sender == address(baal) && to == address(0)) || ! baal.sharesPaused(),!transferable) State variables written after the call(s):
- _moveDelegates(delegates[from],delegates[to],amount)
- delegates[to] = to
- _moveDelegates(delegates[from],delegates[to],amount)
./contracts/SharesERC20.sol#L200-L219
- ID-43
Reentrancy in Baal.setUp(bytes):
External calls:
- lootToken.setUp(string(abi.encodePacked(_name, LOOT)),string(abi.encodePacked(_symbol,-LOOT))) State variables written after the call(s):
- sharesToken = IBaalToken(createClone(_sharesSingleton))
./contracts/Baal.sol#L265-L332
- ID-44
Reentrancy in Baal.setUp(bytes):
External calls:
- lootToken.setUp(string(abi.encodePacked(_name, LOOT)),string(abi.encodePacked(_symbol,-LOOT)))
- sharesToken.setUp(_name,_symbol) State variables written after the call(s):
- multisendLibrary = _multisendLibrary
./contracts/Baal.sol#L265-L332
- ID-45 Reentrancy in Baal.setUp(bytes): External calls:
./contracts/Baal.sol#L265-L332
- ID-46
Reentrancy in Baal.submitProposal(bytes,uint32,uint256,string):
External calls:
- (_success) = target.call{value: msg.value}() State variables written after the call(s):
- latestSponsoredProposalId = proposalCount
- proposalCount ++
- proposals[proposalCount] = Proposal(proposalCount,latestSponsoredProposalId,uint32(block.timestamp),uint32(block.timestamp) + votingPeriod,uint32(block.timestamp) + votingPeriod + gracePeriod,expiration,baalGas,0,0,0,(false,false,false,false),msg.sender,proposalDataHash,details)
- proposals[proposalCount] = Proposal(proposalCount,0,0,0,0,expiration,baalGas,0,0,0,(false,false,false,false),address(0),proposalDataHash,details)
./contracts/Baal.sol#L341-L404
- ID-47 Reentrancy in Loot.transferFrom(address,address,uint256): External calls:
./contracts/LootERC20.sol#L71-L84
- ID-48 Reentrancy in Shares.transferFrom(address,address,uint256): External calls:
./contracts/SharesERC20.sol#L98-L111
Impact: Low Confidence: Medium
- ID-49 Reentrancy in Shares._beforeTokenTransfer(address,address,uint256): External calls:
./contracts/SharesERC20.sol#L200-L219
- ID-50 Reentrancy in Baal._ragequit(address,uint256,uint256,address[]): External calls:
./contracts/Baal.sol#L647-L682
- ID-51
Reentrancy in ModuleProxyFactory.deployModule(address,bytes,uint256):
External calls:
- (success) = proxy.call(initializer) Event emitted after the call(s):
- ModuleProxyCreation(proxy,masterCopy)
./node_modules/@gnosis.pm/zodiac/contracts/factory/ModuleProxyFactory.sol#L30-L43
- ID-52
Reentrancy in GnosisSafe.execTransaction(address,uint256,bytes,Enum.Operation,uint256,uint256,uint256,address,address,bytes):
External calls:
- Guard(guard).checkTransaction(to,value,data,operation,safeTxGas,baseGas,gasPrice,gasToken,refundReceiver,signatures,msg.sender) External calls sending eth:
-
payment = handlePayment(gasUsed,baseGas,gasPrice,gasToken,refundReceiver)
- require(bool,string)(receiver.send(payment),GS011) Event emitted after the call(s):
- ExecutionFailure(txHash,payment)
- ExecutionSuccess(txHash,payment)
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L111-L194
- ID-53 Reentrancy in Baal.processProposal(uint32,bytes): External calls:
./contracts/Baal.sol#L511-L569
- ID-54
Reentrancy in Baal.setUp(bytes):
External calls:
- lootToken.setUp(string(abi.encodePacked(_name, LOOT)),string(abi.encodePacked(_symbol,-LOOT)))
- sharesToken.setUp(_name,_symbol)
- require(bool,string)(exec(multisendLibrary,0,_initializationMultisendData,Enum.Operation.DelegateCall),call failure)
- SetupComplete(lootPaused,sharesPaused,gracePeriod,votingPeriod,proposalOffering,quorumPercent,sponsorThreshold,minRetentionPercent,_name,_symbol,totalShares(),totalLoot())
./contracts/Baal.sol#L265-L332
- ID-55 Reentrancy in Baal.submitProposal(bytes,uint32,uint256,string): External calls:
./contracts/Baal.sol#L341-L404
- ID-56
Reentrancy in TributeMinion.submitTributeProposal(Baal,address,uint256,uint256,uint256,uint32,string):
External calls:
- baal.submitProposal(encodedProposal,expiration,0,details) Event emitted after the call(s):
- TributeProposal(address(baal),token,amount,msg.sender,proposalId)
./contracts/tools/TributeMinion.sol#L96-L123
- ID-57 Reentrancy in BaalSummoner.summonBaalAndSafe(bytes,bytes[],uint256): External calls:
./contracts/Baal.sol#L1135-L1222
- ID-58 Reentrancy in Loot.transferFrom(address,address,uint256): External calls:
./contracts/LootERC20.sol#L71-L84
- ID-59 Reentrancy in Shares.transferFrom(address,address,uint256): External calls:
./contracts/SharesERC20.sol#L98-L111
Impact: Low Confidence: Medium
- ID-60 Baal.submitProposal(bytes,uint32,uint256,string) uses timestamp for comparisons Dangerous comparisons:
./contracts/Baal.sol#L341-L404
- ID-61 Baal.sponsorProposal(uint32) uses timestamp for comparisons Dangerous comparisons:
./contracts/Baal.sol#L408-L434
- ID-62 Baal.processProposal(uint32,bytes) uses timestamp for comparisons Dangerous comparisons:
./contracts/Baal.sol#L511-L569
- ID-63 Baal.cancelProposal(uint32) uses timestamp for comparisons Dangerous comparisons:
./contracts/Baal.sol#L589-L601
- ID-64 Baal.state(uint32) uses timestamp for comparisons Dangerous comparisons:
./contracts/Baal.sol#L877-L911
- ID-65 Baal.getPriorVotes(address,uint256) uses timestamp for comparisons Dangerous comparisons:
./contracts/Baal.sol#L941-L974
- ID-66 Loot.permit(address,address,uint256,uint256,bytes) uses timestamp for comparisons Dangerous comparisons:
./contracts/LootERC20.sol#L106-L145
- ID-67 Shares.permit(address,address,uint256,uint256,bytes) uses timestamp for comparisons Dangerous comparisons:
./contracts/SharesERC20.sol#L154-L193
- ID-68 Shares.delegateBySig(address,uint256,uint256,bytes) uses timestamp for comparisons Dangerous comparisons:
./contracts/SharesERC20.sol#L232-L263
- ID-69 Shares._writeCheckpoint(address,uint256,uint256,uint256) uses timestamp for comparisons Dangerous comparisons:
./contracts/SharesERC20.sol#L323-L348
Impact: Informational Confidence: High
- ID-70 GnosisSafe.checkNSignatures(bytes32,bytes,bytes,uint256) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L240-L304
- ID-71 GnosisSafe.getChainId() uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L340-L347
- ID-72 Executor.execute(address,uint256,bytes,Enum.Operation,uint256) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/base/Executor.sol#L8-L26
- ID-73 FallbackManager.internalSetFallbackHandler(address) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/base/FallbackManager.sol#L14-L20
- ID-74 FallbackManager.fallback() uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/base/FallbackManager.sol#L32-L52
- ID-75 GuardManager.setGuard(address) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/base/GuardManager.sol#L34-L41
- ID-76 GuardManager.getGuard() uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/base/GuardManager.sol#L43-L49
- ID-77 ModuleManager.execTransactionFromModuleReturnData(address,uint256,bytes,Enum.Operation) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/base/ModuleManager.sol#L80-L101
- ID-78 ModuleManager.getModulesPaginated(address,uint256) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/base/ModuleManager.sol#L114-L132
- ID-79 SecuredTokenTransfer.transferToken(address,address,uint256) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/common/SecuredTokenTransfer.sol#L11-L34
- ID-80 SignatureDecoder.signatureSplit(bytes,uint256) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/common/SignatureDecoder.sol#L11-L35
- ID-81 StorageAccessible.getStorageAt(uint256,uint256) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/common/StorageAccessible.sol#L13-L23
- ID-82 StorageAccessible.simulateAndRevert(address,bytes) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/common/StorageAccessible.sol#L36-L46
- ID-83 CompatibilityFallbackHandler.simulate(address,bytes) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L87-L143
- ID-84 MultiSend.multiSend(bytes) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/libraries/MultiSend.sol#L26-L65
- ID-85 GnosisSafeProxy.fallback() uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxy.sol#L26-L43
- ID-86 GnosisSafeProxyFactory.createProxy(address,bytes) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L15-L25
- ID-87 GnosisSafeProxyFactory.deployProxyWithNonce(address,bytes,uint256) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L42-L55
- ID-88 GnosisSafeProxyFactory.createProxyWithNonce(address,bytes,uint256) uses assembly
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L61-L75
- ID-89 ModuleProxyFactory.createProxy(address,bytes32) uses assembly
./node_modules/@gnosis.pm/zodiac/contracts/factory/ModuleProxyFactory.sol#L10-L28
- ID-90 AddressUpgradeable.verifyCallResult(bool,bytes,string) uses assembly
./node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L174-L194
- ID-91 Address.verifyCallResult(bool,bytes,string) uses assembly
./node_modules/@openzeppelin/contracts/utils/Address.sol#L201-L221
- ID-92 ECDSA.tryRecover(bytes32,bytes) uses assembly
./node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L57-L86
- ID-93 CloneFactory.createClone(address) uses assembly
./contracts/Baal.sol#L52-L67
- ID-94 console._sendLogPayload(bytes) uses assembly
./node_modules/hardhat/console.sol#L7-L14
Impact: Informational Confidence: High
- ID-95
Different versions of Solidity is used:
- Version used: ['>=0.4.22<0.9.0', '>=0.7.0<0.9.0', '>=0.8.0', '^0.8.0', '^0.8.1', '^0.8.7']
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.8.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- >=0.7.0<0.9.0
- ^0.8.0
- ^0.8.0
- ^0.8.1
- ^0.8.0
- ^0.8.0
- ^0.8.0
- ^0.8.0
- ^0.8.0
- ^0.8.0
- ^0.8.1
- ^0.8.0
- ^0.8.0
- ^0.8.0
- ^0.8.0
- >=0.8.0
- >=0.8.0
- >=0.8.0
- ^0.8.7
- >=0.8.0
- >=0.8.0
- >=0.8.0
- >=0.4.22<0.9.0
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L2
Impact: Informational Confidence: Medium
- ID-96 Baal._safeTransferFrom(address,address,address,uint256) is never used and should be removed
./contracts/Baal.sol#L1053-L1066
Impact: Informational Confidence: High
- ID-97 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L2
- ID-98 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/base/Executor.sol#L2
- ID-99 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/base/FallbackManager.sol#L2
- ID-100 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/base/GuardManager.sol#L2
- ID-101 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/base/ModuleManager.sol#L2
- ID-102 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L2
- ID-103 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/common/Enum.sol#L2
- ID-104 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/common/EtherPaymentFallback.sol#L2
- ID-105 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/common/SecuredTokenTransfer.sol#L2
- ID-106 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/common/SelfAuthorized.sol#L2
- ID-107 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/common/SignatureDecoder.sol#L2
- ID-108 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/common/Singleton.sol#L2
- ID-109 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/common/StorageAccessible.sol#L2
- ID-110 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L2
- ID-111 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/SignMessage.sol#L2
- ID-112 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/external/GnosisSafeMath.sol#L2
- ID-113 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L2
- ID-114 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/DefaultCallbackHandler.sol#L2
- ID-115 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol#L2
- ID-116 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol#L2
- ID-117 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol#L2
- ID-118 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/interfaces/IERC165.sol#L2
- ID-119 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/interfaces/ISignatureValidator.sol#L2
- ID-120 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/libraries/MultiSend.sol#L2
- ID-121 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxy.sol#L2
- ID-122 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L2
- ID-123 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/IProxyCreationCallback.sol#L2
- ID-124 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/zodiac/contracts/core/Module.sol#L4
- ID-125 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/zodiac/contracts/factory/FactoryFriendly.sol#L4
- ID-126 Pragma version>=0.8.0 allows old versions
./node_modules/@gnosis.pm/zodiac/contracts/factory/ModuleProxyFactory.sol#L2
- ID-127 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/zodiac/contracts/guard/BaseGuard.sol#L2
- ID-128 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/zodiac/contracts/guard/Guardable.sol#L2
- ID-129 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/zodiac/contracts/interfaces/IAvatar.sol#L4
- ID-130 Pragma version>=0.7.0<0.9.0 is too complex
./node_modules/@gnosis.pm/zodiac/contracts/interfaces/IGuard.sol#L2
- ID-131 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#L4
- ID-132 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L4
- ID-133 Pragma version^0.8.1 allows old versions
./node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L4
- ID-134 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#L4
- ID-135 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts/access/Ownable.sol#L4
- ID-136 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol#L4
- ID-137 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L4
- ID-138 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#L4
- ID-139 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4
- ID-140 Pragma version^0.8.1 allows old versions
./node_modules/@openzeppelin/contracts/utils/Address.sol#L4
- ID-141 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts/utils/Context.sol#L4
- ID-142 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts/utils/Strings.sol#L4
- ID-143 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L4
- ID-144 Pragma version^0.8.0 allows old versions
./node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol#L4
- ID-145 Pragma version>=0.8.0 allows old versions
./contracts/Baal.sol#L10
- ID-146 Pragma version>=0.8.0 allows old versions
./contracts/LootERC20.sol#L1
- ID-147 Pragma version>=0.8.0 allows old versions
./contracts/SharesERC20.sol#L1
- ID-148 Pragma version>=0.8.0 allows old versions
./contracts/mock/MockBaal.sol#L2
- ID-149 Pragma version>=0.8.0 allows old versions
./contracts/tools/ShamanMinter.sol#L2
- ID-150 Pragma version>=0.8.0 allows old versions
./contracts/tools/TributeMinion.sol#L2
- ID-151 Pragma version>=0.4.22<0.9.0 is too complex
./node_modules/hardhat/console.sol#L2
- ID-152 Pragma version>=0.8.0 allows old versions
./contracts/mock/TestERC20.sol#L2
- ID-153 Pragma version>=0.8.0 allows old versions
./contracts/tools/Poster.sol#L14
- ID-154 Pragma version>=0.8.0 allows old versions
./contracts/tools/RageQuitBank.sol#L2
Impact: Informational Confidence: High
- ID-155 Low level call in ModuleProxyFactory.deployModule(address,bytes,uint256):
./node_modules/@gnosis.pm/zodiac/contracts/factory/ModuleProxyFactory.sol#L30-L43
- ID-156 Low level call in AddressUpgradeable.sendValue(address,uint256):
./node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L60-L65
- ID-157 Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string):
./node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L128-L139
- ID-158 Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string):
./node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L157-L166
- ID-159 Low level call in Address.sendValue(address,uint256):
./node_modules/@openzeppelin/contracts/utils/Address.sol#L60-L65
- ID-160 Low level call in Address.functionCallWithValue(address,bytes,uint256,string):
./node_modules/@openzeppelin/contracts/utils/Address.sol#L128-L139
- ID-161 Low level call in Address.functionStaticCall(address,bytes,string):
./node_modules/@openzeppelin/contracts/utils/Address.sol#L157-L166
- ID-162 Low level call in Address.functionDelegateCall(address,bytes,string):
./node_modules/@openzeppelin/contracts/utils/Address.sol#L184-L193
- ID-163 Low level call in Baal.submitProposal(bytes,uint32,uint256,string):
./contracts/Baal.sol#L341-L404
- ID-164 Low level call in Baal.executeAsBaal(address,uint256,bytes):
./contracts/Baal.sol#L609-L616
- ID-165 Low level call in Baal._ragequit(address,uint256,uint256,address[]):
./contracts/Baal.sol#L647-L682
- ID-166 Low level call in Baal._safeTransferFrom(address,address,address,uint256):
./contracts/Baal.sol#L1053-L1066
Impact: Informational Confidence: High
./node_modules/@gnosis.pm/zodiac/contracts/guard/BaseGuard.sol#L8-L38
Impact: Informational Confidence: High
- ID-168 Parameter GnosisSafe.setup(address[],uint256,address,bytes,address,address,uint256,address)._owners is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L76
- ID-169 Parameter GnosisSafe.setup(address[],uint256,address,bytes,address,address,uint256,address)._threshold is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L77
- ID-170 Parameter GnosisSafe.encodeTransactionData(address,uint256,bytes,Enum.Operation,uint256,uint256,uint256,address,address,uint256)._nonce is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L375
- ID-171 Parameter GnosisSafe.getTransactionHash(address,uint256,bytes,Enum.Operation,uint256,uint256,uint256,address,address,uint256)._nonce is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L418
- ID-172 Parameter OwnerManager.setupOwners(address[],uint256)._owners is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L22
- ID-173 Parameter OwnerManager.setupOwners(address[],uint256)._threshold is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L22
- ID-174 Parameter OwnerManager.addOwnerWithThreshold(address,uint256)._threshold is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L51
- ID-175 Parameter OwnerManager.removeOwner(address,address,uint256)._threshold is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L73
- ID-176 Parameter OwnerManager.changeThreshold(uint256)._threshold is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L117
- ID-177 Parameter SignMessageLib.signMessage(bytes)._data is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/SignMessage.sol#L20
- ID-178 Parameter CompatibilityFallbackHandler.isValidSignature(bytes,bytes)._data is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L28
- ID-179 Parameter CompatibilityFallbackHandler.isValidSignature(bytes,bytes)._signature is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L28
- ID-180 Parameter CompatibilityFallbackHandler.isValidSignature(bytes32,bytes)._dataHash is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L66
- ID-181 Parameter CompatibilityFallbackHandler.isValidSignature(bytes32,bytes)._signature is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L66
- ID-182 Parameter GnosisSafeProxyFactory.deployProxyWithNonce(address,bytes,uint256)._singleton is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L43
- ID-183 Parameter GnosisSafeProxyFactory.createProxyWithNonce(address,bytes,uint256)._singleton is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L62
- ID-184 Parameter GnosisSafeProxyFactory.createProxyWithCallback(address,bytes,uint256,IProxyCreationCallback)._singleton is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L83
- ID-185 Parameter GnosisSafeProxyFactory.calculateCreateProxyWithNonceAddress(address,bytes,uint256)._singleton is not in mixedCase
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L100
- ID-186 Parameter Module.setAvatar(address)._avatar is not in mixedCase
./node_modules/@gnosis.pm/zodiac/contracts/core/Module.sol#L23
- ID-187 Parameter Module.setTarget(address)._target is not in mixedCase
./node_modules/@gnosis.pm/zodiac/contracts/core/Module.sol#L31
- ID-188 Parameter Guardable.setGuard(address)._guard is not in mixedCase
./node_modules/@gnosis.pm/zodiac/contracts/guard/Guardable.sol#L16
- ID-189 Function OwnableUpgradeable.__Ownable_init() is not in mixedCase
./node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#L29-L31
- ID-190 Function OwnableUpgradeable.__Ownable_init_unchained() is not in mixedCase
./node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#L33-L35
- ID-191 Variable OwnableUpgradeable.__gap is not in mixedCase
./node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#L87
- ID-192 Function ContextUpgradeable.__Context_init() is not in mixedCase
./node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#L18-L19
- ID-193 Function ContextUpgradeable.__Context_init_unchained() is not in mixedCase
./node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#L21-L22
- ID-194 Variable ContextUpgradeable.__gap is not in mixedCase
./node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#L36
- ID-195 Parameter Baal.setUp(bytes)._initializationParams is not in mixedCase
./contracts/Baal.sol#L265
- ID-196 Parameter Baal.executeAsBaal(address,uint256,bytes)._to is not in mixedCase
./contracts/Baal.sol#L610
- ID-197 Parameter Baal.executeAsBaal(address,uint256,bytes)._value is not in mixedCase
./contracts/Baal.sol#L611
- ID-198 Parameter Baal.executeAsBaal(address,uint256,bytes)._data is not in mixedCase
./contracts/Baal.sol#L612
- ID-199 Parameter Baal.setShamans(address[],uint256[])._shamans is not in mixedCase
./contracts/Baal.sol#L691
- ID-200 Parameter Baal.setShamans(address[],uint256[])._permissions is not in mixedCase
./contracts/Baal.sol#L692
- ID-201 Parameter Baal.setGovernanceConfig(bytes)._governanceConfig is not in mixedCase
./contracts/Baal.sol#L839
- ID-202 Parameter Baal.hashOperation(bytes)._transactions is not in mixedCase
./contracts/Baal.sol#L1025
- ID-203 Parameter BaalSummoner.encodeMultisend(bytes[],address)._calls is not in mixedCase
./contracts/Baal.sol#L1100
- ID-204 Parameter BaalSummoner.encodeMultisend(bytes[],address)._target is not in mixedCase
./contracts/Baal.sol#L1100
- ID-205 Parameter BaalSummoner.summonBaal(address)._safe is not in mixedCase
./contracts/Baal.sol#L1122
- ID-206 Parameter BaalSummoner.summonBaalAndSafe(bytes,bytes[],uint256)._saltNonce is not in mixedCase
./contracts/Baal.sol#L1138
- ID-207 Parameter MockBaal.mintLoot(address,uint256)._to is not in mixedCase
./contracts/mock/MockBaal.sol#L26
- ID-208 Parameter MockBaal.mintLoot(address,uint256)._amount is not in mixedCase
./contracts/mock/MockBaal.sol#L26
- ID-209 Parameter MockBaal.burnLoot(address,uint256)._from is not in mixedCase
./contracts/mock/MockBaal.sol#L30
- ID-210 Parameter MockBaal.burnLoot(address,uint256)._amount is not in mixedCase
./contracts/mock/MockBaal.sol#L30
- ID-211 Parameter ShamanMinter.init(address)._baal is not in mixedCase
./contracts/tools/ShamanMinter.sol#L9
- ID-212 Parameter TributeMinion.releaseEscrow(address,uint32)._baal is not in mixedCase
./contracts/tools/TributeMinion.sol#L125
- ID-213 Parameter TributeMinion.releaseEscrow(address,uint32)._proposalId is not in mixedCase
./contracts/tools/TributeMinion.sol#L125
- ID-214 Contract console is not in CapWords
./node_modules/hardhat/console.sol#L4-L1532
- ID-215 Parameter RageQuitBank.init(address)._baal is not in mixedCase
./contracts/tools/RageQuitBank.sol#L9
Impact: Informational Confidence: High
- ID-216 Redundant expression "targetContract" inCompatibilityFallbackHandler
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L91
- ID-217 Redundant expression "calldataPayload" inCompatibilityFallbackHandler
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L92
Impact: Informational Confidence: Medium
- ID-218 Reentrancy in GnosisSafe.execTransaction(address,uint256,bytes,Enum.Operation,uint256,uint256,uint256,address,address,bytes): External calls:
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L111-L194
- ID-219 Reentrancy in GnosisSafe.setup(address[],uint256,address,bytes,address,address,uint256,address): External calls:
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L75-L97
Impact: Informational Confidence: Medium
- ID-220 GnosisSafeProxy.fallback() uses literals with too many digits:
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxy.sol#L26-L43
- ID-221 CloneFactory.createClone(address) uses literals with too many digits:
./contracts/Baal.sol#L52-L67
- ID-222 CloneFactory.createClone(address) uses literals with too many digits:
./contracts/Baal.sol#L52-L67
- ID-223 console.slitherConstructorConstantVariables() uses literals with too many digits:
./node_modules/hardhat/console.sol#L4-L1532
Impact: Informational Confidence: High
- ID-224
CompatibilityFallbackHandler does not implement functions:
- DefaultCallbackHandler.onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)
- DefaultCallbackHandler.onERC1155Received(address,address,uint256,uint256,bytes)
- DefaultCallbackHandler.onERC721Received(address,address,uint256,bytes)
- DefaultCallbackHandler.supportsInterface(bytes4)
- DefaultCallbackHandler.tokensReceived(address,address,address,uint256,bytes,bytes)
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L10-L144
- ID-225 BaseGuard does not implement functions:
./node_modules/@gnosis.pm/zodiac/contracts/guard/BaseGuard.sol#L8-L38
Impact: Informational Confidence: High
- ID-226 Singleton.singleton is never used in GnosisSafe
./node_modules/@gnosis.pm/safe-contracts/contracts/common/Singleton.sol#L10
- ID-227 GnosisSafe._deprecatedDomainSeparator is never used in GnosisSafe
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L52
- ID-228 GnosisSafeStorage.singleton is never used in SignMessageLib
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L8
- ID-229 GnosisSafeStorage.modules is never used in SignMessageLib
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L10
- ID-230 GnosisSafeStorage.owners is never used in SignMessageLib
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L12
- ID-231 GnosisSafeStorage.ownerCount is never used in SignMessageLib
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L13
- ID-232 GnosisSafeStorage.threshold is never used in SignMessageLib
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L14
- ID-233 GnosisSafeStorage.nonce is never used in SignMessageLib
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L17
- ID-234 GnosisSafeStorage.domainSeparator is never used in SignMessageLib
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L18
- ID-235 GnosisSafeStorage.approvedHashes is never used in SignMessageLib
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L20
- ID-236 CompatibilityFallbackHandler.SIMULATE_SELECTOR is never used in CompatibilityFallbackHandler
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L16
- ID-237 OwnableUpgradeable.__gap is never used in Baal
./node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#L87
Impact: Optimization Confidence: High
- ID-238 GnosisSafe._deprecatedDomainSeparator should be constant
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L52
- ID-239 GnosisSafeStorage.domainSeparator should be constant
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L18
- ID-240 GnosisSafeStorage.nonce should be constant
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L17
- ID-241 GnosisSafeStorage.ownerCount should be constant
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L13
- ID-242 GnosisSafeStorage.singleton should be constant
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L8
- ID-243 GnosisSafeStorage.threshold should be constant
./node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol#L14
- ID-244 Singleton.singleton should be constant
./node_modules/@gnosis.pm/safe-contracts/contracts/common/Singleton.sol#L10
- ID-245 RageQuitBank.lootRate should be constant
./contracts/tools/RageQuitBank.sol#L6
- ID-246 RageQuitBank.shareRate should be constant
./contracts/tools/RageQuitBank.sol#L7
Impact: Optimization Confidence: High
- ID-247 execTransaction(address,uint256,bytes,Enum.Operation,uint256,uint256,uint256,address,address,bytes) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L111-L194
- ID-248 getTransactionHash(address,uint256,bytes,Enum.Operation,uint256,uint256,uint256,address,address,uint256) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/GnosisSafe.sol#L408-L421
- ID-249 setFallbackHandler(address) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/FallbackManager.sol#L26-L29
- ID-250 enableModule(address) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/ModuleManager.sol#L32-L40
- ID-251 disableModule(address,address) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/ModuleManager.sol#L47-L54
- ID-252 execTransactionFromModuleReturnData(address,uint256,bytes,Enum.Operation) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/ModuleManager.sol#L80-L101
- ID-253 isModuleEnabled(address) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/ModuleManager.sol#L105-L107
- ID-254 addOwnerWithThreshold(address,uint256) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L51-L62
- ID-255 removeOwner(address,address,uint256) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L70-L86
- ID-256 swapOwner(address,address,address) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L94-L111
- ID-257 getThreshold() should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L126-L128
- ID-258 isOwner(address) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L130-L132
- ID-259 getOwners() should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol#L136-L148
- ID-260 getStorageAt(uint256,uint256) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/common/StorageAccessible.sol#L13-L23
- ID-261 isValidSignature(bytes,bytes) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L28-L38
- ID-262 getMessageHash(bytes) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/handler/CompatibilityFallbackHandler.sol#L43-L45
- ID-263 multiSend(bytes) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/libraries/MultiSend.sol#L26-L65
- ID-264 createProxy(address,bytes) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L15-L25
- ID-265 proxyRuntimeCode() should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L28-L30
- ID-266 proxyCreationCode() should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L33-L35
- ID-267 createProxyWithCallback(address,bytes,uint256,IProxyCreationCallback) should be declared external:
./node_modules/@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol#L82-L91
- ID-268 setAvatar(address) should be declared external:
./node_modules/@gnosis.pm/zodiac/contracts/core/Module.sol#L23-L27
- ID-269 setTarget(address) should be declared external:
./node_modules/@gnosis.pm/zodiac/contracts/core/Module.sol#L31-L35
- ID-270 setUp(bytes) should be declared external:
./contracts/Baal.sol#L265-L332
- ID-271 deployModule(address,bytes,uint256) should be declared external:
./node_modules/@gnosis.pm/zodiac/contracts/factory/ModuleProxyFactory.sol#L30-L43
- ID-272 renounceOwnership() should be declared external:
./node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#L59-L61
- ID-273 renounceOwnership() should be declared external:
./node_modules/@openzeppelin/contracts/access/Ownable.sol#L54-L56
- ID-274 transferOwnership(address) should be declared external:
./node_modules/@openzeppelin/contracts/access/Ownable.sol#L62-L65
- ID-275 name() should be declared external:
./node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L62-L64
- ID-276 symbol() should be declared external:
./node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L70-L72
- ID-277 decimals() should be declared external:
./node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L87-L89
- ID-278 transfer(address,uint256) should be declared external:
./node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L113-L117
- ID-279 approve(address,uint256) should be declared external:
./node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L136-L140
- ID-280 transferFrom(address,address,uint256) should be declared external:
./node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L158-L167
- ID-281 increaseAllowance(address,uint256) should be declared external:
./node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L181-L185
- ID-282 decreaseAllowance(address,uint256) should be declared external:
./node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L201-L210
- ID-283 getProposalStatus(uint32) should be declared external:
./contracts/Baal.sol#L916-L918
- ID-284 setUp(string,string) should be declared external:
./contracts/LootERC20.sol#L47-L54
- ID-285 mint(address,uint256) should be declared external:
./contracts/LootERC20.sol#L89-L91
- ID-286 burn(address,uint256) should be declared external:
./contracts/LootERC20.sol#L96-L98
- ID-287 setUp(string,string) should be declared external:
./contracts/SharesERC20.sol#L74-L81
- ID-288 mint(address,uint256) should be declared external:
./contracts/SharesERC20.sol#L116-L134
- ID-289 burn(address,uint256) should be declared external:
./contracts/SharesERC20.sol#L139-L146
- ID-290 submitTributeProposal(Baal,address,uint256,uint256,uint256,uint32,string) should be declared external:
./contracts/tools/TributeMinion.sol#L96-L123
- ID-291 post(string,string) should be declared external:
./contracts/tools/Poster.sol#L20-L22
./ analyzed (67 contracts with 77 detectors), 292 result(s) found