Commit 0716a085 authored by Kelvin Fichter's avatar Kelvin Fichter

feat(ctb): receivedMessages => failedMessages

Changes the name of the receivedMessages variable to failedMessages.
Original name was confusing as it suggests that all messages will be
recorded in that mapping, even though only failed messages are recorded
in that mapping. Has created issues on several occasions.
parent 0eec5099
...@@ -16,14 +16,14 @@ Bytes_Test:test_slice_fromZeroIdx_works() (gas: 20826) ...@@ -16,14 +16,14 @@ Bytes_Test:test_slice_fromZeroIdx_works() (gas: 20826)
Bytes_Test:test_toNibbles_expectedResult128Bytes_works() (gas: 129885) Bytes_Test:test_toNibbles_expectedResult128Bytes_works() (gas: 129885)
Bytes_Test:test_toNibbles_expectedResult5Bytes_works() (gas: 6132) Bytes_Test:test_toNibbles_expectedResult5Bytes_works() (gas: 6132)
Bytes_Test:test_toNibbles_zeroLengthInput_works() (gas: 966) Bytes_Test:test_toNibbles_zeroLengthInput_works() (gas: 966)
CrossDomainMessenger_BaseGas_Test:test_baseGas_succeeds() (gas: 20098) CrossDomainMessenger_BaseGas_Test:test_baseGas_succeeds() (gas: 20120)
CrossDomainOwnableThroughPortal_Test:test_depositTransaction_crossDomainOwner_succeeds() (gas: 61806) CrossDomainOwnableThroughPortal_Test:test_depositTransaction_crossDomainOwner_succeeds() (gas: 61806)
CrossDomainOwnable_Test:test_onlyOwner_notOwner_reverts() (gas: 10530) CrossDomainOwnable_Test:test_onlyOwner_notOwner_reverts() (gas: 10530)
CrossDomainOwnable_Test:test_onlyOwner_succeeds() (gas: 34861) CrossDomainOwnable_Test:test_onlyOwner_succeeds() (gas: 34861)
CrossDomainOwnable2_Test:test_onlyOwner_notMessenger_reverts() (gas: 8416) CrossDomainOwnable2_Test:test_onlyOwner_notMessenger_reverts() (gas: 8416)
CrossDomainOwnable2_Test:test_onlyOwner_notOwner2_reverts() (gas: 61783) CrossDomainOwnable2_Test:test_onlyOwner_notOwner2_reverts() (gas: 61738)
CrossDomainOwnable2_Test:test_onlyOwner_notOwner_reverts() (gas: 16588) CrossDomainOwnable2_Test:test_onlyOwner_notOwner_reverts() (gas: 16588)
CrossDomainOwnable2_Test:test_onlyOwner_succeeds() (gas: 77811) CrossDomainOwnable2_Test:test_onlyOwner_succeeds() (gas: 77766)
DeployerWhitelist_Test:test_owner_succeeds() (gas: 7538) DeployerWhitelist_Test:test_owner_succeeds() (gas: 7538)
DeployerWhitelist_Test:test_storageSlots_succeeds() (gas: 33395) DeployerWhitelist_Test:test_storageSlots_succeeds() (gas: 33395)
FeeVault_Test:test_constructor_succeeds() (gas: 10647) FeeVault_Test:test_constructor_succeeds() (gas: 10647)
...@@ -55,26 +55,26 @@ L1BlockTest:test_updateValues_succeeds() (gas: 60481) ...@@ -55,26 +55,26 @@ L1BlockTest:test_updateValues_succeeds() (gas: 60481)
L1BlockNumberTest:test_fallback_succeeds() (gas: 18633) L1BlockNumberTest:test_fallback_succeeds() (gas: 18633)
L1BlockNumberTest:test_getL1BlockNumber_succeeds() (gas: 10603) L1BlockNumberTest:test_getL1BlockNumber_succeeds() (gas: 10603)
L1BlockNumberTest:test_receive_succeeds() (gas: 25340) L1BlockNumberTest:test_receive_succeeds() (gas: 25340)
L1CrossDomainMessenger_Test:test_messageVersion_succeeds() (gas: 24759) L1CrossDomainMessenger_Test:test_messageVersion_succeeds() (gas: 24781)
L1CrossDomainMessenger_Test:test_pause_callerIsNotOwner_reverts() (gas: 24517) L1CrossDomainMessenger_Test:test_pause_callerIsNotOwner_reverts() (gas: 24517)
L1CrossDomainMessenger_Test:test_pause_succeeds() (gas: 52942) L1CrossDomainMessenger_Test:test_pause_succeeds() (gas: 52942)
L1CrossDomainMessenger_Test:test_relayMessage_legacyOldReplay_reverts() (gas: 56662) L1CrossDomainMessenger_Test:test_relayMessage_legacyOldReplay_reverts() (gas: 56574)
L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterFailureThenSuccess_reverts() (gas: 212695) L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterFailureThenSuccess_reverts() (gas: 212474)
L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterFailure_succeeds() (gas: 203380) L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterFailure_succeeds() (gas: 203204)
L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterSuccess_reverts() (gas: 126553) L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterSuccess_reverts() (gas: 126420)
L1CrossDomainMessenger_Test:test_relayMessage_legacy_succeeds() (gas: 76688) L1CrossDomainMessenger_Test:test_relayMessage_legacy_succeeds() (gas: 76600)
L1CrossDomainMessenger_Test:test_relayMessage_paused_reverts() (gas: 60521) L1CrossDomainMessenger_Test:test_relayMessage_paused_reverts() (gas: 60476)
L1CrossDomainMessenger_Test:test_relayMessage_reentrancy_reverts() (gas: 190932) L1CrossDomainMessenger_Test:test_relayMessage_reentrancy_reverts() (gas: 190799)
L1CrossDomainMessenger_Test:test_relayMessage_retryAfterFailure_succeeds() (gas: 197320) L1CrossDomainMessenger_Test:test_relayMessage_retryAfterFailure_succeeds() (gas: 197144)
L1CrossDomainMessenger_Test:test_relayMessage_succeeds() (gas: 73646) L1CrossDomainMessenger_Test:test_relayMessage_succeeds() (gas: 73558)
L1CrossDomainMessenger_Test:test_relayMessage_toSystemContract_reverts() (gas: 65917) L1CrossDomainMessenger_Test:test_relayMessage_toSystemContract_reverts() (gas: 65827)
L1CrossDomainMessenger_Test:test_relayMessage_v2_reverts() (gas: 19545) L1CrossDomainMessenger_Test:test_relayMessage_v2_reverts() (gas: 19500)
L1CrossDomainMessenger_Test:test_replayMessage_withValue_reverts() (gas: 38265) L1CrossDomainMessenger_Test:test_replayMessage_withValue_reverts() (gas: 38220)
L1CrossDomainMessenger_Test:test_sendMessage_succeeds() (gas: 299568) L1CrossDomainMessenger_Test:test_sendMessage_succeeds() (gas: 299678)
L1CrossDomainMessenger_Test:test_sendMessage_twice_succeeds() (gas: 1490458) L1CrossDomainMessenger_Test:test_sendMessage_twice_succeeds() (gas: 1490502)
L1CrossDomainMessenger_Test:test_unpause_callerIsNotOwner_reverts() (gas: 24516) L1CrossDomainMessenger_Test:test_unpause_callerIsNotOwner_reverts() (gas: 24516)
L1CrossDomainMessenger_Test:test_unpause_succeeds() (gas: 45185) L1CrossDomainMessenger_Test:test_unpause_succeeds() (gas: 45185)
L1CrossDomainMessenger_Test:test_xDomainMessageSender_reset_succeeds() (gas: 84065) L1CrossDomainMessenger_Test:test_xDomainMessageSender_reset_succeeds() (gas: 84020)
L1CrossDomainMessenger_Test:test_xDomainSender_notSet_reverts() (gas: 24274) L1CrossDomainMessenger_Test:test_xDomainSender_notSet_reverts() (gas: 24274)
L1ERC721Bridge_Test:test_bridgeERC721To_localTokenZeroAddress_reverts() (gas: 52730) L1ERC721Bridge_Test:test_bridgeERC721To_localTokenZeroAddress_reverts() (gas: 52730)
L1ERC721Bridge_Test:test_bridgeERC721To_remoteTokenZeroAddress_reverts() (gas: 27332) L1ERC721Bridge_Test:test_bridgeERC721To_remoteTokenZeroAddress_reverts() (gas: 27332)
...@@ -107,18 +107,18 @@ L1StandardBridge_FinalizeETHWithdrawal_Test:test_finalizeETHWithdrawal_succeeds( ...@@ -107,18 +107,18 @@ L1StandardBridge_FinalizeETHWithdrawal_Test:test_finalizeETHWithdrawal_succeeds(
L1StandardBridge_Getter_Test:test_getters_succeeds() (gas: 31449) L1StandardBridge_Getter_Test:test_getters_succeeds() (gas: 31449)
L1StandardBridge_Initialize_Test:test_initialize_succeeds() (gas: 22005) L1StandardBridge_Initialize_Test:test_initialize_succeeds() (gas: 22005)
L1StandardBridge_Receive_Test:test_receive_succeeds() (gas: 514475) L1StandardBridge_Receive_Test:test_receive_succeeds() (gas: 514475)
L2CrossDomainMessenger_Test:test_messageVersion_succeeds() (gas: 8367) L2CrossDomainMessenger_Test:test_messageVersion_succeeds() (gas: 8389)
L2CrossDomainMessenger_Test:test_pause_notOwner_reverts() (gas: 10837) L2CrossDomainMessenger_Test:test_pause_notOwner_reverts() (gas: 10837)
L2CrossDomainMessenger_Test:test_pause_succeeds() (gas: 31846) L2CrossDomainMessenger_Test:test_pause_succeeds() (gas: 31846)
L2CrossDomainMessenger_Test:test_relayMessage_paused_reverts() (gas: 41596) L2CrossDomainMessenger_Test:test_relayMessage_paused_reverts() (gas: 41551)
L2CrossDomainMessenger_Test:test_relayMessage_reentrancy_reverts() (gas: 167794) L2CrossDomainMessenger_Test:test_relayMessage_reentrancy_reverts() (gas: 167727)
L2CrossDomainMessenger_Test:test_relayMessage_retry_succeeds() (gas: 168371) L2CrossDomainMessenger_Test:test_relayMessage_retry_succeeds() (gas: 168327)
L2CrossDomainMessenger_Test:test_relayMessage_succeeds() (gas: 53212) L2CrossDomainMessenger_Test:test_relayMessage_succeeds() (gas: 53190)
L2CrossDomainMessenger_Test:test_relayMessage_toSystemContract_reverts() (gas: 36246) L2CrossDomainMessenger_Test:test_relayMessage_toSystemContract_reverts() (gas: 36201)
L2CrossDomainMessenger_Test:test_relayMessage_v2_reverts() (gas: 18913) L2CrossDomainMessenger_Test:test_relayMessage_v2_reverts() (gas: 18868)
L2CrossDomainMessenger_Test:test_sendMessage_succeeds() (gas: 122533) L2CrossDomainMessenger_Test:test_sendMessage_succeeds() (gas: 122621)
L2CrossDomainMessenger_Test:test_sendMessage_twice_succeeds() (gas: 134671) L2CrossDomainMessenger_Test:test_sendMessage_twice_succeeds() (gas: 134715)
L2CrossDomainMessenger_Test:test_xDomainMessageSender_reset_succeeds() (gas: 52623) L2CrossDomainMessenger_Test:test_xDomainMessageSender_reset_succeeds() (gas: 52578)
L2CrossDomainMessenger_Test:test_xDomainSender_senderNotSet_reverts() (gas: 10524) L2CrossDomainMessenger_Test:test_xDomainSender_senderNotSet_reverts() (gas: 10524)
L2ERC721Bridge_Test:test_bridgeERC721To_localTokenZeroAddress_reverts() (gas: 26432) L2ERC721Bridge_Test:test_bridgeERC721To_localTokenZeroAddress_reverts() (gas: 26432)
L2ERC721Bridge_Test:test_bridgeERC721To_remoteTokenZeroAddress_reverts() (gas: 21748) L2ERC721Bridge_Test:test_bridgeERC721To_remoteTokenZeroAddress_reverts() (gas: 21748)
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
|--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------| |--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------|
| msgNonce | uint240 | 205 | 0 | 30 | contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger | | msgNonce | uint240 | 205 | 0 | 30 | contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger |
|--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------| |--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------|
| receivedMessages | mapping(bytes32 => bool) | 206 | 0 | 32 | contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger | | failedMessages | mapping(bytes32 => bool) | 206 | 0 | 32 | contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger |
|--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------| |--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------|
| __gap | uint256[42] | 207 | 0 | 1344 | contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger | | __gap | uint256[42] | 207 | 0 | 1344 | contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger |
+--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------+ +--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------+
...@@ -226,7 +226,7 @@ ...@@ -226,7 +226,7 @@
|--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------| |--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------|
| msgNonce | uint240 | 205 | 0 | 30 | contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger | | msgNonce | uint240 | 205 | 0 | 30 | contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger |
|--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------| |--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------|
| receivedMessages | mapping(bytes32 => bool) | 206 | 0 | 32 | contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger | | failedMessages | mapping(bytes32 => bool) | 206 | 0 | 32 | contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger |
|--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------| |--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------|
| __gap | uint256[42] | 207 | 0 | 1344 | contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger | | __gap | uint256[42] | 207 | 0 | 1344 | contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger |
+--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------+ +--------------------+--------------------------+------+--------+-------+----------------------------------------------------------------+
......
...@@ -200,7 +200,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -200,7 +200,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
// the message hash is in the successfulMessages mapping // the message hash is in the successfulMessages mapping
assert(L1Messenger.successfulMessages(hash)); assert(L1Messenger.successfulMessages(hash));
// it is not in the received messages mapping // it is not in the received messages mapping
assertEq(L1Messenger.receivedMessages(hash), false); assertEq(L1Messenger.failedMessages(hash), false);
} }
// relayMessage: should revert if attempting to relay a message sent to an L1 system contract // relayMessage: should revert if attempting to relay a message sent to an L1 system contract
...@@ -317,7 +317,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -317,7 +317,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
assertEq(address(L1Messenger).balance, value); assertEq(address(L1Messenger).balance, value);
assertEq(address(target).balance, 0); assertEq(address(target).balance, 0);
assertEq(L1Messenger.successfulMessages(hash), false); assertEq(L1Messenger.successfulMessages(hash), false);
assertEq(L1Messenger.receivedMessages(hash), true); assertEq(L1Messenger.failedMessages(hash), true);
vm.expectEmit(true, true, true, true); vm.expectEmit(true, true, true, true);
...@@ -337,7 +337,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -337,7 +337,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
assertEq(address(L1Messenger).balance, 0); assertEq(address(L1Messenger).balance, 0);
assertEq(address(target).balance, value); assertEq(address(target).balance, value);
assertEq(L1Messenger.successfulMessages(hash), true); assertEq(L1Messenger.successfulMessages(hash), true);
assertEq(L1Messenger.receivedMessages(hash), true); assertEq(L1Messenger.failedMessages(hash), true);
} }
// relayMessage: should revert if recipient is trying to reenter // relayMessage: should revert if recipient is trying to reenter
...@@ -385,7 +385,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -385,7 +385,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
); );
assertEq(L1Messenger.successfulMessages(hash), false); assertEq(L1Messenger.successfulMessages(hash), false);
assertEq(L1Messenger.receivedMessages(hash), true); assertEq(L1Messenger.failedMessages(hash), true);
} }
function test_relayMessage_legacy_succeeds() external { function test_relayMessage_legacy_succeeds() external {
...@@ -426,7 +426,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -426,7 +426,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
// Message was successfully relayed. // Message was successfully relayed.
assertEq(L1Messenger.successfulMessages(hash), true); assertEq(L1Messenger.successfulMessages(hash), true);
assertEq(L1Messenger.receivedMessages(hash), false); assertEq(L1Messenger.failedMessages(hash), false);
} }
function test_relayMessage_legacyOldReplay_reverts() external { function test_relayMessage_legacyOldReplay_reverts() external {
...@@ -469,7 +469,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -469,7 +469,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
// Message was not relayed. // Message was not relayed.
assertEq(L1Messenger.successfulMessages(hash), false); assertEq(L1Messenger.successfulMessages(hash), false);
assertEq(L1Messenger.receivedMessages(hash), false); assertEq(L1Messenger.failedMessages(hash), false);
} }
function test_relayMessage_legacyRetryAfterFailure_succeeds() external { function test_relayMessage_legacyRetryAfterFailure_succeeds() external {
...@@ -517,7 +517,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -517,7 +517,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
assertEq(address(L1Messenger).balance, value); assertEq(address(L1Messenger).balance, value);
assertEq(address(target).balance, 0); assertEq(address(target).balance, 0);
assertEq(L1Messenger.successfulMessages(hash), false); assertEq(L1Messenger.successfulMessages(hash), false);
assertEq(L1Messenger.receivedMessages(hash), true); assertEq(L1Messenger.failedMessages(hash), true);
// Make the target not revert anymore. // Make the target not revert anymore.
vm.etch(target, address(0).code); vm.etch(target, address(0).code);
...@@ -544,7 +544,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -544,7 +544,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
assertEq(address(L1Messenger).balance, 0); assertEq(address(L1Messenger).balance, 0);
assertEq(address(target).balance, value); assertEq(address(target).balance, value);
assertEq(L1Messenger.successfulMessages(hash), true); assertEq(L1Messenger.successfulMessages(hash), true);
assertEq(L1Messenger.receivedMessages(hash), true); assertEq(L1Messenger.failedMessages(hash), true);
} }
function test_relayMessage_legacyRetryAfterSuccess_reverts() external { function test_relayMessage_legacyRetryAfterSuccess_reverts() external {
...@@ -589,7 +589,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -589,7 +589,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
assertEq(address(L1Messenger).balance, 0); assertEq(address(L1Messenger).balance, 0);
assertEq(address(target).balance, value); assertEq(address(target).balance, value);
assertEq(L1Messenger.successfulMessages(hash), true); assertEq(L1Messenger.successfulMessages(hash), true);
assertEq(L1Messenger.receivedMessages(hash), false); assertEq(L1Messenger.failedMessages(hash), false);
// Expect a revert. // Expect a revert.
vm.expectRevert("CrossDomainMessenger: message cannot be replayed"); vm.expectRevert("CrossDomainMessenger: message cannot be replayed");
...@@ -647,7 +647,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -647,7 +647,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
assertEq(address(L1Messenger).balance, value); assertEq(address(L1Messenger).balance, value);
assertEq(address(target).balance, 0); assertEq(address(target).balance, 0);
assertEq(L1Messenger.successfulMessages(hash), false); assertEq(L1Messenger.successfulMessages(hash), false);
assertEq(L1Messenger.receivedMessages(hash), true); assertEq(L1Messenger.failedMessages(hash), true);
// Make the target not revert anymore. // Make the target not revert anymore.
vm.etch(target, address(0).code); vm.etch(target, address(0).code);
...@@ -674,7 +674,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -674,7 +674,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
assertEq(address(L1Messenger).balance, 0); assertEq(address(L1Messenger).balance, 0);
assertEq(address(target).balance, value); assertEq(address(target).balance, value);
assertEq(L1Messenger.successfulMessages(hash), true); assertEq(L1Messenger.successfulMessages(hash), true);
assertEq(L1Messenger.receivedMessages(hash), true); assertEq(L1Messenger.failedMessages(hash), true);
// Expect a revert. // Expect a revert.
vm.expectRevert("CrossDomainMessenger: message has already been relayed"); vm.expectRevert("CrossDomainMessenger: message has already been relayed");
......
...@@ -149,7 +149,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -149,7 +149,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer {
// the message hash is in the successfulMessages mapping // the message hash is in the successfulMessages mapping
assert(L2Messenger.successfulMessages(hash)); assert(L2Messenger.successfulMessages(hash));
// it is not in the received messages mapping // it is not in the received messages mapping
assertEq(L2Messenger.receivedMessages(hash), false); assertEq(L2Messenger.failedMessages(hash), false);
} }
// relayMessage: should revert if attempting to relay a message sent to an L1 system contract // relayMessage: should revert if attempting to relay a message sent to an L1 system contract
...@@ -232,7 +232,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -232,7 +232,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer {
assertEq(address(L2Messenger).balance, value); assertEq(address(L2Messenger).balance, value);
assertEq(address(target).balance, 0); assertEq(address(target).balance, 0);
assertEq(L2Messenger.successfulMessages(hash), false); assertEq(L2Messenger.successfulMessages(hash), false);
assertEq(L2Messenger.receivedMessages(hash), true); assertEq(L2Messenger.failedMessages(hash), true);
vm.expectEmit(true, true, true, true); vm.expectEmit(true, true, true, true);
...@@ -252,7 +252,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -252,7 +252,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer {
assertEq(address(L2Messenger).balance, 0); assertEq(address(L2Messenger).balance, 0);
assertEq(address(target).balance, value); assertEq(address(target).balance, value);
assertEq(L2Messenger.successfulMessages(hash), true); assertEq(L2Messenger.successfulMessages(hash), true);
assertEq(L2Messenger.receivedMessages(hash), true); assertEq(L2Messenger.failedMessages(hash), true);
} }
// relayMessage: should revert if recipient is trying to reenter // relayMessage: should revert if recipient is trying to reenter
...@@ -300,6 +300,6 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -300,6 +300,6 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer {
); );
assertEq(L2Messenger.successfulMessages(hash), false); assertEq(L2Messenger.successfulMessages(hash), false);
assertEq(L2Messenger.receivedMessages(hash), true); assertEq(L2Messenger.failedMessages(hash), true);
} }
} }
...@@ -123,12 +123,11 @@ abstract contract CrossDomainMessenger is ...@@ -123,12 +123,11 @@ abstract contract CrossDomainMessenger is
uint240 internal msgNonce; uint240 internal msgNonce;
/** /**
* @notice Mapping of message hashes to boolean receipt values. Note that a message will only * @notice Mapping of message hashes to a boolean if and only if the message has failed to be
* be present in this mapping if it failed to be relayed on this chain at least once. * executed at least once. A message will not be present in this mapping if it
* If a message is successfully relayed on the first attempt, then it will only be * successfully executed on the first attempt.
* present within the successfulMessages mapping.
*/ */
mapping(bytes32 => bool) public receivedMessages; mapping(bytes32 => bool) public failedMessages;
/** /**
* @notice Reserve extra slots in the storage layout for future upgrades. * @notice Reserve extra slots in the storage layout for future upgrades.
...@@ -293,7 +292,7 @@ abstract contract CrossDomainMessenger is ...@@ -293,7 +292,7 @@ abstract contract CrossDomainMessenger is
// These properties should always hold when the message is first submitted (as // These properties should always hold when the message is first submitted (as
// opposed to being replayed). // opposed to being replayed).
assert(msg.value == _value); assert(msg.value == _value);
assert(!receivedMessages[versionedHash]); assert(!failedMessages[versionedHash]);
} else { } else {
require( require(
msg.value == 0, msg.value == 0,
...@@ -301,7 +300,7 @@ abstract contract CrossDomainMessenger is ...@@ -301,7 +300,7 @@ abstract contract CrossDomainMessenger is
); );
require( require(
receivedMessages[versionedHash], failedMessages[versionedHash],
"CrossDomainMessenger: message cannot be replayed" "CrossDomainMessenger: message cannot be replayed"
); );
} }
...@@ -329,7 +328,7 @@ abstract contract CrossDomainMessenger is ...@@ -329,7 +328,7 @@ abstract contract CrossDomainMessenger is
successfulMessages[versionedHash] = true; successfulMessages[versionedHash] = true;
emit RelayedMessage(versionedHash); emit RelayedMessage(versionedHash);
} else { } else {
receivedMessages[versionedHash] = true; failedMessages[versionedHash] = true;
emit FailedRelayedMessage(versionedHash); emit FailedRelayedMessage(versionedHash);
// Revert in this case if the transaction was triggered by the estimation address. This // Revert in this case if the transaction was triggered by the estimation address. This
......
...@@ -36,7 +36,7 @@ interface CrossDomainMessenger { ...@@ -36,7 +36,7 @@ interface CrossDomainMessenger {
function MESSAGE_VERSION() view external returns (uint16); function MESSAGE_VERSION() view external returns (uint16);
function messageNonce() view external returns (uint256); function messageNonce() view external returns (uint256);
function otherMessenger() view external returns (address); function otherMessenger() view external returns (address);
function receivedMessages(bytes32) view external returns (bool); function failedMessages(bytes32) view external returns (bool);
function relayMessage(uint256 _nonce, address _sender, address _target, uint256 _value, uint256 _minGasLimit, bytes memory _message) payable external; function relayMessage(uint256 _nonce, address _sender, address _target, uint256 _value, uint256 _minGasLimit, bytes memory _message) payable external;
function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) payable external; function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) payable external;
function successfulMessages(bytes32) view external returns (bool); function successfulMessages(bytes32) view external returns (bool);
...@@ -49,7 +49,7 @@ interface CrossDomainMessenger { ...@@ -49,7 +49,7 @@ interface CrossDomainMessenger {
The `sendMessage` function is used to send a cross domain message. To trigger The `sendMessage` function is used to send a cross domain message. To trigger
the execution on the other side, the `relayMessage` function is called. the execution on the other side, the `relayMessage` function is called.
Successful messages have their hash stored in the `successfulMessages` mapping Successful messages have their hash stored in the `successfulMessages` mapping
while unsuccessful messages have their hash stored in the `receivedMessages` while unsuccessful messages have their hash stored in the `failedMessages`
mapping. mapping.
The user experience when sending from L1 to L2 is a bit different than when The user experience when sending from L1 to L2 is a bit different than when
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment