ID
Severity
Status
Title 75 Findings
2.1.1
CRITICAL
FIXED

There's no owners array length validation in the constructor of MultiSigWallet

2.1.2
CRITICAL
FIXED

Adding a new owner doesn't change necessary amount of signatures in MultiSigWallet

2.1.3
CRITICAL
FIXED

Removing owner without revokeConfirmation transaction in MultiSigWallet

2.1.4
CRITICAL
FIXED

There is no function that implements the _cancel proposal in MainTokenGovernor

2.1.5
CRITICAL
FIXED

Changing the timelock address may cause re-execution of the proposals in GovernorTimelockControl

2.1.6
CRITICAL
FIXED

The initVault and initAdminAndOperator functions can be initialized from any address in the VaultPackage contract

2.1.7
CRITICAL
FIXED

There is no check that stream is active in the StakingHandler contract

2.1.8
CRITICAL
FIXED

Calling the updateConfig function may block the work of the StakingHandlers contract

2.2.1
MAJOR
FIXED

In MultiSigWallet there's no parameter defining minimum amount of signatures

2.2.2
MAJOR
FIXED

Transaction does not have a lifetime parameter in MultiSigWallet

2.2.3
MAJOR
FIXED

Governance can delete TimelockAdmin and the contract will lose its control in TimelockController

2.2.4
MAJOR
FIXED

There is no validation for maxTargets when executing in Governor

2.2.5
MAJOR
FIXED

There is no possibility to update multisig in Governor

2.2.6
MAJOR
FIXED

There is no emergency shutdown mode in Governor

2.2.7
MAJOR
FIXED

It is possible to set a null address in GovernorTimelockControl when updating timelock

2.2.8
MAJOR
FIXED

There is no validation for null values for newQuorumNumerator in GovernorVotesQuorumFraction

2.2.9
MAJOR
FIXED

When MINTER_ROLE is added to VMainToken, the isWhiteListed list does not update

2.2.10
MAJOR
FIXED

There is no possibility to transfer standard ERC20 tokens from the Governance balance in MainTokenGovernor

2.2.11
MAJOR
FIXED

There is no option to migrate to another contract in the VaultPackage contract

2.2.12
MAJOR
FIXED

There is a DoS possibility when calling updateVault in the StakingHandlers contract

2.2.13
MAJOR
FIXED

There is no emergency suspension of the rewards payment in the VaultPackage contract

2.2.14
MAJOR
FIXED

Unsafe use of the transfer and transferFrom functions in StakingHandlers and VaultPackage

2.2.15
MAJOR
FIXED

Tokens that get into the VaultPackage balance can be used to withdraw rewards in the contract StakingHandler

2.2.16
MAJOR
FIXED

Calling initializeStaking in the StakingHandlers contract does not allocate rewards for MAIN_STREAM in VaultPackage

2.2.17
MAJOR
FIXED

Updating rpsDuringLastClaimForLock for inactive stream in the StakingInternals contract

2.2.18
MAJOR
FIXED

There is a possibility for a manager to remove all streams in order to steal all pending rewards in StakingHandlers

2.2.19
MAJOR
FIXED

MINTER_ROLE and WHITELISTER_ROLE have the same value in the VMainToken

2.2.20
MAJOR
FIXED

Transaction should be marked as executed if the call fails

2.2.21
MAJOR
FIXED

Admin role can be revoked forever by mistake in VMainToken

2.2.22
MAJOR
FIXED

It is possible for attacker to create active locks to force users to reach the lock limit in StakingHandlers

2.2.23
MAJOR
FIXED

prohibitedEarlyWithdraw is not set to false for lockid after unlocking in StakingHandlers

2.2.24
MAJOR
NO ISSUE

Calling unlock, earlyUnlock and unlockPartially before claimRewards will result in loss of rewards in StakingHandlers

2.2.25
MAJOR
FIXED

Share weight drop formula is incorrect in StakingInternals

2.2.26
MAJOR
FIXED

Penalty can be bigger than stake in the StakingInternals

2.3.1
WARNING
NO ISSUE

Modifier onlyOwnerOrGov creates a complex confirmation structure in case of Governance calls in the MultiSigWallet

2.3.2
WARNING
FIXED

No parameter check when adding transaction in MultiSigWallet

2.3.3
WARNING
FIXED

Missing validation, that the bytecode of address _to did not change while running a transaction in MultiSigWallet

2.3.4
WARNING
FIXED

There's no ETH balance validation when adding a non-zero transaction _value in MultiSigWallet

2.3.5
WARNING
FIXED

There is no time limit for executing proposal in Governor

2.3.6
WARNING
NO ISSUE

There is no check for gas consumption in Governor

2.3.7
WARNING
FIXED

confirmProposal is possible for both active and inactive proposals in Governor

2.3.8
WARNING
FIXED

There is no check for the msg.value value available for execution in Governor and TimelockController

2.3.9
WARNING
FIXED

There is no check for zero value for _token, _multiSig and _timelock in Governor, GovernorTimelockControl, MainTokenGovernor

2.3.10
WARNING
FIXED

There is no check for zero in GovernorSettings._setProposalThreshold

2.3.11
WARNING
FIXED

There is no limit on the number of proposals for one proposer in Governor

2.3.12
WARNING
FIXED

A missing check that tokens are on the balance when calling the payRewards function in the VaultPackage contract

2.3.13
WARNING
NO ISSUE

There is no limit on the maximum number of active streams in the StakingHandlers contract

2.3.14
WARNING
FIXED

Incorrect processing of contract modifiers Initializable in the StakingHanders contract

2.3.15
WARNING
FIXED

It is possible for any user to call createStream in the StakingHandlers contract

2.3.16
WARNING
FIXED

Possible overflow with calculations

2.3.17
WARNING
NO ISSUE

Multiple streams can be active at the same time with the same parameters in StakingHandler.sol

2.3.18
WARNING
NO ISSUE

There is no limit for the amount of schedules on streams in StakingHandlers

2.3.19
WARNING
FIXED

It is possible to remove tokens that are used by another contract in VaultPackage

2.4.1
INFO
FIXED

There's no logging of reverted transactions in MultiSigWallet

2.4.2
INFO
FIXED

Non-optimal packing of the Transaction structure in MultiSigWallet

2.4.3
INFO
FIXED

Incorrect status check in execute function in Governor

2.4.4
INFO
FIXED

_minDelay can be set to zero in TimelockController

2.4.5
INFO
FIXED

There is a redundant initialized check in VMainToken

2.4.6
INFO
FIXED

There is redundant code in the VMainToken contract

2.4.7
INFO
NO ISSUE

The Governor and TimeLockController do not support the ERC721 and ERC1155 tokens

2.4.8
INFO
FIXED

The addSupportedToken and removeSupportedToken calls have an redundant pausable modifier in the VaultPackage contract

2.4.9
INFO
FIXED

There are no checks that admin, proposers and executors are not zero addresses in TimelockController

2.4.10
INFO
FIXED

Unused import of StakingStructs in StakingStorage

2.4.11
INFO
FIXED

Unused constant ONE_MONTH in StakingGettersHelper

2.4.12
INFO
FIXED

Non-optimal storage layout for Stream struct in StakingStructs

2.4.13
INFO
NO ISSUE

Unnecessary ' in a RewardsLibrary comment

2.4.14
INFO
FIXED

There is a typo in a comment in StakingInternals

2.4.15
INFO
FIXED

Redundant check for maxDepositAmount > 0 in RewardsCalculator

2.4.16
INFO
NO ISSUE

It is not possible to withdraw tokens that were sent by mistake

2.4.17
INFO
FIXED

Unused import of ReentracyGuard in StakingHandlers

2.4.18
INFO
FIXED

Сustom initializer modifier is used instead of one from OpenZeppelin

2.4.19
INFO
NO ISSUE

Stream manager, treasury manager and admin represent the same account in StakingHandlers

2.4.20
INFO
NO ISSUE

Revert message strings are too long

2.4.21
INFO
NO ISSUE

Unnecessary reads from storage

2.4.22
INFO
FIXED

Misleading check (scheduleTimeLength > 0) in the RewardsCalculator

Please select finding