57 lines
2.2 KiB
Solidity
57 lines
2.2 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.20;
|
|
|
|
import {Script, console} from "forge-std/Script.sol";
|
|
import {TreasuryVault} from "../../contracts/treasury/TreasuryVault.sol";
|
|
import {CcipBridgeAdapter138} from "../../contracts/treasury/CcipBridgeAdapter138.sol";
|
|
import {StrategyExecutor138} from "../../contracts/treasury/StrategyExecutor138.sol";
|
|
|
|
contract DeployTreasuryExecutor138 is Script {
|
|
address constant WETH9_138 = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
|
|
address constant WETH10_138 = 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9F;
|
|
address constant CUSDC_138 = 0xf22258f57794CC8E06237084b353Ab30fFfa640b;
|
|
address constant CUSDT_138 = 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22;
|
|
address constant CCIPWETH9_BRIDGE_138 = 0x971cD9D156f193df8051E48043C476e53ECd4693;
|
|
|
|
function run() external {
|
|
uint256 pk = vm.envUint("PRIVATE_KEY");
|
|
address admin = vm.addr(pk);
|
|
address receiverMainnet = vm.envAddress("RECEIVER_EXECUTOR_MAINNET");
|
|
|
|
vm.startBroadcast(pk);
|
|
|
|
TreasuryVault vault = new TreasuryVault(admin);
|
|
|
|
CcipBridgeAdapter138 adapter = new CcipBridgeAdapter138(
|
|
WETH9_138,
|
|
CCIPWETH9_BRIDGE_138,
|
|
receiverMainnet,
|
|
admin
|
|
);
|
|
|
|
StrategyExecutor138 executor = new StrategyExecutor138(
|
|
address(vault),
|
|
address(adapter),
|
|
admin
|
|
);
|
|
|
|
adapter.setStrategyExecutor(address(executor));
|
|
|
|
vault.setModule(address(executor), true);
|
|
vault.setModule(address(adapter), true);
|
|
vault.setToken(WETH9_138, true);
|
|
vault.setToken(WETH10_138, true);
|
|
vault.setToken(CUSDC_138, true);
|
|
vault.setToken(CUSDT_138, true);
|
|
executor.setToken(WETH9_138, true);
|
|
// Optional: admin may call executor.setExportPolicy(...) and executor.setCooldownBlocks(...) after deploy.
|
|
// Optional: on ReceiverExecutorMainnet, admin may call setExpectedWeth9Source(bridge) for operator reference.
|
|
|
|
vm.stopBroadcast();
|
|
|
|
console.log("TREASURY_VAULT_138=", address(vault));
|
|
console.log("CCIP_BRIDGE_ADAPTER_138=", address(adapter));
|
|
console.log("STRATEGY_EXECUTOR_138=", address(executor));
|
|
}
|
|
}
|