Skip to content

Commit

Permalink
Add receiver parameter to getReward
Browse files Browse the repository at this point in the history
  • Loading branch information
sunbreak1211 committed Dec 8, 2023
1 parent 35ccc9d commit 7bfb412
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 10 deletions.
8 changes: 4 additions & 4 deletions src/LockstakeEngine.sol
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ contract LockstakeEngine {
event SelectFarm(address indexed urn, address farm);
event Stake(address indexed urn, address indexed farm, uint256 wad, uint16 ref);
event Withdraw(address indexed urn, address indexed farm, uint256 wad);
event GetReward(address indexed urn, address indexed farm);
event GetReward(address indexed urn, address indexed farm, address indexed to, uint256 amt);
event OnKick(address indexed urn, uint256 wad);
event OnTake(address indexed urn, address indexed who, uint256 wad);
event OnTakeLeftovers(address indexed urn, uint256 tot, uint256 left, uint256 burn);
Expand Down Expand Up @@ -289,9 +289,9 @@ contract LockstakeEngine {
emit Withdraw(urn, selectedFarmUrn, wad);
}

function getReward(address urn, address farm) external urnOwner(urn) {
LockstakeUrn(urn).getReward(farm, msg.sender);
emit GetReward(urn, farm);
function getReward(address urn, address farm, address to) external urnOwner(urn) {
uint256 amt = LockstakeUrn(urn).getReward(farm, to);
emit GetReward(urn, farm, to, amt);
}

// --- liquidation callback functions ---
Expand Down
5 changes: 3 additions & 2 deletions src/LockstakeUrn.sol
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,10 @@ contract LockstakeUrn {
StakingRewardsLike(farm).withdraw(wad);
}

function getReward(address farm, address usr) external isEngine {
function getReward(address farm, address to) external isEngine returns (uint256 amt) {
StakingRewardsLike(farm).getReward();
GemLike rewardsToken = StakingRewardsLike(farm).rewardsToken();
rewardsToken.transfer(usr, rewardsToken.balanceOf(address(this)));
amt = rewardsToken.balanceOf(address(this));
rewardsToken.transfer(to, amt);
}
}
8 changes: 4 additions & 4 deletions test/LockstakeEngine.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ contract AllocatorVaultTest is DssTest {
event SelectFarm(address indexed urn, address farm);
event Stake(address indexed urn, address indexed farm, uint256 wad, uint16 ref);
event Withdraw(address indexed urn, address indexed farm, uint256 wad);
event GetReward(address indexed urn, address indexed farm);
event GetReward(address indexed urn, address indexed farm, address indexed to, uint256 amt);
event OnKick(address indexed urn, uint256 wad);
event OnTake(address indexed urn, address indexed who, uint256 wad);
event OnTakeLeftovers(address indexed urn, uint256 tot, uint256 left, uint256 burn);
Expand Down Expand Up @@ -396,9 +396,9 @@ contract AllocatorVaultTest is DssTest {
farm.setReward(address(urn), 20_000);
assertEq(GemMock(address(farm.rewardsToken())).balanceOf(address(this)), 0);
vm.expectEmit(true, true, true, true);
emit GetReward(urn, address(farm));
engine.getReward(urn, address(farm));
assertEq(GemMock(address(farm.rewardsToken())).balanceOf(address(this)), 20_000);
emit GetReward(urn, address(farm), address(123), 20_000);
engine.getReward(urn, address(farm), address(123));
assertEq(GemMock(address(farm.rewardsToken())).balanceOf(address(123)), 20_000);
}

function _clipperSetUp(bool withDelegate) internal returns (address urn) {
Expand Down

0 comments on commit 7bfb412

Please sign in to comment.