diff --git a/contracts/SpokePool.sol b/contracts/SpokePool.sol index f8b95a7e2..3a64cc157 100644 --- a/contracts/SpokePool.sol +++ b/contracts/SpokePool.sol @@ -82,7 +82,6 @@ abstract contract SpokePool is SpokePoolInterface, Testable, Lockable, MultiCall bytes depositorSignature ); event FilledRelay( - bytes32 indexed relayHash, uint256 amount, uint256 totalFilledAmount, uint256 fillAmount, @@ -90,6 +89,7 @@ abstract contract SpokePool is SpokePoolInterface, Testable, Lockable, MultiCall uint256 originChainId, uint256 destinationChainId, uint64 relayerFeePct, + uint64 appliedRelayerFeePct, uint64 realizedLpFeePct, uint32 depositId, address destinationToken, @@ -795,19 +795,19 @@ abstract contract SpokePool is SpokePoolInterface, Testable, Lockable, MultiCall bytes32 relayHash, uint256 fillAmount, uint256 repaymentChainId, - uint64 relayerFeePct, + uint64 appliedRelayerFeePct, RelayData memory relayData, bool isSlowRelay ) internal { emit FilledRelay( - relayHash, relayData.amount, relayFills[relayHash], fillAmount, repaymentChainId, relayData.originChainId, relayData.destinationChainId, - relayerFeePct, + relayData.relayerFeePct, + appliedRelayerFeePct, relayData.realizedLpFeePct, relayData.depositId, relayData.destinationToken, diff --git a/package.json b/package.json index 6e1a4a4d2..1dd34587a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@across-protocol/contracts-v2", - "version": "0.0.41", + "version": "0.0.42", "author": "UMA Team", "license": "AGPL-3.0", "repository": { diff --git a/test/SpokePool.Relay.ts b/test/SpokePool.Relay.ts index 28da44e5a..51568ed7e 100644 --- a/test/SpokePool.Relay.ts +++ b/test/SpokePool.Relay.ts @@ -34,7 +34,6 @@ describe("SpokePool Relayer Logic", async function () { await expect(spokePool.connect(relayer).fillRelay(...getFillRelayParams(relayData, consts.amountToRelay))) .to.emit(spokePool, "FilledRelay") .withArgs( - relayHash, relayData.amount, consts.amountToRelayPreFees, consts.amountToRelayPreFees, @@ -42,6 +41,7 @@ describe("SpokePool Relayer Logic", async function () { toBN(relayData.originChainId), toBN(relayData.destinationChainId), relayData.relayerFeePct, + relayData.relayerFeePct, relayData.realizedLpFeePct, toBN(relayData.depositId), relayData.destinationToken, @@ -243,10 +243,30 @@ describe("SpokePool Relayer Logic", async function () { relayData.originChainId, depositor ); - await spokePool - .connect(relayer) - .fillRelayWithUpdatedFee( - ...getFillRelayUpdatedFeeParams(relayData, consts.amountToRelay, consts.modifiedRelayerFeePct, signature) + await expect( + spokePool + .connect(relayer) + .fillRelayWithUpdatedFee( + ...getFillRelayUpdatedFeeParams(relayData, consts.amountToRelay, consts.modifiedRelayerFeePct, signature) + ) + ) + .to.emit(spokePool, "FilledRelay") + .withArgs( + relayData.amount, + consts.amountToRelayPreModifiedFees, + consts.amountToRelayPreModifiedFees, + consts.repaymentChainId, + toBN(relayData.originChainId), + toBN(relayData.destinationChainId), + relayData.relayerFeePct, + consts.modifiedRelayerFeePct, // Applied relayer fee % should be diff from original fee %. + relayData.realizedLpFeePct, + toBN(relayData.depositId), + relayData.destinationToken, + relayer.address, + relayData.depositor, + relayData.recipient, + false ); // The collateral should have transferred from relayer to recipient.