arb_precompiles/
arbosacts.rs

1use alloy_evm::precompiles::{DynPrecompile, PrecompileInput};
2use alloy_primitives::Address;
3use revm::precompile::{PrecompileError, PrecompileId, PrecompileResult};
4
5/// ArbosActs precompile address (0xa4b05).
6pub const ARBOSACTS_ADDRESS: Address = Address::new([
7    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
8    0x00, 0x0a, 0x4b, 0x05,
9]);
10
11pub fn create_arbosacts_precompile() -> DynPrecompile {
12    DynPrecompile::new_stateful(PrecompileId::custom("arbosacts"), handler)
13}
14
15fn handler(_input: PrecompileInput<'_>) -> PrecompileResult {
16    // All ArbosActs methods reject non-ArbOS callers.
17    // These are internal lifecycle hooks invoked by the block production engine,
18    // never by external transactions.
19    Err(PrecompileError::other("caller is not ArbOS"))
20}