Skip to content

Commit 6a1e489

Browse files
committed
fix(protocol-contracts): remove unused requestId from RedeemRequest event (L-02)
1 parent 1a6d91c commit 6a1e489

File tree

2 files changed

+59
-20
lines changed

2 files changed

+59
-20
lines changed

protocol-contracts/staking/contracts/OperatorStaking.sol

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,13 @@ contract OperatorStaking is ERC1363Upgradeable, ReentrancyGuardTransient, UUPSUp
5959
* @dev Emitted when a redeem request is made.
6060
* @param controller The controller address for the redeem request.
6161
* @param owner The owner of the shares being redeemed.
62-
* @param requestId The unique identifier for the redeem request.
6362
* @param sender The address that initiated the redeem request.
6463
* @param shares The number of shares requested to redeem.
6564
* @param releaseTime The timestamp when the shares can be released.
6665
*/
6766
event RedeemRequest(
6867
address indexed controller,
6968
address indexed owner,
70-
uint256 indexed requestId,
7169
address sender,
7270
uint256 shares,
7371
uint48 releaseTime
@@ -217,7 +215,7 @@ contract OperatorStaking is ERC1363Upgradeable, ReentrancyGuardTransient, UUPSUp
217215
assert(releaseTime >= lastReleaseTime); // should never happen
218216
$._redeemRequests[controller].push(releaseTime, controllerSharesRedeemed + shares);
219217

220-
emit RedeemRequest(controller, ownerRedeem, 0, msg.sender, shares, releaseTime);
218+
emit RedeemRequest(controller, ownerRedeem, msg.sender, shares, releaseTime);
221219

222220
return releaseTime;
223221
}

protocol-contracts/staking/test/OperatorStaking.test.ts

Lines changed: 58 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,6 @@ describe('OperatorStaking', function () {
226226
.withArgs(
227227
this.delegator1,
228228
this.delegator1,
229-
0,
230229
this.delegator1,
231230
ethers.parseEther('1'),
232231
BigInt(currentTimestamp) + 1n + (await this.protocolStaking.unstakeCooldownPeriod()),
@@ -258,8 +257,16 @@ describe('OperatorStaking', function () {
258257
it('should not redeem twice', async function () {
259258
await this.mock.connect(this.delegator2).deposit(ethers.parseEther('5'), this.delegator2);
260259
await this.mock.connect(this.delegator1).deposit(ethers.parseEther('10'), this.delegator1);
261-
await this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1);
262-
await this.mock.connect(this.delegator2).requestRedeem(ethers.parseEther('1'), this.delegator2, this.delegator2);
260+
await expect(
261+
this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1),
262+
)
263+
.to.emit(this.mock, 'RedeemRequest')
264+
.withArgs(this.delegator1, this.delegator1, this.delegator1, ethers.parseEther('1'), anyValue);
265+
await expect(
266+
this.mock.connect(this.delegator2).requestRedeem(ethers.parseEther('1'), this.delegator2, this.delegator2),
267+
)
268+
.to.emit(this.mock, 'RedeemRequest')
269+
.withArgs(this.delegator2, this.delegator2, this.delegator2, ethers.parseEther('1'), anyValue);
263270

264271
await timeIncreaseNoMine(60);
265272

@@ -285,7 +292,11 @@ describe('OperatorStaking', function () {
285292

286293
it('should revert on redeem more than available', async function () {
287294
await this.mock.connect(this.delegator1).deposit(ethers.parseEther('10'), this.delegator1);
288-
await this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1);
295+
await expect(
296+
this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1),
297+
)
298+
.to.emit(this.mock, 'RedeemRequest')
299+
.withArgs(this.delegator1, this.delegator1, this.delegator1, ethers.parseEther('1'), anyValue);
289300

290301
await timeIncreaseNoMine(10);
291302
await expect(this.mock.connect(this.delegator1).redeem(ethers.parseEther('1'), this.delegator1, this.delegator1))
@@ -295,15 +306,23 @@ describe('OperatorStaking', function () {
295306

296307
it('should be able to redeem a second time', async function () {
297308
await this.mock.connect(this.delegator1).deposit(ethers.parseEther('10'), this.delegator1);
298-
await this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1);
309+
await expect(
310+
this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1),
311+
)
312+
.to.emit(this.mock, 'RedeemRequest')
313+
.withArgs(this.delegator1, this.delegator1, this.delegator1, ethers.parseEther('1'), anyValue);
299314

300315
await timeIncreaseNoMine(60);
301316

302317
await expect(this.mock.connect(this.delegator1).redeem(ethers.MaxUint256, this.delegator1, this.delegator1))
303318
.to.emit(this.token, 'Transfer')
304319
.withArgs(this.mock, this.delegator1, ethers.parseEther('1'));
305320

306-
await this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('2'), this.delegator1, this.delegator1);
321+
await expect(
322+
this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('2'), this.delegator1, this.delegator1),
323+
)
324+
.to.emit(this.mock, 'RedeemRequest')
325+
.withArgs(this.delegator1, this.delegator1, this.delegator1, ethers.parseEther('2'), anyValue);
307326

308327
await timeIncreaseNoMine(60);
309328

@@ -315,7 +334,11 @@ describe('OperatorStaking', function () {
315334
it('via separate controller', async function () {
316335
const controller = this.accounts[0];
317336
await this.mock.connect(this.delegator1).deposit(ethers.parseEther('10'), this.delegator1);
318-
await this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), controller, this.delegator1);
337+
await expect(
338+
this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), controller, this.delegator1),
339+
)
340+
.to.emit(this.mock, 'RedeemRequest')
341+
.withArgs(controller, this.delegator1, this.delegator1, ethers.parseEther('1'), anyValue);
319342

320343
await timeIncreaseNoMine(60);
321344

@@ -344,7 +367,11 @@ describe('OperatorStaking', function () {
344367
await this.mock.connect(this.delegator1).deposit(ethers.parseEther('1'), this.delegator1);
345368
await this.mock.connect(this.delegator1).approve(approvedActor, ethers.parseEther('1'));
346369

347-
await this.mock.connect(approvedActor).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1);
370+
await expect(
371+
this.mock.connect(approvedActor).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1),
372+
)
373+
.to.emit(this.mock, 'RedeemRequest')
374+
.withArgs(this.delegator1, this.delegator1, approvedActor, ethers.parseEther('1'), anyValue);
348375
});
349376

350377
it('should fail via unapproved actor', async function () {
@@ -364,13 +391,23 @@ describe('OperatorStaking', function () {
364391
await this.mock.connect(this.delegator2).deposit(ethers.parseEther('1'), this.delegator2);
365392
await this.mock.connect(delegator3).deposit(ethers.parseEther('1'), delegator3);
366393

367-
await this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1);
394+
await expect(
395+
this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1),
396+
)
397+
.to.emit(this.mock, 'RedeemRequest')
398+
.withArgs(this.delegator1, this.delegator1, this.delegator1, ethers.parseEther('1'), anyValue);
368399
await timeIncreaseNoMine(30);
369400

370-
await this.mock.connect(this.delegator2).requestRedeem(ethers.parseEther('1'), this.delegator2, this.delegator2);
401+
await expect(
402+
this.mock.connect(this.delegator2).requestRedeem(ethers.parseEther('1'), this.delegator2, this.delegator2),
403+
)
404+
.to.emit(this.mock, 'RedeemRequest')
405+
.withArgs(this.delegator2, this.delegator2, this.delegator2, ethers.parseEther('1'), anyValue);
371406

372407
await this.protocolStaking.connect(this.admin).setUnstakeCooldownPeriod(30);
373-
await this.mock.connect(delegator3).requestRedeem(ethers.parseEther('1'), delegator3, delegator3);
408+
await expect(this.mock.connect(delegator3).requestRedeem(ethers.parseEther('1'), delegator3, delegator3))
409+
.to.emit(this.mock, 'RedeemRequest')
410+
.withArgs(delegator3, delegator3, delegator3, ethers.parseEther('1'), anyValue);
374411

375412
// delegator 3 will need to wait 59 seconds
376413

@@ -397,9 +434,11 @@ describe('OperatorStaking', function () {
397434
});
398435

399436
it('should be allowed to redeem on behalf of authorized controller', async function () {
400-
await this.mock
401-
.connect(this.delegator1)
402-
.requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1);
437+
await expect(
438+
this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator1, this.delegator1),
439+
)
440+
.to.emit(this.mock, 'RedeemRequest')
441+
.withArgs(this.delegator1, this.delegator1, this.delegator1, ethers.parseEther('1'), anyValue);
403442

404443
await timeIncreaseNoMine(60);
405444

@@ -409,9 +448,11 @@ describe('OperatorStaking', function () {
409448
});
410449

411450
it('should not be allowed to redeem on behalf of other controller', async function () {
412-
await this.mock
413-
.connect(this.delegator1)
414-
.requestRedeem(ethers.parseEther('1'), this.delegator2, this.delegator1);
451+
await expect(
452+
this.mock.connect(this.delegator1).requestRedeem(ethers.parseEther('1'), this.delegator2, this.delegator1),
453+
)
454+
.to.emit(this.mock, 'RedeemRequest')
455+
.withArgs(this.delegator2, this.delegator1, this.delegator1, ethers.parseEther('1'), anyValue);
415456

416457
await timeIncreaseNoMine(60);
417458

0 commit comments

Comments
 (0)