Files
contract/script/Deploy.sol
2024-10-22 17:18:20 -04:00

39 lines
1.6 KiB
Solidity

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 {IWETH9} from "../lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol";
import "../src/core/Router.sol";
contract Deploy is Script {
function run() external {
vm.startBroadcast();
Dexorder dexorder = new Dexorder();
IRouter router = new ArbitrumRouter();
FeeManager feeManager = FeeManagerLib.debugFeeManager(
payable(msg.sender),
payable(msg.sender),
payable(0x90F79bf6EB2c4f870365E785982E1f101E93b906), // order fees (native) => dev account #3 (fee=three)
payable(0x976EA74026E726554dB657fA54763abd0C3a0aa9), // gas fees (native) => dev account #6 (g=6)
payable(0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65) // fill fees (tokens) => dev account #4 (fill=four, 4 us)
);
VaultImpl impl = new VaultImpl(router, feeManager, address(0));
VaultFactory factory = new VaultFactory(msg.sender, address(impl), 2 * 60); // 2-minute upgrade notice
QueryHelper query = new QueryHelper(UniswapV3Arbitrum.factory);
vm.stopBroadcast();
console2.log('VaultFactory');
console2.log(address(factory));
console2.log('QueryHelper');
console2.log(address(query));
console2.log('Dexorder');
console2.log(address(dexorder));
}
}