Skip to content

Latest commit

 

History

History
78 lines (66 loc) · 5.63 KB

assume-no-precompiles.md

File metadata and controls

78 lines (66 loc) · 5.63 KB

assumeNotPrecompile

Signature

function assumeNotPrecompile(address addr) public;
function assumeNotPrecompile(address addr, uint256 chainid) public;

Description

Uses assume to filter precompile addresses from the fuzz tests.

Optionally, a chainid may be specified to filter known precompiles on the respective chain.

Registry

These are all the precompile addresses known to the assumeNotPrecompile functions.

Chain ID Address Name
ALL 0x01 ECRecover
ALL 0x02 SHA-256
ALL 0x03 RIPEMD-160
ALL 0x04 Identity
ALL 0x05 ModExp
ALL 0x06 ECAdd
ALL 0x07 ECMul
ALL 0x08 ECPairing
ALL 0x09 Blake2F
ALL 0x0a PointEvaluation
10, 420 0x4200000000000000000000000000000000000016 L2ToL1MessagePasser
10, 420 0x4200000000000000000000000000000000000002 DeployerWhitelist
10, 420 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000 LegacyERC20ETH
10, 420 0x4200000000000000000000000000000000000006 WETH9
10, 420 0x4200000000000000000000000000000000000007 L2CrossDomainMessenger
10, 420 0x4200000000000000000000000000000000000010 L2StandardBridge
10, 420 0x4200000000000000000000000000000000000011 SequencerFeeVault
10, 420 0x4200000000000000000000000000000000000012 OptimismMintableERC20Factory
10, 420 0x4200000000000000000000000000000000000013 L1BlockNumber
10, 420 0x420000000000000000000000000000000000000F GasPriceOracle
10, 420 0x4200000000000000000000000000000000000015 L1Block
10, 420 0x4200000000000000000000000000000000000042 GovernanceToken
10, 420 0x4200000000000000000000000000000000000000 LegacyMessagePasser
10, 420 0x4200000000000000000000000000000000000014 L2ERC721Bridge
10, 420 0x4200000000000000000000000000000000000017 OptimismMintableERC721Factory
10, 420 0x4200000000000000000000000000000000000018 ProxyAdmin
42161, 421613 0x0000000000000000000000000000000000000064 ArbSys
42161, 421613 0x000000000000000000000000000000000000006E ArbRetryableTx
42161, 421613 0x000000000000000000000000000000000000006C ArbGasInfo
42161, 421613 0x0000000000000000000000000000000000000066 ArbAddressTable
42161, 421613 0x000000000000000000000000000000000000006F ArbStatistics
42161, 421613 0x00000000000000000000000000000000000000C8 NodeInterface
42161, 421613 0x0000000000000000000000000000000000000067 ArbBLS
42161, 421613 0x0000000000000000000000000000000000000065 ArbInfo
42161, 421613 0x000000000000000000000000000000000000006D ArbAggregator
42161, 421613 0x0000000000000000000000000000000000000068 ArbFunctionTable
433114, 43113 0x0200000000000000000000000000000000000000 ContractDeployerAllowListAddress
433114, 43113 0x0200000000000000000000000000000000000001 ContractNativeMinterAddress
433114, 43113 0x0200000000000000000000000000000000000002 TxAllowListAddress
433114, 43113 0x0200000000000000000000000000000000000003 FeeConfigManagerAddress
ALL 0x4e59b44847b379578588920cA78FbF26c0B4956C (Foundry) Create2Deployer
ALL 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D (Foundry) VM
ALL 0x000000000000000000636F6e736F6c652e6c6f67 (Foundry) Console

Reserved Ranges

Some chains also include reserved ranges for precompile contracts.

Chain ID Start Stop
ALL 0x00 0xff
433114, 43113 0x0100000000000000000000000000000000000000 0x01000000000000000000000000000000000000ff
433114, 43113 0x0200000000000000000000000000000000000000 0x02000000000000000000000000000000000000ff
433114, 43113 0x0300000000000000000000000000000000000000 0x03000000000000000000000000000000000000ff