From e2b71a8f9b60935320ac7c043a40cc37752e8b87 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 18:11:55 -0500 Subject: [PATCH 01/22] feat: test rewards v2 init --- script/TestRewardsV2.sol | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 script/TestRewardsV2.sol diff --git a/script/TestRewardsV2.sol b/script/TestRewardsV2.sol new file mode 100644 index 00000000..90de5a56 --- /dev/null +++ b/script/TestRewardsV2.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.12; + +import {Script, stdJson} from "forge-std/Script.sol"; + +import {IRewardsCoordinator} from "lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol"; +import {IServiceManager} from "src/interfaces/IServiceManager.sol"; +import {IERC20} from "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; +import {IStrategy} from "lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol"; + +contract TestRewardsV2 is Script { + IRewardsCoordinator rewardsCoordinator = + IRewardsCoordinator(0xAcc1fb458a1317E886dB376Fc8141540537E68fE); + IServiceManager eigenDAServiceManager = + IServiceManager(0xD4A7E1Bd8015057293f0D0A557088c286942e84b); + + IERC20 WETH = IERC20(0x94373a4919B3240D86eA41593D5eBa789FEF3848); + + // operators + address OPERATOR_STAKELY = 0x06Fb6C463cC68100355624B6006471A960704126; + address OPERATOR_EIGENYIELDS = 0x5ACCC90436492F24E6aF278569691e2c942A676d; + address OPERATOR_XYZ = 0x758E016468E5E90cDB42e743881C2e921d8e7bF8; + address OPERATOR_GALAXY = 0x0a3e3d83C99B27cA7540720b54105C79Cd58dbdD; + address OPERATOR_SINOPMM = 0xB25430A1Ba8F2033834Ba30AAB8279CB1Cb6c9a6; + + //strategies + IStrategy STRATEGY_WETH = + IStrategy(0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9); + IStrategy STRATEGY_STETH = + IStrategy(0x7D704507b76571a51d9caE8AdDAbBFd0ba0e63d3); + + IRewardsCoordinator.StrategyAndMultiplier[] defaultStrategyAndMultipliers; + + function _setupStrategyAndMultiplier() internal { + defaultStrategyAndMultipliers = new IRewardsCoordinator.StrategyAndMultiplier[]( + 2 + ); + + defaultStrategyAndMultipliers[0] = IRewardsCoordinator + .StrategyAndMultiplier({strategy: STRATEGY_WETH, multiplier: 2e18}); + + defaultStrategyAndMultipliers[1] = IRewardsCoordinator + .StrategyAndMultiplier({ + strategy: STRATEGY_STETH, + multiplier: 1e18 + }); + } + + function tx_1() public { + IRewardsCoordinator.RewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( + 1 + ); + + rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ + strategiesAndMultipliers: defaultStrategyAndMultipliers, + token: WETH, + amount: 1e18, + startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC + duration: uint32(86400) // 1 day + }); + + eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + } +} From b2a8020e66825e4c6c0403b9864577cf246863fa Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 18:31:26 -0500 Subject: [PATCH 02/22] feat: tx2 --- script/TestRewardsV2.sol | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/script/TestRewardsV2.sol b/script/TestRewardsV2.sol index 90de5a56..2ccbf2b4 100644 --- a/script/TestRewardsV2.sol +++ b/script/TestRewardsV2.sol @@ -62,4 +62,21 @@ contract TestRewardsV2 is Script { eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); } + + function tx_2() public { + IRewardsCoordinator.RewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( + 1 + ); + + rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ + strategiesAndMultipliers: defaultStrategyAndMultipliers, + token: WETH, + amount: 1e18, + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(518400) // 6 days + }); + + eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + } } From fde4f3de01c8d073670b8611e543d930ad81ffa8 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 18:49:30 -0500 Subject: [PATCH 03/22] feat: txs --- ...{TestRewardsV2.sol => TestRewardsV2.s.sol} | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) rename script/{TestRewardsV2.sol => TestRewardsV2.s.sol} (56%) diff --git a/script/TestRewardsV2.sol b/script/TestRewardsV2.s.sol similarity index 56% rename from script/TestRewardsV2.sol rename to script/TestRewardsV2.s.sol index 2ccbf2b4..0832c226 100644 --- a/script/TestRewardsV2.sol +++ b/script/TestRewardsV2.s.sol @@ -47,6 +47,8 @@ contract TestRewardsV2 is Script { } function tx_1() public { + _setupStrategyAndMultiplier(); + IRewardsCoordinator.RewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 @@ -60,10 +62,13 @@ contract TestRewardsV2 is Script { duration: uint32(86400) // 1 day }); + vm.broadcast(); eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); } function tx_2() public { + _setupStrategyAndMultiplier(); + IRewardsCoordinator.RewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 @@ -77,6 +82,75 @@ contract TestRewardsV2 is Script { duration: uint32(518400) // 6 days }); + vm.broadcast(); + eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + } + + function tx_5() public { + _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 2 + ); + + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_STAKELY, + amount: 1e18 + }); + operatorRewards[1] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_EIGENYIELDS, + amount: 1e18 + }); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: defaultStrategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC + duration: uint32(86400), // 1 day + description: "" + }); + + vm.broadcast(); + eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + } + + function tx_6() public { + _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_EIGENYIELDS, + amount: 1e18 + }); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: defaultStrategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(518400) // 6 days + description: "" + }); + + vm.broadcast(); eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); } } From 6385a71e04e932e9e525fd6b93d2f459747c76e9 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 18:52:06 -0500 Subject: [PATCH 04/22] feat: txs --- script/TestRewardsV2.s.sol | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 0832c226..798aa70b 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -44,6 +44,42 @@ contract TestRewardsV2 is Script { strategy: STRATEGY_STETH, multiplier: 1e18 }); + + defaultStrategyAndMultipliers = _sortStrategyArrayAsc(defaultStrategyAndMultipliers); + } + + function _sortStrategyArrayAsc( + IStrategy[] memory arr + ) internal pure returns (IStrategy[] memory) { + uint256 l = arr.length; + for (uint256 i = 0; i < l; i++) { + for (uint256 j = i + 1; j < l; j++) { + if (address(arr[i]) > address(arr[j])) { + IStrategy temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + } + } + return arr; + } + + + /// @dev Sort to ensure that the array is in ascending order for addresses + function _sortAddressArrayAsc( + address[] memory arr + ) internal pure returns (address[] memory) { + uint256 l = arr.length; + for (uint256 i = 0; i < l; i++) { + for (uint256 j = i + 1; j < l; j++) { + if (arr[i] > arr[j]) { + address temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + } + } + return arr; } function tx_1() public { @@ -103,6 +139,8 @@ contract TestRewardsV2 is Script { amount: 1e18 }); + operatorRewards = _sortAddressArrayAsc(operatorRewards); + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 @@ -135,6 +173,8 @@ contract TestRewardsV2 is Script { amount: 1e18 }); + operatorRewards = _sortAddressArrayAsc(operatorRewards); + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 From d96e79d390878a24709a38746b7642649ed0dc97 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 18:53:53 -0500 Subject: [PATCH 05/22] fix: comma --- script/TestRewardsV2.s.sol | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 798aa70b..cebd4eff 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -45,7 +45,9 @@ contract TestRewardsV2 is Script { multiplier: 1e18 }); - defaultStrategyAndMultipliers = _sortStrategyArrayAsc(defaultStrategyAndMultipliers); + defaultStrategyAndMultipliers = _sortStrategyArrayAsc( + defaultStrategyAndMultipliers + ); } function _sortStrategyArrayAsc( @@ -64,8 +66,7 @@ contract TestRewardsV2 is Script { return arr; } - - /// @dev Sort to ensure that the array is in ascending order for addresses + /// @dev Sort to ensure that the array is in ascending order for addresses function _sortAddressArrayAsc( address[] memory arr ) internal pure returns (address[] memory) { @@ -161,7 +162,7 @@ contract TestRewardsV2 is Script { } function tx_6() public { - _setupStrategyAndMultiplier(); + _setupStrategyAndMultiplier(); IRewardsCoordinator.OperatorReward[] memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( @@ -186,7 +187,7 @@ contract TestRewardsV2 is Script { token: WETH, operatorRewards: operatorRewards, startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC - duration: uint32(518400) // 6 days + duration: uint32(518400), // 6 days description: "" }); From 195ced16d23ed8193c9061c9e699912e131dbcc7 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 19:42:22 -0500 Subject: [PATCH 06/22] fix: cleanup --- script/TestRewardsV2.s.sol | 245 ++++++++++++++++--------------------- 1 file changed, 108 insertions(+), 137 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index cebd4eff..3defcbe8 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -29,62 +29,33 @@ contract TestRewardsV2 is Script { IStrategy STRATEGY_STETH = IStrategy(0x7D704507b76571a51d9caE8AdDAbBFd0ba0e63d3); - IRewardsCoordinator.StrategyAndMultiplier[] defaultStrategyAndMultipliers; - - function _setupStrategyAndMultiplier() internal { - defaultStrategyAndMultipliers = new IRewardsCoordinator.StrategyAndMultiplier[]( - 2 - ); + function _setupStrategyAndMultiplier() + internal + view + returns (IRewardsCoordinator.StrategyAndMultiplier[] memory) + { + IRewardsCoordinator.StrategyAndMultiplier[] + memory defaultStrategyAndMultipliers = new IRewardsCoordinator.StrategyAndMultiplier[]( + 2 + ); defaultStrategyAndMultipliers[0] = IRewardsCoordinator - .StrategyAndMultiplier({strategy: STRATEGY_WETH, multiplier: 2e18}); - - defaultStrategyAndMultipliers[1] = IRewardsCoordinator .StrategyAndMultiplier({ strategy: STRATEGY_STETH, multiplier: 1e18 }); - defaultStrategyAndMultipliers = _sortStrategyArrayAsc( - defaultStrategyAndMultipliers - ); - } - - function _sortStrategyArrayAsc( - IStrategy[] memory arr - ) internal pure returns (IStrategy[] memory) { - uint256 l = arr.length; - for (uint256 i = 0; i < l; i++) { - for (uint256 j = i + 1; j < l; j++) { - if (address(arr[i]) > address(arr[j])) { - IStrategy temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - } - } - } - return arr; - } + defaultStrategyAndMultipliers[1] = IRewardsCoordinator + .StrategyAndMultiplier({strategy: STRATEGY_WETH, multiplier: 2e18}); - /// @dev Sort to ensure that the array is in ascending order for addresses - function _sortAddressArrayAsc( - address[] memory arr - ) internal pure returns (address[] memory) { - uint256 l = arr.length; - for (uint256 i = 0; i < l; i++) { - for (uint256 j = i + 1; j < l; j++) { - if (arr[i] > arr[j]) { - address temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - } - } - } - return arr; + return defaultStrategyAndMultipliers; } + // Test Rewards v1 submission: Operator-avs split left unset + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_1()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast function tx_1() public { - _setupStrategyAndMultiplier(); + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); IRewardsCoordinator.RewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( @@ -92,7 +63,7 @@ contract TestRewardsV2 is Script { ); rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ - strategiesAndMultipliers: defaultStrategyAndMultipliers, + strategiesAndMultipliers: strategyAndMultipliers, token: WETH, amount: 1e18, startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC @@ -103,95 +74,95 @@ contract TestRewardsV2 is Script { eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); } - function tx_2() public { - _setupStrategyAndMultiplier(); - - IRewardsCoordinator.RewardsSubmission[] - memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( - 1 - ); - - rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ - strategiesAndMultipliers: defaultStrategyAndMultipliers, - token: WETH, - amount: 1e18, - startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC - duration: uint32(518400) // 6 days - }); - - vm.broadcast(); - eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); - } - - function tx_5() public { - _setupStrategyAndMultiplier(); - - IRewardsCoordinator.OperatorReward[] - memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( - 2 - ); - - operatorRewards[0] = IRewardsCoordinator.OperatorReward({ - operator: OPERATOR_STAKELY, - amount: 1e18 - }); - operatorRewards[1] = IRewardsCoordinator.OperatorReward({ - operator: OPERATOR_EIGENYIELDS, - amount: 1e18 - }); - - operatorRewards = _sortAddressArrayAsc(operatorRewards); - - IRewardsCoordinator.OperatorDirectedRewardsSubmission[] - memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( - 1 - ); - - rewardsSubmissions[0] = IRewardsCoordinator - .OperatorDirectedRewardsSubmission({ - strategiesAndMultipliers: defaultStrategyAndMultipliers, - token: WETH, - operatorRewards: operatorRewards, - startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC - duration: uint32(86400), // 1 day - description: "" - }); - - vm.broadcast(); - eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); - } - - function tx_6() public { - _setupStrategyAndMultiplier(); - - IRewardsCoordinator.OperatorReward[] - memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( - 1 - ); - - operatorRewards[0] = IRewardsCoordinator.OperatorReward({ - operator: OPERATOR_EIGENYIELDS, - amount: 1e18 - }); - - operatorRewards = _sortAddressArrayAsc(operatorRewards); - - IRewardsCoordinator.OperatorDirectedRewardsSubmission[] - memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( - 1 - ); - - rewardsSubmissions[0] = IRewardsCoordinator - .OperatorDirectedRewardsSubmission({ - strategiesAndMultipliers: defaultStrategyAndMultipliers, - token: WETH, - operatorRewards: operatorRewards, - startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC - duration: uint32(518400), // 6 days - description: "" - }); - - vm.broadcast(); - eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); - } + // function tx_2() public { + // _setupStrategyAndMultiplier(); + + // IRewardsCoordinator.RewardsSubmission[] + // memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( + // 1 + // ); + + // rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ + // strategiesAndMultipliers: defaultStrategyAndMultipliers, + // token: WETH, + // amount: 1e18, + // startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + // duration: uint32(518400) // 6 days + // }); + + // vm.broadcast(); + // eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + // } + + // function tx_5() public { + // _setupStrategyAndMultiplier(); + + // IRewardsCoordinator.OperatorReward[] + // memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + // 2 + // ); + + // operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + // operator: OPERATOR_STAKELY, + // amount: 1e18 + // }); + // operatorRewards[1] = IRewardsCoordinator.OperatorReward({ + // operator: OPERATOR_EIGENYIELDS, + // amount: 1e18 + // }); + + // operatorRewards = _sortAddressArrayAsc(operatorRewards); + + // IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + // memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + // 1 + // ); + + // rewardsSubmissions[0] = IRewardsCoordinator + // .OperatorDirectedRewardsSubmission({ + // strategiesAndMultipliers: defaultStrategyAndMultipliers, + // token: WETH, + // operatorRewards: operatorRewards, + // startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC + // duration: uint32(86400), // 1 day + // description: "" + // }); + + // vm.broadcast(); + // eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + // } + + // function tx_6() public { + // _setupStrategyAndMultiplier(); + + // IRewardsCoordinator.OperatorReward[] + // memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + // 1 + // ); + + // operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + // operator: OPERATOR_EIGENYIELDS, + // amount: 1e18 + // }); + + // operatorRewards = _sortAddressArrayAsc(operatorRewards); + + // IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + // memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + // 1 + // ); + + // rewardsSubmissions[0] = IRewardsCoordinator + // .OperatorDirectedRewardsSubmission({ + // strategiesAndMultipliers: defaultStrategyAndMultipliers, + // token: WETH, + // operatorRewards: operatorRewards, + // startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + // duration: uint32(518400), // 6 days + // description: "" + // }); + + // vm.broadcast(); + // eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + // } } From 752c65587826b44a1811da51b0b259d8a1223790 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 20:17:14 -0500 Subject: [PATCH 07/22] fix: tx2 --- script/TestRewardsV2.s.sol | 39 ++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 3defcbe8..f1ed6746 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -51,7 +51,7 @@ contract TestRewardsV2 is Script { return defaultStrategyAndMultipliers; } - // Test Rewards v1 submission: Operator-avs split left unset + // Test Rewards v1 submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_1()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast function tx_1() public { IRewardsCoordinator.StrategyAndMultiplier[] @@ -65,7 +65,7 @@ contract TestRewardsV2 is Script { rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, token: WETH, - amount: 1e18, + amount: 1e18, // 1 WETH startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC duration: uint32(86400) // 1 day }); @@ -74,25 +74,28 @@ contract TestRewardsV2 is Script { eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); } - // function tx_2() public { - // _setupStrategyAndMultiplier(); + // Test Rewards v1 submission: Operator-avs split activated after startTimestamp and before duration end + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_2()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_2() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); - // IRewardsCoordinator.RewardsSubmission[] - // memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( - // 1 - // ); + IRewardsCoordinator.RewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( + 1 + ); - // rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ - // strategiesAndMultipliers: defaultStrategyAndMultipliers, - // token: WETH, - // amount: 1e18, - // startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC - // duration: uint32(518400) // 6 days - // }); + rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + amount: 1.2e18, // 1.2 WETH + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(518400) // 6 days + }); - // vm.broadcast(); - // eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); - // } + vm.broadcast(); + eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + } // function tx_5() public { // _setupStrategyAndMultiplier(); From 8570952d135c9c12f7f8a878864cdcaf7edfa337 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 20:31:08 -0500 Subject: [PATCH 08/22] feat: tx3 and tx4 --- script/TestRewardsV2.s.sol | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index f1ed6746..bd30786b 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -97,6 +97,52 @@ contract TestRewardsV2 is Script { eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); } + // Test PI v1 submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_2()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_3() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.RewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( + 1 + ); + + rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + amount: 1e18, // 1 WETH + startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC + duration: uint32(86400) // 1 day + }); + + vm.broadcast(); + rewardsCoordinator.createRewardsForAllEarners(rewardsSubmissions); + } + + // Test PI v1 submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_2()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_4() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.RewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( + 1 + ); + + rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + amount: 1.2e18, // 1.2 WETH + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(518400) // 6 days + }); + + vm.broadcast(); + rewardsCoordinator.createRewardsForAllEarners(rewardsSubmissions); + } + // function tx_5() public { // _setupStrategyAndMultiplier(); From f1f32a49fa8410d5fc006d6d56582a69cf373990 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 20:54:57 -0500 Subject: [PATCH 09/22] fix: tx5 --- script/TestRewardsV2.s.sol | 71 ++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index bd30786b..d961f553 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -98,7 +98,7 @@ contract TestRewardsV2 is Script { } // Test PI v1 submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp - // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_2()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_3()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast function tx_3() public { IRewardsCoordinator.StrategyAndMultiplier[] memory strategyAndMultipliers = _setupStrategyAndMultiplier(); @@ -121,7 +121,7 @@ contract TestRewardsV2 is Script { } // Test PI v1 submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp - // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_2()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_4()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast function tx_4() public { IRewardsCoordinator.StrategyAndMultiplier[] memory strategyAndMultipliers = _setupStrategyAndMultiplier(); @@ -143,43 +143,46 @@ contract TestRewardsV2 is Script { rewardsCoordinator.createRewardsForAllEarners(rewardsSubmissions); } - // function tx_5() public { - // _setupStrategyAndMultiplier(); - - // IRewardsCoordinator.OperatorReward[] - // memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( - // 2 - // ); + // Test Operator Directed Rewards Submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_5()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_5() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); - // operatorRewards[0] = IRewardsCoordinator.OperatorReward({ - // operator: OPERATOR_STAKELY, - // amount: 1e18 - // }); - // operatorRewards[1] = IRewardsCoordinator.OperatorReward({ - // operator: OPERATOR_EIGENYIELDS, - // amount: 1e18 - // }); + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 2 + ); - // operatorRewards = _sortAddressArrayAsc(operatorRewards); + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_STAKELY, + amount: 1e18 // 1 WETH + }); + operatorRewards[1] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_EIGENYIELDS, + amount: 1e18 // 1 WETH + }); - // IRewardsCoordinator.OperatorDirectedRewardsSubmission[] - // memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( - // 1 - // ); + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); - // rewardsSubmissions[0] = IRewardsCoordinator - // .OperatorDirectedRewardsSubmission({ - // strategiesAndMultipliers: defaultStrategyAndMultipliers, - // token: WETH, - // operatorRewards: operatorRewards, - // startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC - // duration: uint32(86400), // 1 day - // description: "" - // }); + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC + duration: uint32(86400), // 1 day + description: "" + }); - // vm.broadcast(); - // eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); - // } + vm.broadcast(); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + } // function tx_6() public { // _setupStrategyAndMultiplier(); From 663258eb41430d8e4e5f8ef8f02bbc6c4969dbf8 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 21:03:48 -0500 Subject: [PATCH 10/22] fix: tx6 --- script/TestRewardsV2.s.sol | 69 ++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index d961f553..4652f628 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -184,37 +184,40 @@ contract TestRewardsV2 is Script { ); } - // function tx_6() public { - // _setupStrategyAndMultiplier(); - - // IRewardsCoordinator.OperatorReward[] - // memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( - // 1 - // ); - - // operatorRewards[0] = IRewardsCoordinator.OperatorReward({ - // operator: OPERATOR_EIGENYIELDS, - // amount: 1e18 - // }); - - // operatorRewards = _sortAddressArrayAsc(operatorRewards); - - // IRewardsCoordinator.OperatorDirectedRewardsSubmission[] - // memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( - // 1 - // ); - - // rewardsSubmissions[0] = IRewardsCoordinator - // .OperatorDirectedRewardsSubmission({ - // strategiesAndMultipliers: defaultStrategyAndMultipliers, - // token: WETH, - // operatorRewards: operatorRewards, - // startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC - // duration: uint32(518400), // 6 days - // description: "" - // }); - - // vm.broadcast(); - // eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); - // } + // Test Operator Directed Rewards Submission: Operator-avs split activated after startTimestamp and before duration end + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_6()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_6() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_EIGENYIELDS, + amount: 1e18 // 1 WETH + }); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(518400), // 6 days + description: "" + }); + + vm.broadcast(); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + } } From abe5f66e892a68c0170bf073212e659624ab8064 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 21:08:17 -0500 Subject: [PATCH 11/22] refactor: cleanup --- script/TestRewardsV2.s.sol | 8 -------- 1 file changed, 8 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 4652f628..8f271e36 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -61,7 +61,6 @@ contract TestRewardsV2 is Script { memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 ); - rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, token: WETH, @@ -84,7 +83,6 @@ contract TestRewardsV2 is Script { memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 ); - rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, token: WETH, @@ -107,7 +105,6 @@ contract TestRewardsV2 is Script { memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 ); - rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, token: WETH, @@ -130,7 +127,6 @@ contract TestRewardsV2 is Script { memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 ); - rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, token: WETH, @@ -153,7 +149,6 @@ contract TestRewardsV2 is Script { memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( 2 ); - operatorRewards[0] = IRewardsCoordinator.OperatorReward({ operator: OPERATOR_STAKELY, amount: 1e18 // 1 WETH @@ -167,7 +162,6 @@ contract TestRewardsV2 is Script { memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 ); - rewardsSubmissions[0] = IRewardsCoordinator .OperatorDirectedRewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, @@ -194,7 +188,6 @@ contract TestRewardsV2 is Script { memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( 1 ); - operatorRewards[0] = IRewardsCoordinator.OperatorReward({ operator: OPERATOR_EIGENYIELDS, amount: 1e18 // 1 WETH @@ -204,7 +197,6 @@ contract TestRewardsV2 is Script { memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 ); - rewardsSubmissions[0] = IRewardsCoordinator .OperatorDirectedRewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, From d56f8a29a7bf8af5dfd06899d7c66ba49c223a55 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 21:17:30 -0500 Subject: [PATCH 12/22] feat: tx7 --- script/TestRewardsV2.s.sol | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 8f271e36..02a7948c 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -212,4 +212,39 @@ contract TestRewardsV2 is Script { rewardsSubmissions ); } + + // Test Operator Directed Rewards Submission: Operator not registered to avs for entire duration + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_7()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_7() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_XYZ, + amount: 1e18 // 1 WETH + }); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1734048000), // 2024-12-13 00:00:00 UTC + duration: uint32(259200), // 3 days + description: "" + }); + + vm.broadcast(); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + } } From 55b137839fe8228d25b582ce0e4ab7dceb96246b Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 21:39:47 -0500 Subject: [PATCH 13/22] feat: tx8, 9, 10 --- script/TestRewardsV2.s.sol | 105 +++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 02a7948c..f45a8fe2 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -247,4 +247,109 @@ contract TestRewardsV2 is Script { rewardsSubmissions ); } + + // Test Operator Directed Rewards Submission: Operator not registered to avs for partial duration + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_8()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_8() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_XYZ, + amount: 1e18 // 1 WETH + }); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1733702400), // 2024-12-09 00:00:00 UTC + duration: uint32(604800), // 7 days + description: "" + }); + + vm.broadcast(); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + } + + // Test Operator Directed Rewards Submission: Staker (0x9999Ee8B5cBA0688DbD4c4Cbbb821800758FbCDD) has withdrawal queued during the duration. + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_9()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_9() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_GALAXY, + amount: 1e18 // 1 WETH + }); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(518400), // 6 days + description: "" + }); + + vm.broadcast(); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + } + + // Test Operator Directed Rewards Submission: Staker (0x17C1c083e46F3924C33da32e4Aa117724DEcdc33) is undelegated during the duration. + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_10()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_10() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_SINOPMM, + amount: 1e18 // 1 WETH + }); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(518400), // 6 days + description: "" + }); + + vm.broadcast(); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + } } From 28b126c8899683202c072c40d30c9d3a0e4679cb Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 22:11:55 -0500 Subject: [PATCH 14/22] fix: approvals --- script/TestRewardsV2.s.sol | 46 +++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index f45a8fe2..0dbd044d 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -51,12 +51,24 @@ contract TestRewardsV2 is Script { return defaultStrategyAndMultipliers; } + function _calculateTotalAmount( + IRewardsCoordinator.OperatorReward[] memory operatorRewards + ) internal pure returns (uint256) { + uint256 totalAmount = 0; + for (uint256 i = 0; i < operatorRewards.length; i++) { + totalAmount += operatorRewards[i].amount; + } + return totalAmount; + } + // Test Rewards v1 submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_1()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast function tx_1() public { IRewardsCoordinator.StrategyAndMultiplier[] memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + uint256 amount = 1e18; // 1 WETH + IRewardsCoordinator.RewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 @@ -64,13 +76,15 @@ contract TestRewardsV2 is Script { rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, token: WETH, - amount: 1e18, // 1 WETH + amount: amount, startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC duration: uint32(86400) // 1 day }); - vm.broadcast(); + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), amount); eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + vm.stopBroadcast(); } // Test Rewards v1 submission: Operator-avs split activated after startTimestamp and before duration end @@ -79,6 +93,8 @@ contract TestRewardsV2 is Script { IRewardsCoordinator.StrategyAndMultiplier[] memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + uint256 amount = 1.2e18; // 1.2 WETH + IRewardsCoordinator.RewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 @@ -86,13 +102,15 @@ contract TestRewardsV2 is Script { rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, token: WETH, - amount: 1.2e18, // 1.2 WETH + amount: amount, startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC duration: uint32(518400) // 6 days }); - vm.broadcast(); + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), amount); eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + vm.stopBroadcast(); } // Test PI v1 submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp @@ -101,6 +119,8 @@ contract TestRewardsV2 is Script { IRewardsCoordinator.StrategyAndMultiplier[] memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + uint256 amount = 1e18; // 1 WETH + IRewardsCoordinator.RewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 @@ -108,13 +128,15 @@ contract TestRewardsV2 is Script { rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, token: WETH, - amount: 1e18, // 1 WETH + amount: amount, startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC duration: uint32(86400) // 1 day }); - vm.broadcast(); - rewardsCoordinator.createRewardsForAllEarners(rewardsSubmissions); + vm.startBroadcast(); + WETH.approve(address(rewardsCoordinator), amount); + rewardsCoordinator.createAVSRewardsSubmission(rewardsSubmissions); + vm.stopBroadcast(); } // Test PI v1 submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp @@ -123,6 +145,8 @@ contract TestRewardsV2 is Script { IRewardsCoordinator.StrategyAndMultiplier[] memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + uint256 amount = 1.2e18; // 1.2 WETH + IRewardsCoordinator.RewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( 1 @@ -130,13 +154,15 @@ contract TestRewardsV2 is Script { rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ strategiesAndMultipliers: strategyAndMultipliers, token: WETH, - amount: 1.2e18, // 1.2 WETH + amount: amount, startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC duration: uint32(518400) // 6 days }); - vm.broadcast(); - rewardsCoordinator.createRewardsForAllEarners(rewardsSubmissions); + vm.startBroadcast(); + WETH.approve(address(rewardsCoordinator), amount); + rewardsCoordinator.createAVSRewardsSubmission(rewardsSubmissions); + vm.stopBroadcast(); } // Test Operator Directed Rewards Submission: 1. Operator-avs split left unset, 2. Operator-avs split activated before startTimestamp From 11334bb3f849359d71807d74b59914ed07520f0d Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 22:14:57 -0500 Subject: [PATCH 15/22] fix: approvals --- script/TestRewardsV2.s.sol | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 0dbd044d..eb69a77b 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -184,6 +184,8 @@ contract TestRewardsV2 is Script { amount: 1e18 // 1 WETH }); + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 @@ -198,10 +200,12 @@ contract TestRewardsV2 is Script { description: "" }); - vm.broadcast(); + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( rewardsSubmissions ); + vm.stopBroadcast(); } // Test Operator Directed Rewards Submission: Operator-avs split activated after startTimestamp and before duration end @@ -219,6 +223,8 @@ contract TestRewardsV2 is Script { amount: 1e18 // 1 WETH }); + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 @@ -233,10 +239,12 @@ contract TestRewardsV2 is Script { description: "" }); - vm.broadcast(); + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( rewardsSubmissions ); + vm.stopBroadcast(); } // Test Operator Directed Rewards Submission: Operator not registered to avs for entire duration @@ -254,6 +262,8 @@ contract TestRewardsV2 is Script { amount: 1e18 // 1 WETH }); + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 @@ -268,10 +278,12 @@ contract TestRewardsV2 is Script { description: "" }); - vm.broadcast(); + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( rewardsSubmissions ); + vm.stopBroadcast(); } // Test Operator Directed Rewards Submission: Operator not registered to avs for partial duration @@ -289,6 +301,8 @@ contract TestRewardsV2 is Script { amount: 1e18 // 1 WETH }); + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 @@ -303,10 +317,12 @@ contract TestRewardsV2 is Script { description: "" }); - vm.broadcast(); + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( rewardsSubmissions ); + vm.stopBroadcast(); } // Test Operator Directed Rewards Submission: Staker (0x9999Ee8B5cBA0688DbD4c4Cbbb821800758FbCDD) has withdrawal queued during the duration. @@ -324,6 +340,8 @@ contract TestRewardsV2 is Script { amount: 1e18 // 1 WETH }); + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 @@ -338,10 +356,12 @@ contract TestRewardsV2 is Script { description: "" }); - vm.broadcast(); + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( rewardsSubmissions ); + vm.stopBroadcast(); } // Test Operator Directed Rewards Submission: Staker (0x17C1c083e46F3924C33da32e4Aa117724DEcdc33) is undelegated during the duration. @@ -359,6 +379,8 @@ contract TestRewardsV2 is Script { amount: 1e18 // 1 WETH }); + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( 1 @@ -373,9 +395,11 @@ contract TestRewardsV2 is Script { description: "" }); - vm.broadcast(); + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( rewardsSubmissions ); + vm.stopBroadcast(); } } From 498c08de40e00ebcfdcb7aed4875a73d521b374b Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 22:19:01 -0500 Subject: [PATCH 16/22] fix: amount --- script/TestRewardsV2.s.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index eb69a77b..090aa48b 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -220,7 +220,7 @@ contract TestRewardsV2 is Script { ); operatorRewards[0] = IRewardsCoordinator.OperatorReward({ operator: OPERATOR_EIGENYIELDS, - amount: 1e18 // 1 WETH + amount: 1.2e18 // 1.2 WETH }); uint256 totalAmount = _calculateTotalAmount(operatorRewards); From 63c0ea211cf6dcdbd34cc7dd38d7b571957e3951 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Mon, 16 Dec 2024 22:48:15 -0500 Subject: [PATCH 17/22] fix: amounts --- script/TestRewardsV2.s.sol | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 090aa48b..f0dce07e 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -259,7 +259,7 @@ contract TestRewardsV2 is Script { ); operatorRewards[0] = IRewardsCoordinator.OperatorReward({ operator: OPERATOR_XYZ, - amount: 1e18 // 1 WETH + amount: 0.9e18 // 0.9 WETH }); uint256 totalAmount = _calculateTotalAmount(operatorRewards); @@ -298,7 +298,7 @@ contract TestRewardsV2 is Script { ); operatorRewards[0] = IRewardsCoordinator.OperatorReward({ operator: OPERATOR_XYZ, - amount: 1e18 // 1 WETH + amount: 1.4e18 // 1.4 WETH }); uint256 totalAmount = _calculateTotalAmount(operatorRewards); @@ -337,7 +337,7 @@ contract TestRewardsV2 is Script { ); operatorRewards[0] = IRewardsCoordinator.OperatorReward({ operator: OPERATOR_GALAXY, - amount: 1e18 // 1 WETH + amount: 1.2e18 // 1.2 WETH }); uint256 totalAmount = _calculateTotalAmount(operatorRewards); @@ -376,7 +376,7 @@ contract TestRewardsV2 is Script { ); operatorRewards[0] = IRewardsCoordinator.OperatorReward({ operator: OPERATOR_SINOPMM, - amount: 1e18 // 1 WETH + amount: 1.2e18 // 1.2 WETH }); uint256 totalAmount = _calculateTotalAmount(operatorRewards); From b42ee847e383f4817c4db47727d72ba4ca9209d5 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Tue, 17 Dec 2024 17:55:27 -0500 Subject: [PATCH 18/22] feat: tx11, 12, 13 --- script/TestRewardsV2.s.sol | 117 +++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index f0dce07e..7a9ebf80 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -402,4 +402,121 @@ contract TestRewardsV2 is Script { ); vm.stopBroadcast(); } + + // Test Operator Directed Rewards Submission: Dust payment of 1 wei over 1 day duration + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_11()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_11() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_STAKELY, + amount: 1 // 1e-18 WETH (1 wei) + }); + + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1734220800), // 2024-12-15 00:00:00 UTC + duration: uint32(86400), // 1 day + description: "" + }); + + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + vm.stopBroadcast(); + } + + // Test Operator Directed Rewards Submission: Dust payment of 1 wei over 6 days duration + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_12()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_12() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_STAKELY, + amount: 1 // 1e-18 WETH (1 wei) + }); + + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(518400), // 6 days + description: "" + }); + + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + vm.stopBroadcast(); + } + + // Test Operator Directed Rewards Submission: Dust payment of 60 wei over 6 days duration + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_13()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_13() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_STAKELY, + amount: 60 // 60e-18 WETH (1 wei) + }); + + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(518400), // 6 days + description: "" + }); + + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + vm.stopBroadcast(); + } } From 994b4e2fc31d7a203dd100f67117b340144a83ad Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Fri, 20 Dec 2024 18:46:15 -0500 Subject: [PATCH 19/22] feat: tx14 --- script/TestRewardsV2.s.sol | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 7a9ebf80..8b3fa618 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -22,6 +22,7 @@ contract TestRewardsV2 is Script { address OPERATOR_XYZ = 0x758E016468E5E90cDB42e743881C2e921d8e7bF8; address OPERATOR_GALAXY = 0x0a3e3d83C99B27cA7540720b54105C79Cd58dbdD; address OPERATOR_SINOPMM = 0xB25430A1Ba8F2033834Ba30AAB8279CB1Cb6c9a6; + address OPERATOR_EIGENLABS = 0x5f8C207382426D3f7F248E6321Cf93B34e66d6b9; //strategies IStrategy STRATEGY_WETH = @@ -519,4 +520,43 @@ contract TestRewardsV2 is Script { ); vm.stopBroadcast(); } + + // Test Operator Directed Rewards Submission: Dust payment of 60 wei over 6 days duration + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_14()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_14() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + IRewardsCoordinator.OperatorReward[] + memory operatorRewards = new IRewardsCoordinator.OperatorReward[]( + 1 + ); + operatorRewards[0] = IRewardsCoordinator.OperatorReward({ + operator: OPERATOR_EIGENLABS, + amount: 0.8e18 // 0.8 WETH + }); + + uint256 totalAmount = _calculateTotalAmount(operatorRewards); + + IRewardsCoordinator.OperatorDirectedRewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.OperatorDirectedRewardsSubmission[]( + 1 + ); + rewardsSubmissions[0] = IRewardsCoordinator + .OperatorDirectedRewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + operatorRewards: operatorRewards, + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(864000), // 10 days + description: "" + }); + + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), totalAmount); + eigenDAServiceManager.createOperatorDirectedAVSRewardsSubmission( + rewardsSubmissions + ); + vm.stopBroadcast(); + } } From c61346f3f1fb3bd0b1cf81e525f4bfd060569ca6 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Fri, 20 Dec 2024 19:07:46 -0500 Subject: [PATCH 20/22] fix: cancun --- foundry.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/foundry.toml b/foundry.toml index 4e13d2e8..bd5f75a1 100644 --- a/foundry.toml +++ b/foundry.toml @@ -16,6 +16,7 @@ optimizer_runs = 200 via_ir = false # Override the Solidity version (this overrides `auto_detect_solc`) solc_version = '0.8.12' +evm_version = 'cancun' [fmt] bracket_spacing = false From 75ea08f174a1162cd47e79f982e3b32a7146139b Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Fri, 20 Dec 2024 19:09:43 -0500 Subject: [PATCH 21/22] fix: tx14 --- script/TestRewardsV2.s.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 8b3fa618..6cc775dd 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -533,7 +533,7 @@ contract TestRewardsV2 is Script { ); operatorRewards[0] = IRewardsCoordinator.OperatorReward({ operator: OPERATOR_EIGENLABS, - amount: 0.8e18 // 0.8 WETH + amount: 0.9e18 // 0.9 WETH }); uint256 totalAmount = _calculateTotalAmount(operatorRewards); @@ -548,7 +548,7 @@ contract TestRewardsV2 is Script { token: WETH, operatorRewards: operatorRewards, startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC - duration: uint32(864000), // 10 days + duration: uint32(950400), // 11 days description: "" }); From bdadc6538db1b5c95339a211bdd054a19e67c5b7 Mon Sep 17 00:00:00 2001 From: 0xrajath Date: Fri, 20 Dec 2024 19:29:56 -0500 Subject: [PATCH 22/22] feat: tx15 --- script/TestRewardsV2.s.sol | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/script/TestRewardsV2.s.sol b/script/TestRewardsV2.s.sol index 6cc775dd..0bdea8a7 100644 --- a/script/TestRewardsV2.s.sol +++ b/script/TestRewardsV2.s.sol @@ -521,7 +521,7 @@ contract TestRewardsV2 is Script { vm.stopBroadcast(); } - // Test Operator Directed Rewards Submission: Dust payment of 60 wei over 6 days duration + // Test Operator Directed Rewards Submission: 1. Edge case commissions of 0 and 10000 bips. 2. Two split setting in the same day. // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_14()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast function tx_14() public { IRewardsCoordinator.StrategyAndMultiplier[] @@ -559,4 +559,30 @@ contract TestRewardsV2 is Script { ); vm.stopBroadcast(); } + + // Test Rewards v1 Submission: 1. Edge case commissions of 0 and 10000 bips. 2. Two split setting in the same day. + // forge script script/TestRewardsV2.s.sol:TestRewardsV2 --rpc-url '' --sig 'tx_15()' --private-key '<0xDA29BB71669f46F2a779b4b62f03644A84eE3479_PRIV_KEY>' -vvvv --broadcast + function tx_15() public { + IRewardsCoordinator.StrategyAndMultiplier[] + memory strategyAndMultipliers = _setupStrategyAndMultiplier(); + + uint256 amount = 1e18; // 1 WETH + + IRewardsCoordinator.RewardsSubmission[] + memory rewardsSubmissions = new IRewardsCoordinator.RewardsSubmission[]( + 1 + ); + rewardsSubmissions[0] = IRewardsCoordinator.RewardsSubmission({ + strategiesAndMultipliers: strategyAndMultipliers, + token: WETH, + amount: amount, + startTimestamp: uint32(1733788800), // 2024-12-10 00:00:00 UTC + duration: uint32(950400) // 11 days + }); + + vm.startBroadcast(); + WETH.approve(address(eigenDAServiceManager), amount); + eigenDAServiceManager.createAVSRewardsSubmission(rewardsSubmissions); + vm.stopBroadcast(); + } }