1+ // SPDX-License-Identifier: UNLICENSED
2+ pragma solidity ^ 0.8.0 ;
3+
4+ // Setup
5+ import { SetupBase } from "./utils/Setup.sol " ;
6+ import { SetupSonic } from "./utils/Setup.sol " ;
7+ import { SetupMainnet } from "./utils/Setup.sol " ;
8+
9+ import { CrossChain } from "./utils/Addresses.sol " ;
10+
11+ // Foundry
12+ import { console } from "forge-std/console.sol " ;
13+
14+ contract Runlogs_2025_10_Mainnet is SetupMainnet {
15+ function run () public {
16+ _2025_10_01 ();
17+ //_2025_10_02();
18+ }
19+
20+ // ------------------------------------------------------------------
21+ // Oct 3, 2025 - Yield Forward to Computed Merkl Pool Booster
22+ // ------------------------------------------------------------------
23+ function _2025_10_01 () internal {
24+ bytes memory campaignData =
25+ hex "b8fef900b383db2dbbf4458c7f46acf5b140f26d603a6d1829963f241b82510e00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " ;
26+
27+ vm.startBroadcast (strategist);
28+
29+ console.log ("----- " );
30+ console.log ("strategist address " , address (strategist));
31+ console.log ("poolBoosterFactoryMerkl address " , address (poolBoosterFactoryMerkl));
32+
33+ address poolBoosterAddress = poolBoosterFactoryMerkl.computePoolBoosterAddress ({
34+ _campaignType: 45 ,
35+ _ammPoolAddress: CrossChain.MORPHO_BLUE,
36+ _campaignDuration: 7 days,
37+ campaignData: campaignData,
38+ _salt: uint256 (keccak256 (abi.encodePacked ("Merkl Morpho PB OETH/USDC v1 " )))
39+ });
40+
41+ console.log ("computed address " , poolBoosterAddress);
42+
43+ // Run yield forward
44+ oeth.delegateYield (CrossChain.MORPHO_BLUE, poolBoosterAddress);
45+ vm.stopBroadcast ();
46+ }
47+
48+ // ------------------------------------------------------------------
49+ // Oct 3+ TODO, 2025 - Create Merkl Pool Booster once Central Registry governance passes
50+ // ------------------------------------------------------------------
51+ function _2025_10_02 () internal {
52+ bytes memory campaignData =
53+ hex "b8fef900b383db2dbbf4458c7f46acf5b140f26d603a6d1829963f241b82510e00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " ;
54+
55+ vm.startBroadcast (strategist);
56+ // Create the pool booster
57+ poolBoosterFactoryMerkl.createPoolBoosterMerkl ({
58+ _campaignType: 45 , // Incentivise Borrow rate of OETH/USDC
59+ _ammPoolAddress: CrossChain.MORPHO_BLUE,
60+ _campaignDuration: 7 days,
61+ campaignData: campaignData,
62+ _salt: uint256 (keccak256 (abi.encodePacked ("Merkl Morpho PB OETH/USDC v1 " )))
63+ });
64+
65+ vm.stopBroadcast ();
66+ }
67+ }
0 commit comments