Commit 26e7d370 authored by Dan Coombs's avatar Dan Coombs Committed by GitHub

feat(contracts-bedrock): add ERC-4337 entry point v0.7.0 to predeploys (#10763)

* feat(contracts-bedrock): add ERC-4337 entry point v0.7.0 to predeploys

* fix: fix lint error
parent 522c6818
......@@ -34,8 +34,10 @@ const (
DeterministicDeploymentProxy = "0x4e59b44847b379578588920cA78FbF26c0B4956C"
MultiSend_v130 = "0x998739BFdAAdde7C933B942a68053933098f9EDa"
Permit2 = "0x000000000022D473030F116dDEE9F6B43aC78BA3"
SenderCreator = "0x7fc98430eaedbb6070b35b39d798725049088348"
EntryPoint = "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
SenderCreator_v060 = "0x7fc98430eaedbb6070b35b39d798725049088348"
EntryPoint_v060 = "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
SenderCreator_v070 = "0xEFC2c1444eBCC4Db75e7613d20C6a62fF67A167C"
EntryPoint_v070 = "0x0000000071727De22E5E9d8BAf0edAc6f37da032"
)
var (
......@@ -67,8 +69,10 @@ var (
DeterministicDeploymentProxyAddr = common.HexToAddress(DeterministicDeploymentProxy)
MultiSend_v130Addr = common.HexToAddress(MultiSend_v130)
Permit2Addr = common.HexToAddress(Permit2)
SenderCreatorAddr = common.HexToAddress(SenderCreator)
EntryPointAddr = common.HexToAddress(EntryPoint)
SenderCreator_v060Addr = common.HexToAddress(SenderCreator_v060)
EntryPoint_v060Addr = common.HexToAddress(EntryPoint_v060)
SenderCreator_v070Addr = common.HexToAddress(SenderCreator_v070)
EntryPoint_v070Addr = common.HexToAddress(EntryPoint_v070)
Predeploys = make(map[string]*Predeploy)
PredeploysByAddress = make(map[common.Address]*Predeploy)
......@@ -136,12 +140,20 @@ func init() {
Address: Permit2Addr,
ProxyDisabled: true,
}
Predeploys["SenderCreator"] = &Predeploy{
Address: SenderCreatorAddr,
Predeploys["SenderCreator_v060"] = &Predeploy{
Address: SenderCreator_v060Addr,
ProxyDisabled: true,
}
Predeploys["EntryPoint"] = &Predeploy{
Address: EntryPointAddr,
Predeploys["EntryPoint_v060"] = &Predeploy{
Address: EntryPoint_v060Addr,
ProxyDisabled: true,
}
Predeploys["SenderCreator_v070"] = &Predeploy{
Address: SenderCreator_v070Addr,
ProxyDisabled: true,
}
Predeploys["EntryPoint_v070"] = &Predeploy{
Address: EntryPoint_v070Addr,
ProxyDisabled: true,
}
......
......@@ -492,8 +492,10 @@ contract L2Genesis is Deployer {
_setPreinstallCode(Preinstalls.DeterministicDeploymentProxy);
_setPreinstallCode(Preinstalls.MultiSend_v130);
_setPreinstallCode(Preinstalls.Permit2);
_setPreinstallCode(Preinstalls.SenderCreator);
_setPreinstallCode(Preinstalls.EntryPoint); // ERC 4337
_setPreinstallCode(Preinstalls.SenderCreator_v060); // ERC 4337 v0.6.0
_setPreinstallCode(Preinstalls.EntryPoint_v060); // ERC 4337 v0.6.0
_setPreinstallCode(Preinstalls.SenderCreator_v070); // ERC 4337 v0.7.0
_setPreinstallCode(Preinstalls.EntryPoint_v070); // ERC 4337 v0.7.0
_setPreinstallCode(Preinstalls.BeaconBlockRoots);
// 4788 sender nonce must be incremented, since it's part of later upgrade-transactions.
// For the upgrade-tx to not create a contract that conflicts with an already-existing copy,
......
......@@ -186,7 +186,7 @@ contract L2GenesisTest is Test {
uint256 expected = 0;
expected += 2048 - 2; // predeploy proxies
expected += 19; // predeploy implementations (excl. legacy erc20-style eth and legacy message sender)
expected += 21; // predeploy implementations (excl. legacy erc20-style eth and legacy message sender)
expected += 256; // precompiles
expected += 12; // preinstalls
expected += 1; // 4788 deployer account
......
......@@ -98,12 +98,20 @@ contract PreinstallsTest is CommonTest {
vm.chainId(pre);
}
function test_preinstall_senderCreator_succeeds() external view {
assertPreinstall(Preinstalls.SenderCreator, Preinstalls.SenderCreatorCode);
function test_preinstall_senderCreatorv060_succeeds() external view {
assertPreinstall(Preinstalls.SenderCreator_v060, Preinstalls.SenderCreator_v060Code);
}
function test_preinstall_entrypoint_succeeds() external view {
assertPreinstall(Preinstalls.EntryPoint, Preinstalls.EntryPointCode);
function test_preinstall_entrypointv060_succeeds() external view {
assertPreinstall(Preinstalls.EntryPoint_v060, Preinstalls.EntryPoint_v060Code);
}
function test_preinstall_senderCreatorv070_succeeds() external view {
assertPreinstall(Preinstalls.SenderCreator_v070, Preinstalls.SenderCreator_v070Code);
}
function test_preinstall_entrypointv070_succeeds() external view {
assertPreinstall(Preinstalls.EntryPoint_v070, Preinstalls.EntryPoint_v070Code);
}
function test_preinstall_beaconBlockRoots_succeeds() external view {
......
......@@ -217,8 +217,10 @@ contract Setup {
labelPreinstall(Preinstalls.DeterministicDeploymentProxy);
labelPreinstall(Preinstalls.MultiSend_v130);
labelPreinstall(Preinstalls.Permit2);
labelPreinstall(Preinstalls.SenderCreator);
labelPreinstall(Preinstalls.EntryPoint);
labelPreinstall(Preinstalls.SenderCreator_v060);
labelPreinstall(Preinstalls.EntryPoint_v060);
labelPreinstall(Preinstalls.SenderCreator_v070);
labelPreinstall(Preinstalls.EntryPoint_v070);
labelPreinstall(Preinstalls.BeaconBlockRoots);
console.log("Setup: completed L2 genesis");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment