The MondrianWallet2
will be deployed to ZKsync. In ZKsync calls
have some differences. The codebase should account them and the calls should be implemented in the assembly language.
According to the ZKsync documentation, the calls have some differences from Ethereum: "Thus, unlike EVM where memory growth occurs before the call itself, on ZKsync Era, the necessary copying of return data happens only after the call has ended, leading to a difference in msize() and sometimes ZKsync Era not panicking where EVM would panic due to the difference in memory growth."
The MondrianWallet2
contract uses the solidity call function in Line 159. Instead, it should use the ZKsync call function.
The MondrianWallet2
function _executeTransaction
is not fully compliant with the ZKsync Era and its differences from Ethereum.
Manual Review
The call from Line 159 of MondrianWallet2.sol can be changed to assembly code. Look at the following code.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.