contracts/lib/forge-std/src/Base.sol 2.2 K raw
1
// SPDX-License-Identifier: MIT
2
pragma solidity >=0.6.2 <0.9.0;
3
4
import {StdStorage} from "./StdStorage.sol";
5
import {Vm, VmSafe} from "./Vm.sol";
6
7
abstract contract CommonBase {
8
    /// @dev Cheat code address.
9
    /// Calculated as `address(uint160(uint256(keccak256("hevm cheat code"))))`.
10
    address internal constant VM_ADDRESS = 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D;
11
    /// @dev console.sol and console2.sol work by executing a staticcall to this address.
12
    /// Calculated as `address(uint160(uint88(bytes11("console.log"))))`.
13
    address internal constant CONSOLE = 0x000000000000000000636F6e736F6c652e6c6f67;
14
    /// @dev Used when deploying with create2.
15
    /// Taken from https://github.com/Arachnid/deterministic-deployment-proxy.
16
    address internal constant CREATE2_FACTORY = 0x4e59b44847b379578588920cA78FbF26c0B4956C;
17
    /// @dev The default address for tx.origin and msg.sender.
18
    /// Calculated as `address(uint160(uint256(keccak256("foundry default caller"))))`.
19
    address internal constant DEFAULT_SENDER = 0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38;
20
    /// @dev The address of the first contract `CREATE`d by a running test contract.
21
    /// When running tests, each test contract is `CREATE`d by `DEFAULT_SENDER` with nonce 1.
22
    /// Calculated as `VM.computeCreateAddress(VM.computeCreateAddress(DEFAULT_SENDER, 1), 1)`.
23
    address internal constant DEFAULT_TEST_CONTRACT = 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f;
24
    /// @dev Deterministic deployment address of the Multicall3 contract.
25
    /// Taken from https://www.multicall3.com.
26
    address internal constant MULTICALL3_ADDRESS = 0xcA11bde05977b3631167028862bE2a173976CA11;
27
    /// @dev The order of the secp256k1 curve.
28
    uint256 internal constant SECP256K1_ORDER =
29
        115792089237316195423570985008687907852837564279074904382605163141518161494337;
30
31
    uint256 internal constant UINT256_MAX =
32
        115792089237316195423570985008687907853269984665640564039457584007913129639935;
33
34
    Vm internal constant vm = Vm(VM_ADDRESS);
35
    StdStorage internal stdstore;
36
}
37
38
abstract contract TestBase is CommonBase {}
39
40
abstract contract ScriptBase is CommonBase {
41
    VmSafe internal constant vmSafe = VmSafe(VM_ADDRESS);
42
}