Skip to content

Commit 4e5daa6

Browse files
committed
fix(FastBridgeServerToEthereum): incorrect hash block.number parameter
1 parent bafb199 commit 4e5daa6

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

contracts/src/bridge/FastBridgeSenderToEthereum.sol

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ contract FastBridgeSenderToEthereum is SafeBridgeSenderToEthereum, IFastBridgeSe
8080

8181
ticketID = currentTicketID++;
8282

83-
(bytes32 messageHash, bytes memory messageData) = _encode(ticketID, _receiver, _calldata);
83+
(bytes32 messageHash, bytes memory messageData) = _encode(ticketID, block.number, _receiver, _calldata);
8484
emit OutgoingMessage(ticketID, block.number, _receiver, messageHash, messageData);
8585

8686
tickets[ticketID] = Ticket({messageHash: messageHash, blockNumber: block.number, sentSafe: false});
@@ -102,7 +102,7 @@ contract FastBridgeSenderToEthereum is SafeBridgeSenderToEthereum, IFastBridgeSe
102102
require(ticket.messageHash != 0, "Ticket does not exist.");
103103
require(ticket.sentSafe == false, "Ticket already sent safely.");
104104

105-
(bytes32 messageHash, bytes memory messageData) = _encode(_ticketID, _receiver, _calldata);
105+
(bytes32 messageHash, bytes memory messageData) = _encode(_ticketID, ticket.blockNumber, _receiver, _calldata);
106106
require(ticket.messageHash == messageHash, "Invalid message for ticketID.");
107107

108108
// Safe Bridge message envelope
@@ -132,13 +132,14 @@ contract FastBridgeSenderToEthereum is SafeBridgeSenderToEthereum, IFastBridgeSe
132132

133133
function _encode(
134134
uint256 _ticketID,
135+
uint256 _blockNumber,
135136
address _receiver,
136137
bytes memory _calldata
137-
) internal view returns (bytes32 messageHash, bytes memory messageData) {
138+
) internal pure returns (bytes32 messageHash, bytes memory messageData) {
138139
// Encode the receiver address with the function signature + arguments i.e calldata
139140
messageData = abi.encode(_receiver, _calldata);
140141

141142
// Compute the hash over the message header (ticketID, blockNumber) and body (data).
142-
messageHash = keccak256(abi.encode(_ticketID, block.number, messageData));
143+
messageHash = keccak256(abi.encode(_ticketID, _blockNumber, messageData));
143144
}
144145
}

0 commit comments

Comments
 (0)