// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.26; import "forge-std/Test.sol"; contract BaseConstants { address BASE_USDC = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913; address BASE_MAG7 = 0x9E6A46f294bB67c20F1D1E7AfB0bBEf614403B55; // Uniswap v2 address USDC_MAG7_POOL = 0x739c2431670A12E2cF8e11E3603eB96e6728a789; } contract Constants is Test, BaseConstants { address ADMIN = makeAddr("admin"); //admin=us address BOB = makeAddr("bob"); //bob=someone!=us address FUND_RESCUER = makeAddr("fundRescuer"); address FEE_SETTER = makeAddr("feeSetter"); address FEE_RECEIVER = makeAddr("feeReceiver"); address EXECUTOR_SETTER = makeAddr("executorSetter"); address ALICE = 0xcd09f75E2BF2A4d11F3AB23f1389FcC1621c0cc2; uint256 ALICE_PK = 0x123456789abcdef123456789abcdef123456789abcdef123456789abcdef1234; // Dummy contracts address DUMMY = makeAddr("dummy"); address DUMMY2 = makeAddr("dummy2"); address DUMMY3 = makeAddr("dummy3"); address PAUSER = makeAddr("pauser"); address UNPAUSER = makeAddr("unpauser"); // Assets address ETH_ADDR = address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); address WETH_ADDR = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); address DAI_ADDR = address(0x6B175474E89094C44Da98b954EedeAC495271d0F); address BAL_ADDR = address(0xba100000625a3754423978a60c9317c58a424e3D); address USDC_ADDR = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); address WBTC_ADDR = address(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599); address INCH_ADDR = address(0x111111111117dC0aa78b770fA6A738034120C302); address USDE_ADDR = address(0x4c9EDD5852cd905f086C759E8383e09bff1E68B3); address USDT_ADDR = address(0xdAC17F958D2ee523a2206206994597C13D831ec7); address PEPE_ADDR = address(0x6982508145454Ce325dDbE47a25d4ec3d2311933); address STETH_ADDR = address(0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84); address LUSD_ADDR = address(0x5f98805A4E8be255a32880FDeC7F6728C6568bA0); address LDO_ADDR = address(0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32); address CRV_ADDR = address(0xD533a949740bb3306d119CC777fa900bA034cd52); address ADAI_ADDR = address(0x028171bCA77440897B824Ca71D1c56caC55b68A3); address AUSDC_ADDR = address(0xBcca60bB61934080951369a648Fb03DF4F96263C); address SUSD_ADDR = address(0x57Ab1ec28D129707052df4dF418D58a2D46d5f51); address FRAX_ADDR = address(0x853d955aCEf822Db058eb8505911ED77F175b99e); address DOLA_ADDR = address(0x865377367054516e17014CcdED1e7d814EDC9ce4); address XYO_ADDR = address(0x55296f69f40Ea6d20E478533C15A6B08B654E758); address UWU_ADDR = address(0x55C08ca52497e2f1534B59E2917BF524D4765257); address CRVUSD_ADDR = address(0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E); // Uniswap v2 address WETH_DAI_POOL = 0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11; address DAI_USDC_POOL = 0xAE461cA67B15dc8dc81CE7615e0320dA1A9aB8D5; address WETH_WBTC_POOL = 0xBb2b8038a1640196FbE3e38816F3e67Cba72D940; address USDC_WBTC_POOL = 0x004375Dff511095CC5A197A54140a24eFEF3A416; address USDC_WETH_USV2 = 0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc; // Sushiswap v2 address SUSHISWAP_WBTC_WETH_POOL = 0xCEfF51756c56CeFFCA006cD410B03FFC46dd3a58; // Pancakeswap v2 address PANCAKESWAP_WBTC_WETH_POOL = 0x4AB6702B3Ed3877e9b1f203f90cbEF13d663B0e8; // Uniswap v3 address DAI_WETH_USV3 = 0xC2e9F25Be6257c210d7Adf0D4Cd6E3E881ba25f8; address USDC_WETH_USV3 = 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640; // 0.05% fee address USDC_WETH_USV3_2 = 0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8; // 0.3% fee // Pancakeswap v3 address PANCAKESWAPV3_WETH_USDT_POOL = 0x6CA298D2983aB03Aa1dA7679389D955A4eFEE15C; // Factories address USV3_FACTORY_ETHEREUM = 0x1F98431c8aD98523631AE4a59f267346ea31F984; address USV2_FACTORY_ETHEREUM = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f; address SUSHISWAPV2_FACTORY_ETHEREUM = 0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac; address PANCAKESWAPV2_FACTORY_ETHEREUM = 0x1097053Fd2ea711dad45caCcc45EfF7548fCB362; // Pancakeswap uses their deployer instead of their factory for target verification address PANCAKESWAPV3_DEPLOYER_ETHEREUM = 0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9; // Curve // 3pool - Pool type 1 address TRIPOOL_USDT_USDC_DAI = 0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7; // Tricrypto - Pool type 3 address TRICRYPTO_USDC_WBTC_WETH = 0x7F86Bf177Dd4F3494b841a37e810A34dD56c829B; // stEth - Pool type 4 address STETH_POOL = 0xDC24316b9AE028F1497c275EB9192a3Ea0f67022; // LUSD - Pool type 5 address LUSD_POOL = 0xEd279fDD11cA84bEef15AF5D39BB4d4bEE23F0cA; // Compound - Pool type 6 address CPOOL = 0xA2B47E3D5c44877cca798226B7B8118F9BFb7A56; // LDO - Pool type 7 address LDO_POOL = 0x9409280DC1e6D33AB7A8C6EC03e5763FB61772B5; // CRV - Pool type 8 address CRV_POOL = 0x8301AE4fc9c624d1D396cbDAa1ed877821D7C511; // AAVE - Pool type 0 address AAVE_POOL = 0xDeBF20617708857ebe4F679508E7b7863a8A8EeE; // BASE META POOL address FRAXPYUSD_ADDR = address(0xA5588F7cdf560811710A2D82D3C9c99769DB1Dcb); // Curve pools taken from the substreams address TRICRYPTO_USDT_WETH_WBTC = 0xD51a44d3FaE010294C616388b506AcdA1bfAAE46; address SUSD_POOL = 0xA5407eAE9Ba41422680e2e00537571bcC53efBfD; address FRAX_USDC_POOL = 0xDcEF968d416a41Cdac0ED8702fAC8128A64241A2; address USDE_USDC_POOL = 0x02950460E2b9529D0E00284A5fA2d7bDF3fA4d72; address DOLA_FRAXPYUSD_POOL = 0xef484de8C07B6e2d732A92B5F78e81B38f99f95E; address WETH_XYO_POOL = 0x99e09ee2d6Bb16c0F5ADDfEA649dbB2C1d524624; address UWU_WETH_POOL = 0x77146B0a1d08B6844376dF6d9da99bA7F1b19e71; address CRVUSD_USDT_POOL = 0x390f3595bCa2Df7d23783dFd126427CCeb997BF4; // Uniswap universal router address UNIVERSAL_ROUTER = 0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af; // Permit2 address PERMIT2_ADDRESS = 0x000000000022D473030F116dDEE9F6B43aC78BA3; // Pool Code Init Hashes bytes32 USV2_POOL_CODE_INIT_HASH = 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f; bytes32 USV3_POOL_CODE_INIT_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54; bytes32 SUSHIV2_POOL_CODE_INIT_HASH = 0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303; bytes32 PANCAKEV2_POOL_CODE_INIT_HASH = 0x57224589c67f3f30a6b0d7a1b54cf3153ab84563bc609ef41dfb34f8b2974d2d; bytes32 PANCAKEV3_POOL_CODE_INIT_HASH = 0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2; // Curve router address CURVE_ROUTER = 0x16C6521Dff6baB339122a0FE25a9116693265353; // Curve meta registry address CURVE_META_REGISTRY = 0xF98B45FA17DE75FB1aD0e7aFD971b0ca00e379fC; /** * @dev Deploys a dummy contract with non-empty bytecode */ function deployDummyContract() internal { bytes memory minimalBytecode = hex"01"; // Single-byte bytecode // Deploy minimal bytecode vm.etch(DUMMY, minimalBytecode); vm.etch(DUMMY2, minimalBytecode); vm.etch(DUMMY3, minimalBytecode); } }