pragma solidity 0.8.26; import "@forge-std/Script.sol"; import "@forge-std/console2.sol"; import "../src/more/FeeManagerLib.sol"; import "../src/core/VaultImpl.sol"; import "../src/core/VaultFactory.sol"; import "../src/more/QueryHelper.sol"; import "../src/more/Dexorder.sol"; import "../src/core/Router.sol"; contract DeployArbitrum is Script { function run() external { address admin = address(0x12DB90820DAFed100E40E21128E40Dcd4fF6B331); address adjuster = address(0x822e57D95444f9Bf373827950068A877F7C7F5FC); address payable orderFeeAccount = payable(0x078E0C1112262433375b9aaa987BfF09a08e863C); address payable gasFeeAccount = payable(0x411c418C005EBDefB551e5E6B734520Ef2591f51); address payable fillFeeAccount = payable(0x152a3a04cE063dC77497aA06b6A09FeFD271E716); address WETH = address(0x82aF49447D8a07e3bd95BD0d56f35241523fBab1); vm.startBroadcast(); Dexorder dexorder = new Dexorder(); IRouter router = new ArbitrumRouter(); FeeManager feeManager = FeeManagerLib.defaultFeeManager(admin, adjuster, orderFeeAccount, gasFeeAccount, fillFeeAccount); VaultImpl impl = new VaultImpl(router, feeManager, WETH); VaultFactory factory = new VaultFactory(admin, address(impl), 24 * 60 * 60); // 24-hour upgrade notice QueryHelper query = new QueryHelper(UniswapV3Arbitrum.factory); vm.stopBroadcast(); console2.log('ArbitrumRouter', address(router)); console2.log('Dexorder', address(dexorder)); console2.log('FeeManager', address(feeManager)); console2.log('QueryHelper', address(query)); console2.log('VaultFactory', address(factory)); console2.log('VaultImpl', address(impl)); } }