tempo_contracts/
lib.rs

1//! Tempo predeployed contracts and bindings.
2
3#![cfg_attr(not(test), warn(unused_crate_dependencies))]
4#![cfg_attr(docsrs, feature(doc_cfg))]
5
6use alloy::primitives::{Address, address};
7
8pub const MULTICALL_ADDRESS: Address = alloy::providers::MULTICALL3_ADDRESS;
9pub const CREATEX_ADDRESS: Address = address!("0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed");
10pub const SAFE_DEPLOYER_ADDRESS: Address = address!("0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7");
11pub const PERMIT2_ADDRESS: Address = address!("0x000000000022d473030f116ddee9f6b43ac78ba3");
12pub const DEFAULT_7702_DELEGATE_ADDRESS: Address =
13    address!("0x7702c00000000000000000000000000000000000");
14pub const ARACHNID_CREATE2_FACTORY_ADDRESS: Address =
15    address!("0x4e59b44847b379578588920cA78FbF26c0B4956C");
16
17pub mod contracts {
18    use alloy::{
19        primitives::{Bytes, bytes},
20        sol,
21    };
22
23    sol!(
24        #[allow(missing_docs)]
25        #[sol(rpc)]
26        Multicall,
27        "abi/Multicall.json",
28    );
29
30    sol!(
31        #[allow(missing_docs)]
32        #[sol(rpc)]
33        CreateX,
34        "abi/CreateX.json",
35    );
36
37    sol!(
38        #[allow(missing_docs)]
39        #[sol(rpc)]
40        Permit2,
41        "abi/Permit2.json"
42    );
43
44    sol!(
45        #[allow(missing_docs)]
46        #[sol(rpc)]
47        IthacaAccount,
48        "abi/IthacaAccount.json",
49    );
50
51    sol!(
52        #[allow(missing_docs)]
53        #[sol(rpc)]
54        SafeDeployer,
55        "abi/SafeDeployer.json",
56    );
57
58    pub const ARACHNID_CREATE2_FACTORY_BYTECODE: Bytes = bytes!(
59        "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3"
60    );
61}
62
63pub use contracts::{CreateX, IthacaAccount, Multicall, Permit2, SafeDeployer};
64
65pub mod precompiles;