There is 1 instance of this issue
File: contracts/zksync/facets/DiamondCut.sol
16: assert(SECURITY_COUNCIL_APPROVALS_FOR_EMERGENCY_UPGRADE > 0);
In the contracts, floating pragmas should not be used. Contracts should be deployed with the same compiler version and flags that they have been tested with thoroughly. Locking the pragma helps to ensure that contracts do not accidentally get deployed using, for example, an outdated compiler version that might introduce bugs that affect the contract system negatively.
This issue exists on all In-scope contracts
Lock the pragma version
Each event
should use three indexed
fields if there are three or more fields
There are 7 instances of this issue
File: contracts/zksync/interfaces/IDiamondCut.sol
20: event DiamondCutProposal(Diamond.FacetCut[] _facetCuts, address _initAddress);
22: event DiamondCutProposalCancelation(uint256 currentProposalId, bytes32 indexed proposedDiamondCutHash);
24: event DiamondCutProposalExecution(Diamond.DiamondCutData _diamondCut);
28: event Unfreeze(uint256 lastDiamondFreezeTimestamp);
File: contracts/zksync/interfaces/IExecutor.sol
85: event BlocksRevert(uint256 totalBlocksCommitted, uint256 totalBlocksVerified, uint256 totalBlocksExecuted);
File: contracts/bridge/interfaces/IL1Bridge.sol
11: event WithdrawalFinalized(address indexed to, address indexed l1Token, uint256 amount);
13: event ClaimedFailedDeposit(address indexed to, address indexed l1Token, uint256 amount);
This issue exists on all In-scope contracts
For instance:
File: contracts/common/L2ContractHelper.sol
3: pragma solidity ^0.8.0;
There are 8 instances of this issue
https://github.com/code-423n4/2022-10-zksync/blob/main/ethereum/contracts/bridge/L1EthBridge.sol
File: contracts/bridge/L1EthBridge.sol
221: require(_message.length == 56);
224: require(bytes4(functionSignature) == this.finalizeWithdrawal.selector);
238: require(callSuccess);
File: contracts/bridge/L2StandardERC20.sol
96: require(msg.sender == l2Bridge);
File: contracts/zksync/facets/Executor.sol
43: require(expectedNumberOfLayer1Txs == _newBlock.numberOfLayer1Txs);
45: require(l2BlockTimestamp == _newBlock.timestamp);
297: require(_recurisiveAggregationInput.length == 4);
https://github.com/code-423n4/2022-10-zksync/blob/main/zksync/contracts/bridge/L2ETHBridge.sol
File: contracts/bridge/L2ETHBridge.sol
50: require(_l1Token == CONVENTIONAL_ETH_ADDRESS);