@@ -976,7 +976,7 @@ abstract contract SpokePool is
976976
977977 V3RelayExecutionParams memory relayExecution = V3RelayExecutionParams ({
978978 relay: relayData,
979- relayHash: _getV3RelayHash (relayData),
979+ relayHash: getV3RelayHash (relayData),
980980 updatedOutputAmount: relayData.outputAmount,
981981 updatedRecipient: relayData.recipient,
982982 updatedMessage: relayData.message,
@@ -1046,7 +1046,7 @@ abstract contract SpokePool is
10461046
10471047 V3RelayExecutionParams memory relayExecution = V3RelayExecutionParams ({
10481048 relay: relayData,
1049- relayHash: _getV3RelayHash (relayData),
1049+ relayHash: getV3RelayHash (relayData),
10501050 updatedOutputAmount: updatedOutputAmount,
10511051 updatedRecipient: updatedRecipient,
10521052 updatedMessage: updatedMessage,
@@ -1093,7 +1093,7 @@ abstract contract SpokePool is
10931093 }
10941094 if (relayData.fillDeadline < currentTime) revert ExpiredFillDeadline ();
10951095
1096- bytes32 relayHash = _getV3RelayHash (relayData);
1096+ bytes32 relayHash = getV3RelayHash (relayData);
10971097 if (fillStatuses[relayHash] != uint256 (FillStatus.Unfilled)) revert InvalidSlowFillRequest ();
10981098 fillStatuses[relayHash] = uint256 (FillStatus.RequestedSlowFill);
10991099
@@ -1182,7 +1182,7 @@ abstract contract SpokePool is
11821182 // deposit params like outputAmount, message and recipient.
11831183 V3RelayExecutionParams memory relayExecution = V3RelayExecutionParams ({
11841184 relay: relayData,
1185- relayHash: _getV3RelayHash (relayData),
1185+ relayHash: getV3RelayHash (relayData),
11861186 updatedOutputAmount: slowFillLeaf.updatedOutputAmount,
11871187 updatedRecipient: relayData.recipient,
11881188 updatedMessage: relayData.message,
@@ -1302,6 +1302,10 @@ abstract contract SpokePool is
13021302 return relayerRefund[l2TokenAddress][refundAddress];
13031303 }
13041304
1305+ function getV3RelayHash (V3RelayData memory relayData ) public view returns (bytes32 ) {
1306+ return keccak256 (abi.encode (relayData, chainId ()));
1307+ }
1308+
13051309 /**************************************
13061310 * INTERNAL FUNCTIONS *
13071311 **************************************/
@@ -1627,27 +1631,6 @@ abstract contract SpokePool is
16271631 return (amount * uint256 (int256 (1e18 ) - feesPct)) / 1e18 ;
16281632 }
16291633
1630- function _getV3RelayHash (V3RelayData memory relayData ) private view returns (bytes32 ) {
1631- return
1632- keccak256 (
1633- abi.encode (
1634- relayData.depositor,
1635- relayData.recipient,
1636- relayData.exclusiveRelayer,
1637- relayData.inputToken,
1638- relayData.outputToken,
1639- relayData.inputAmount,
1640- relayData.outputAmount,
1641- relayData.originChainId,
1642- relayData.depositId,
1643- relayData.fillDeadline,
1644- relayData.exclusivityDeadline,
1645- _hashNonEmptyMessage (relayData.message),
1646- chainId ()
1647- )
1648- );
1649- }
1650-
16511634 // Unwraps ETH and does a transfer to a recipient address. If the recipient is a smart contract then sends wrappedNativeToken.
16521635 function _unwrapwrappedNativeTokenTo (address payable to , uint256 amount ) internal {
16531636 if (address (to).isContract ()) {
0 commit comments