Skip to content

Commit a4cb2d4

Browse files
authored
Merge pull request #1099 from graphprotocol/mde/horizon-event-changes
2 parents 11a993b + 7e10b2e commit a4cb2d4

File tree

5 files changed

+39
-32
lines changed

5 files changed

+39
-32
lines changed

packages/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ interface IHorizonStakingBase {
2222
* @param serviceProvider The address of the service provider.
2323
* @param tokens The amount of tokens staked.
2424
*/
25-
event StakeDeposited(address indexed serviceProvider, uint256 tokens);
25+
event HorizonStakeDeposited(address indexed serviceProvider, uint256 tokens);
2626

2727
/**
2828
* @notice Thrown when using an invalid thaw request type.

packages/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ interface IHorizonStakingMain {
2424
* @param tokens The amount of tokens unstaked
2525
* @param until The block number until the stake is locked
2626
*/
27-
event StakeLocked(address indexed serviceProvider, uint256 tokens, uint256 until);
27+
event HorizonStakeLocked(address indexed serviceProvider, uint256 tokens, uint256 until);
2828

2929
/**
3030
* @notice Emitted when a service provider withdraws tokens during the transition period.
3131
* @param serviceProvider The address of the service provider
3232
* @param tokens The amount of tokens withdrawn
3333
*/
34-
event StakeWithdrawn(address indexed serviceProvider, uint256 tokens);
34+
event HorizonStakeWithdrawn(address indexed serviceProvider, uint256 tokens);
3535

3636
// -- Events: provision --
3737

@@ -169,12 +169,14 @@ interface IHorizonStakingMain {
169169
* @param verifier The address of the verifier
170170
* @param delegator The address of the delegator
171171
* @param tokens The amount of tokens delegated
172+
* @param shares The amount of shares delegated
172173
*/
173174
event TokensDelegated(
174175
address indexed serviceProvider,
175176
address indexed verifier,
176177
address indexed delegator,
177-
uint256 tokens
178+
uint256 tokens,
179+
uint256 shares
178180
);
179181

180182
/**
@@ -484,7 +486,7 @@ interface IHorizonStakingMain {
484486
* - `_tokens` cannot be zero.
485487
* - Caller must have previously approved this contract to pull tokens from their balance.
486488
*
487-
* Emits a {StakeDeposited} event.
489+
* Emits a {HorizonStakeDeposited} event.
488490
*
489491
* @param tokens Amount of tokens to stake
490492
*/
@@ -498,7 +500,7 @@ interface IHorizonStakingMain {
498500
* - `_tokens` cannot be zero.
499501
* - Caller must have previously approved this contract to pull tokens from their balance.
500502
*
501-
* Emits a {StakeDeposited} event.
503+
* Emits a {HorizonStakeDeposited} event.
502504
*
503505
* @param serviceProvider Address of the service provider
504506
* @param tokens Amount of tokens to stake
@@ -514,7 +516,7 @@ interface IHorizonStakingMain {
514516
* - `_tokens` cannot be zero.
515517
* - Caller must have previously approved this contract to pull tokens from their balance.
516518
*
517-
* Emits {StakeDeposited} and {ProvisionIncreased} events.
519+
* Emits {HorizonStakeDeposited} and {ProvisionIncreased} events.
518520
*
519521
* @param serviceProvider Address of the service provider
520522
* @param verifier Address of the verifier
@@ -535,8 +537,8 @@ interface IHorizonStakingMain {
535537
* - `_serviceProvider` must have enough idle stake to cover the staking amount and any
536538
* legacy allocation.
537539
*
538-
* Emits a {StakeLocked} event during the transition period.
539-
* Emits a {StakeWithdrawn} event after the transition period.
540+
* Emits a {HorizonStakeLocked} event during the transition period.
541+
* Emits a {HorizonStakeWithdrawn} event after the transition period.
540542
*
541543
* @param tokens Amount of tokens to unstake
542544
*/

packages/horizon/contracts/staking/HorizonStaking.sol

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain {
652652
if (lockingPeriod == 0) {
653653
sp.tokensStaked = stakedTokens - _tokens;
654654
_graphToken().pushTokens(serviceProvider, _tokens);
655-
emit StakeWithdrawn(serviceProvider, _tokens);
655+
emit HorizonStakeWithdrawn(serviceProvider, _tokens);
656656
} else {
657657
// Before locking more tokens, withdraw any unlocked ones if possible
658658
if (sp.__DEPRECATED_tokensLocked != 0 && block.number >= sp.__DEPRECATED_tokensLockedUntil) {
@@ -672,7 +672,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain {
672672
// Update balances
673673
sp.__DEPRECATED_tokensLocked = sp.__DEPRECATED_tokensLocked + _tokens;
674674
sp.__DEPRECATED_tokensLockedUntil = block.number + lockingPeriod;
675-
emit StakeLocked(serviceProvider, sp.__DEPRECATED_tokensLocked, sp.__DEPRECATED_tokensLockedUntil);
675+
emit HorizonStakeLocked(serviceProvider, sp.__DEPRECATED_tokensLocked, sp.__DEPRECATED_tokensLockedUntil);
676676
}
677677
}
678678

@@ -699,7 +699,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain {
699699
// Return tokens to the service provider
700700
_graphToken().pushTokens(_serviceProvider, tokensToWithdraw);
701701

702-
emit StakeWithdrawn(_serviceProvider, tokensToWithdraw);
702+
emit HorizonStakeWithdrawn(_serviceProvider, tokensToWithdraw);
703703
}
704704

705705
/**
@@ -866,7 +866,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain {
866866

867867
delegation.shares = delegation.shares + shares;
868868

869-
emit TokensDelegated(_serviceProvider, _verifier, msg.sender, _tokens);
869+
emit TokensDelegated(_serviceProvider, _verifier, msg.sender, _tokens, shares);
870870
}
871871

872872
/**
@@ -978,10 +978,9 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain {
978978
_delegate(_newServiceProvider, _newVerifier, tokensThawed, _minSharesForNewProvider);
979979
} else {
980980
_graphToken().pushTokens(msg.sender, tokensThawed);
981+
emit DelegatedTokensWithdrawn(_serviceProvider, _verifier, msg.sender, tokensThawed);
981982
}
982983
}
983-
984-
emit DelegatedTokensWithdrawn(_serviceProvider, _verifier, msg.sender, tokensThawed);
985984
}
986985

987986
/**

packages/horizon/contracts/staking/HorizonStakingBase.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,13 +253,13 @@ abstract contract HorizonStakingBase is
253253
* @dev TODO: After transition period move to IHorizonStakingMain. Temporarily it
254254
* needs to be here since it's used by both {HorizonStaking} and {HorizonStakingExtension}.
255255
*
256-
* Emits a {StakeDeposited} event.
256+
* Emits a {HorizonStakeDeposited} event.
257257
* @param _serviceProvider The address of the service provider.
258258
* @param _tokens The amount of tokens to deposit.
259259
*/
260260
function _stake(address _serviceProvider, uint256 _tokens) internal {
261261
_serviceProviders[_serviceProvider].tokensStaked = _serviceProviders[_serviceProvider].tokensStaked + _tokens;
262-
emit StakeDeposited(_serviceProvider, _tokens);
262+
emit HorizonStakeDeposited(_serviceProvider, _tokens);
263263
}
264264

265265
/**

packages/horizon/test/shared/horizon-staking/HorizonStakingShared.t.sol

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest {
160160
// stakeTo
161161
token.approve(address(staking), tokens);
162162
vm.expectEmit();
163-
emit IHorizonStakingBase.StakeDeposited(serviceProvider, tokens);
163+
emit IHorizonStakingBase.HorizonStakeDeposited(serviceProvider, tokens);
164164
staking.stakeTo(serviceProvider, tokens);
165165

166166
// after
@@ -209,15 +209,15 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest {
209209
// unstake
210210
if (deprecatedThawingPeriod == 0) {
211211
vm.expectEmit(address(staking));
212-
emit IHorizonStakingMain.StakeWithdrawn(msgSender, _tokens);
212+
emit IHorizonStakingMain.HorizonStakeWithdrawn(msgSender, _tokens);
213213
} else {
214214
if (withdrawCalled) {
215215
vm.expectEmit(address(staking));
216-
emit IHorizonStakingMain.StakeWithdrawn(msgSender, beforeServiceProvider.__DEPRECATED_tokensLocked);
216+
emit IHorizonStakingMain.HorizonStakeWithdrawn(msgSender, beforeServiceProvider.__DEPRECATED_tokensLocked);
217217
}
218218

219219
vm.expectEmit(address(staking));
220-
emit IHorizonStakingMain.StakeLocked(
220+
emit IHorizonStakingMain.HorizonStakeLocked(
221221
msgSender,
222222
withdrawCalled ? _tokens : beforeServiceProvider.__DEPRECATED_tokensLocked + _tokens,
223223
block.number + deprecatedThawingPeriod
@@ -278,7 +278,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest {
278278

279279
// withdraw
280280
vm.expectEmit(address(staking));
281-
emit IHorizonStakingMain.StakeWithdrawn(msgSender, beforeServiceProvider.__DEPRECATED_tokensLocked);
281+
emit IHorizonStakingMain.HorizonStakeWithdrawn(msgSender, beforeServiceProvider.__DEPRECATED_tokensLocked);
282282
staking.withdraw();
283283

284284
// after
@@ -864,7 +864,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest {
864864
// delegate
865865
token.approve(address(staking), tokens);
866866
vm.expectEmit();
867-
emit IHorizonStakingMain.TokensDelegated(serviceProvider, verifier, delegator, tokens);
867+
emit IHorizonStakingMain.TokensDelegated(serviceProvider, verifier, delegator, tokens, calcShares);
868868
if (legacy) {
869869
staking.delegate(serviceProvider, tokens);
870870
} else {
@@ -1141,20 +1141,22 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest {
11411141
params.newServiceProvider,
11421142
params.newVerifier,
11431143
msgSender,
1144-
calcValues.tokensThawed
1144+
calcValues.tokensThawed,
1145+
calcValues.sharesThawed
11451146
);
11461147
} else {
11471148
emit Transfer(address(staking), msgSender, calcValues.tokensThawed);
1149+
1150+
vm.expectEmit();
1151+
emit IHorizonStakingMain.DelegatedTokensWithdrawn(
1152+
params.serviceProvider,
1153+
params.verifier,
1154+
msgSender,
1155+
calcValues.tokensThawed
1156+
);
11481157
}
11491158
}
1150-
vm.expectEmit();
11511159

1152-
emit IHorizonStakingMain.DelegatedTokensWithdrawn(
1153-
params.serviceProvider,
1154-
params.verifier,
1155-
msgSender,
1156-
calcValues.tokensThawed
1157-
);
11581160
if (reDelegate) {
11591161
staking.redelegate(
11601162
params.serviceProvider,
@@ -2226,6 +2228,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest {
22262228
struct CalcValues_ThawRequestData {
22272229
uint256 tokensThawed;
22282230
uint256 tokensThawing;
2231+
uint256 sharesThawed;
22292232
uint256 sharesThawing;
22302233
ThawRequest[] thawRequestsFulfilledList;
22312234
bytes32[] thawRequestsFulfilledListIds;
@@ -2256,13 +2259,14 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest {
22562259
params.owner
22572260
);
22582261
if (thawRequestList.count == 0) {
2259-
return CalcValues_ThawRequestData(0, 0, 0, new ThawRequest[](0), new bytes32[](0), new uint256[](0));
2262+
return CalcValues_ThawRequestData(0, 0, 0, 0, new ThawRequest[](0), new bytes32[](0), new uint256[](0));
22602263
}
22612264

22622265
Provision memory prov = staking.getProvision(params.serviceProvider, params.verifier);
22632266
DelegationPool memory pool = staking.getDelegationPool(params.serviceProvider, params.verifier);
22642267

22652268
uint256 tokensThawed = 0;
2269+
uint256 sharesThawed = 0;
22662270
uint256 tokensThawing = params.delegation ? pool.tokensThawing : prov.tokensThawing;
22672271
uint256 sharesThawing = params.delegation ? pool.sharesThawing : prov.sharesThawing;
22682272
uint256 thawRequestsFulfilled = 0;
@@ -2279,6 +2283,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest {
22792283
: (thawRequest.shares * prov.tokensThawing) / prov.sharesThawing;
22802284
tokensThawed += tokens;
22812285
tokensThawing -= tokens;
2286+
sharesThawed += thawRequest.shares;
22822287
sharesThawing -= thawRequest.shares;
22832288
}
22842289
} else {
@@ -2291,6 +2296,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest {
22912296
CalcValues_ThawRequestData memory thawRequestData;
22922297
thawRequestData.tokensThawed = tokensThawed;
22932298
thawRequestData.tokensThawing = tokensThawing;
2299+
thawRequestData.sharesThawed = sharesThawed;
22942300
thawRequestData.sharesThawing = sharesThawing;
22952301
thawRequestData.thawRequestsFulfilledList = new ThawRequest[](thawRequestsFulfilled);
22962302
thawRequestData.thawRequestsFulfilledListIds = new bytes32[](thawRequestsFulfilled);

0 commit comments

Comments
 (0)