From 80338addcad6b33f6c9607b4699e619850553699 Mon Sep 17 00:00:00 2001 From: George Knee Date: Mon, 14 Oct 2024 21:12:16 +0100 Subject: [PATCH] Fix definition of predeploy namespace (#339) * Update predeploys.md The deleted sentence contradicts the rest of the document, which states that the proxyadmin is itself a proxied contract. * WETH is not proxied * More precise definition of the predeploy address namespace * use only 3 blanked nibbles --- specs/protocol/predeploys.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specs/protocol/predeploys.md b/specs/protocol/predeploys.md index 41f5b4ddc..5d35fb7eb 100644 --- a/specs/protocol/predeploys.md +++ b/specs/protocol/predeploys.md @@ -37,9 +37,9 @@ Predeploys are used instead of precompiles to make it easier for multiclient implementations as well as allowing for more integration with hardhat/foundry network forking. -Predeploy addresses exist in 1 byte namespace `0x42000000000000000000000000000000000000xx`. -Proxies are set at each possible predeploy address except for the -`GovernanceToken` and the `ProxyAdmin`. +Predeploy addresses exist in a prefixed namespace `0x4200000000000000000000000000000000000xxx`. +Proxies are set at the first 2048 addresses in the namespace, except for the addresses reserved for the +`GovernanceToken` and `WETH` predeploys. The `LegacyERC20ETH` predeploy lives at a special address `0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000` and there is no proxy deployed at that account.