Skip to content

Commit

Permalink
Comment out specific zksync features.
Browse files Browse the repository at this point in the history
  • Loading branch information
wshino committed Aug 16, 2024
1 parent fbc4b68 commit c1971d4
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 67 deletions.
5 changes: 3 additions & 2 deletions packages/contracts/foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ src = "src"
out = "artifacts"
libs = ["../../node_modules", "lib"]
optimizer = true
# via-ir = true
# The following line `via-ir = true` is needed to compile this project using zksync features
# See README.md for more details -> TODO
# via-ir = true
optimizer-runs = 20_000
fs_permissions = [
{ access = "read", path = "./artifacts/WETH9.sol/WETH9.json" },
Expand All @@ -12,7 +14,6 @@ fs_permissions = [
]

solc = "0.8.26"
via_ir = true

# See more config options https://github.com/foundry-rs/foundry/tree/master/config

Expand Down
76 changes: 38 additions & 38 deletions packages/contracts/src/EmailAccountRecovery.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import "./EmailAuth.sol";
import "@openzeppelin/contracts/utils/Create2.sol";
import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
import {L2ContractHelper} from "@matterlabs/zksync-contracts/l2/contracts/L2ContractHelper.sol";
import {SystemContractsCaller} from "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol";
import {DEPLOYER_SYSTEM_CONTRACT} from "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol";
// import {SystemContractsCaller} from "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol";
// import {DEPLOYER_SYSTEM_CONTRACT} from "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol";

/// @title Email Account Recovery Contract
/// @notice Provides mechanisms for email-based account recovery, leveraging guardians and template-based email verification.
Expand Down Expand Up @@ -226,41 +226,41 @@ abstract contract EmailAccountRecovery {

EmailAuth guardianEmailAuth;
if (guardian.code.length == 0) {
// Deploy proxy of the guardian's EmailAuth contract
if (block.chainid == 324 || block.chainid == 300) {
(bool success, bytes memory returnData) = SystemContractsCaller
.systemCallWithReturndata(
uint32(gasleft()),
address(DEPLOYER_SYSTEM_CONTRACT),
uint128(0),
abi.encodeCall(
DEPLOYER_SYSTEM_CONTRACT.create2,
(
emailAuthMsg.proof.accountSalt,
proxyBytecodeHash,
abi.encode(
emailAuthImplementation(),
abi.encodeCall(
EmailAuth.initialize,
(
recoveredAccount,
emailAuthMsg.proof.accountSalt,
address(this)
)
)
)
)
)
);
address payable proxyAddress = abi.decode(returnData, (address));
ERC1967Proxy proxy = ERC1967Proxy(proxyAddress);
guardianEmailAuth = EmailAuth(address(proxy));
guardianEmailAuth.initialize(
recoveredAccount,
emailAuthMsg.proof.accountSalt,
address(this)
);
} else {
// // Deploy proxy of the guardian's EmailAuth contract
// if (block.chainid == 324 || block.chainid == 300) {
// (bool success, bytes memory returnData) = SystemContractsCaller
// .systemCallWithReturndata(
// uint32(gasleft()),
// address(DEPLOYER_SYSTEM_CONTRACT),
// uint128(0),
// abi.encodeCall(
// DEPLOYER_SYSTEM_CONTRACT.create2,
// (
// emailAuthMsg.proof.accountSalt,
// proxyBytecodeHash,
// abi.encode(
// emailAuthImplementation(),
// abi.encodeCall(
// EmailAuth.initialize,
// (
// recoveredAccount,
// emailAuthMsg.proof.accountSalt,
// address(this)
// )
// )
// )
// )
// )
// );
// address payable proxyAddress = abi.decode(returnData, (address));
// ERC1967Proxy proxy = ERC1967Proxy(proxyAddress);
// guardianEmailAuth = EmailAuth(address(proxy));
// guardianEmailAuth.initialize(
// recoveredAccount,
// emailAuthMsg.proof.accountSalt,
// address(this)
// );
// } else {
// Deploy proxy of the guardian's EmailAuth contract
ERC1967Proxy proxy = new ERC1967Proxy{salt: emailAuthMsg.proof.accountSalt}(
emailAuthImplementation(),
Expand All @@ -270,7 +270,7 @@ abstract contract EmailAccountRecovery {
)
);
guardianEmailAuth = EmailAuth(address(proxy));
}
// }
guardianEmailAuth.initDKIMRegistry(dkim());
guardianEmailAuth.initVerifier(verifier());
for (
Expand Down
54 changes: 27 additions & 27 deletions packages/contracts/test/ComputeCreate2Address.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import "forge-std/console.sol";

import {L2ContractHelper} from "@matterlabs/zksync-contracts/l2/contracts/L2ContractHelper.sol";
import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
import {SystemContractsCaller} from "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol";
import {DEPLOYER_SYSTEM_CONTRACT} from "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol";
// import {SystemContractsCaller} from "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol";
// import {DEPLOYER_SYSTEM_CONTRACT} from "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol";

import "../src/EmailAuth.sol";
import "./helpers/StructHelper.sol";
Expand Down Expand Up @@ -64,30 +64,30 @@ contract ComputeCreate2AddressTest is StructHelper {
// console.log("proxy", address(proxy));
// assertEq(computedAddress, address(proxy));

(bool success, bytes memory returnData) = SystemContractsCaller
.systemCallWithReturndata(
uint32(gasleft()),
address(DEPLOYER_SYSTEM_CONTRACT),
uint128(0),
abi.encodeCall(
DEPLOYER_SYSTEM_CONTRACT.create2,
(
accountSalt,
bytecodeHash,
abi.encode(
address(emailAuth),
abi.encodeCall(
EmailAuth.initialize,
(
recoveredAccount,
accountSalt,
address(this)
)
)
)
)
)
);
address payable proxyAddress = abi.decode(returnData, (address));
// (bool success, bytes memory returnData) = SystemContractsCaller
// .systemCallWithReturndata(
// uint32(gasleft()),
// address(DEPLOYER_SYSTEM_CONTRACT),
// uint128(0),
// abi.encodeCall(
// DEPLOYER_SYSTEM_CONTRACT.create2,
// (
// accountSalt,
// bytecodeHash,
// abi.encode(
// address(emailAuth),
// abi.encodeCall(
// EmailAuth.initialize,
// (
// recoveredAccount,
// accountSalt,
// address(this)
// )
// )
// )
// )
// )
// );
// address payable proxyAddress = abi.decode(returnData, (address));
}
}

0 comments on commit c1971d4

Please sign in to comment.